मुख्य सामग्री पर जाएं
होम
Docs/Editor tools

Editor tools

कोड एडिटर के ऊपर ग्यारह tools खुलते हैं: JavaScript debugger, test runner, Docker और monitoring पैनल, library catalog, backend और AI generators, AI code actions, आपके local network पर live collaboration, और Problems व Outline व्यू। ये सभी मुफ़्त हैं। यह पेज बताता है कि आज फ़ोन पर हर tool असल में क्या करता है, उन हिस्सों समेत जो सिर्फ़ आंशिक रूप से काम करते हैं।

Tools कैसे खुलते हैं

ये tools सिर्फ़ कोड एडिटर के अंदर मौजूद हैं; ये मुख्य pager के पेज नहीं हैं। पहले कोई फ़ाइल या प्रोजेक्ट खोलें, फिर एडिटर के ऊपर वाले रिंच बटन का इस्तेमाल करें।

  1. 1एडिटर की टॉप बार में रिंच बटन (More options) पर टैप करें। एक sheet खुलती है जिसमें सर्च फ़ील्ड Search action… होता है।
  2. 2किसी सेक्शन चिप को चुनें: Edit, View, Go to, Git, AI या Tools, या सभी actions को एक साथ फ़िल्टर करने के लिए सर्च फ़ील्ड में टाइप करें।
  3. 3Tools में actions इन समूहों में बँटे हैं: Run, Project, Collaborate, Utilities और Help & settings। Debug, Test Explorer और Dependencies Run में हैं; Docker Tools, Monitoring और Backend Generators Project में; Live Collaboration Collaborate में।
  4. 4Problems और Outline Go to में हैं। AI Generators और AI code actions AI में हैं।
  5. 5command palette (हार्डवेयर कीबोर्ड पर Ctrl+Shift+P) बिल्कुल यही actions दिखाता है: मेन्यू और palette एक ही registry साझा करते हैं।

हर tool कहाँ है

Toolकहाँकैसे दिखता है
DebugTools › Run › Debug File, या run पैनल का Debug बटनएडिटर के नीचे, run पैनल के बगल में डॉक्ड पैनल
TestingTools › Run › Test ExplorerSheet
LibrariesTools › Run › Dependencies (सिर्फ़ तब जब डिस्क पर कोई प्रोजेक्ट खुला हो), या run पैनल का dependencies बटनLibraries शीर्षक वाली sheet
DockerTools › Project › Docker ToolsSheet
MonitoringTools › Project › MonitoringSheet
Backend GeneratorsTools › Project › Backend GeneratorsSheet
AI GeneratorsAI › AI GeneratorsSheet
AI code actionsAI सेक्शन: AI: Explain Selection, AI: Generate Tests, AI: Refactor Code, Fix Errors और बाकीaction के हिसाब से एडिटर के नीचे डॉक्ड पैनल, refactor sheet या bottom sheet
Live CollaborationTools › Collaborate › Live CollaborationSheet
ProblemsGo to › Problems, या status bar में problems काउंटरफ़ुल-स्क्रीन डायलॉग
OutlineGo to › Outlineएडिटर के दाईं ओर कॉलम

Sheet, डॉक्ड पैनल, डायलॉग या साइड कॉलम

Sheet

Testing, Docker, Monitoring, Libraries, दोनों generators और Live Collaboration एक sheet के रूप में खुलते हैं जो विंडो की ऊँचाई का 87 % घेरती है और आपके ऐप की थीम में दिखती है। इसमें close बटन नहीं होता: इसे नीचे स्वाइप करें, Back दबाएँ या इसके बाहर टैप करें।

डॉक्ड पैनल

Debug और run पैनल एडिटर के नीचे डॉक होते हैं (150 से 300 dp ऊँचे)। Debug तभी खुलता है जब आप Debug File शुरू करते हैं और Back से बंद होता है। AI code actions के नतीजे भी इसी तरह डॉक होते हैं।

डायलॉग

Problems एक डायलॉग है जो चौड़ाई का 95 % (अधिकतम 760 dp) और ऊँचाई का 85 % लेता है, और इसका अपना header होता है।

साइड कॉलम

Outline एडिटर के दाईं ओर 200 dp का कॉलम है। यह तभी दिखता है जब एडिटर को फ़ाइल में regions मिले हों।

Shortcuts

Keysक्या करती हैं
Shift+F5Debug File
F9कर्सर की लाइन पर Toggle breakpoint (प्रोजेक्ट के बाहर से खोली गई फ़ाइलों और diff व्यू में नहीं)
F5 · F10 · F11Debug session रुका होने पर: Debug: continue, Debug: step over, Debug: step into। रुका हुआ session न हो तो F5 फ़ाइल चलाता है और F11 Zen mode है
Ctrl+Shift+MProblems
F8 · Shift+F8Next Problem · Previous Problem
Ctrl+IAsk AI About Selection
Shortcuts हार्डवेयर कीबोर्ड के साथ काम करते हैं। जो बटन सिर्फ़ आइकन है, उसे इस पेज पर उसके accessibility label से बुलाया गया है। Libraries, Docker और Test Explorer प्रोजेक्ट फ़ोल्डर में चीज़ें ढूँढते हैं, इसलिए पहले प्रोजेक्ट खोलें; Monitoring, Live Collaboration, AI Generators और breakpoints बिना प्रोजेक्ट के भी काम करते हैं।

स्क्रीन मैप

Tools की हर स्क्रीन, वहाँ कैसे पहुँचें और वहाँ क्या कर सकते हैं।

स्क्रीनवहाँ कैसे पहुँचेंआप क्या कर सकते हैं
More options मेन्यूएडिटर की टॉप बार में रिंच बटनहर editor action को खोजें और चलाएँ; सेक्शन Edit, View, Go to, Git, AI, Tools।
Debug पैनलTools › Run › Debug File; Shift+F5टैब Console, Variables, Call Stack और Breakpoints; continue, step, restart, stop। असली debugging सिर्फ़ JavaScript के लिए।
Edit breakpointBreakpoints टैब की किसी पंक्ति पर पेंसिलCondition या Log message (logpoint) सेट करें।
Test ExplorerTools › Run › Test Explorerटैब Explorer, Output, Coverage, Snapshots; Run all, Failed only, watch mode।
Docker ToolsTools › Project › Docker Toolsटैब Containers, Images, Compose, Build, Dockerfile, Registry। एडिट करने के लिए Docker ज़रूरी नहीं; चलाने के लिए डिवाइस पर docker कमांड चाहिए।
Container logsकिसी container का logs आइकनआख़िरी 200 लाइनें और लाइव docker logs -f।
Monitoring DashboardTools › Project › Monitoringटैब Dashboard, Metrics, Alerts, Logs, Server।
Alert ruleAlerts में New rule या editकिसी metric पर condition, threshold और severity के साथ rule बनाएँ या बदलें।
LibrariesTools › Run › Dependenciesटैब Declared और Catalog; साथ आने वाली चार Kotlin libraries को जोड़ें, update करें और हटाएँ।
Backend GeneratorsTools › Project › Backend Generatorsटैब API boilerplate, CRUD generator, Migrations, OpenAPI / Swagger, Mock server; Save to project।
AI GeneratorsAI › AI Generatorsटैब API, Schema (offline templates), Translate, Security, Performance (AI)।
AI results पैनलAI: Explain Selection, AI: Generate Tests, AI: Generate Docs, AI: Generate from Commentsजवाब पढ़ें; उसे Insert या Apply करें।
AI-assisted refactoringAI: Refactor Codeनौ refactor प्रकारों में से एक चुनें या Custom instructions लिखें।
AI result sheetFix Errors, Optimize, Simplify, Modernize, Generateजवाब पढ़ें और diff preview देखने के बाद Apply करें।
Live CollaborationTools › Collaborate › Live Collaborationउसी Wi-Fi पर host करें या join करें; टैब Session, People, Chat।
Someone wants to joinhost की स्क्रीन पर दिखता हैLet them in या Turn away।
ProblemsGo to › Problems; Ctrl+Shift+M; status-bar काउंटर; Analyze Style (Lint)origin और severity से फ़िल्टर करें, किसी लाइन पर जाएँ, Quick fixes।
OutlineGo to › Outlineclasses, functions, imports और // region सेक्शनों को फ़िल्टर करें और वहाँ जाएँ।

Debug

Debug खुली हुई फ़ाइल को debugger जोड़कर चलाता है और एडिटर के नीचे डॉक्ड पैनल में दिखाता है कि प्रोग्राम क्या कर रहा है। Debugger सिर्फ़ JavaScript के लिए असली है (.js, .mjs, .cjs, .jsx, जो built-in Node.js पर चलते हैं)। किसी भी दूसरी भाषा के लिए Debug File बस फ़ाइल चला देता है।

Tools › Run › Debug File (Shift+F5), या run पैनल का Debug बटन। यह run पैनल और Debug पैनल दोनों को एक साथ खोलता है। Debug पैनल में उसे खोलने या बंद करने का अपना कोई बटन नहीं है: Back से वह बंद होता है। Debug File तभी सूचीबद्ध होता है जब खुली फ़ाइल के लिए PocketCode के पास कोई runner हो।

Breakpoints

  • Breakpoint जोड़ने या हटाने के लिए एडिटर में लाइन नंबर पर टैप करें, या कर्सर की लाइन पर F9 दबाएँ (Toggle breakpoint)। इन्हें session शुरू करने से पहले भी सेट किया जा सकता है।
  • Breakpoints सिर्फ़ मेमोरी में रहते हैं: ऐप बंद करने पर वे भूल जाते हैं।
  • Breakpoints टैब हर breakpoint को on/off बॉक्स के साथ सूची में दिखाता है। किसी पंक्ति पर टैप करके मौजूदा फ़ाइल में उसकी लाइन पर जाएँ, पेंसिल से उसे edit करें, ✕ से हटाएँ, या Clear all। सूची खाली हो तो: “No breakpoints. Tap a line number in the editor to add one.”

शुरू करना और step करना

Node अपनी पहली लाइन पर रुककर शुरू होता है (--inspect-brk), पैनल उससे जुड़ता है (run output में “Debugger attached on port N” दिखता है) और उसे छोड़ देता है, और प्रोग्राम तब तक चलता है जब तक कोई breakpoint या uncaught exception न आ जाए, जो उसे भी रोक देता है।

  • Session सक्रिय होने पर टूलबार में Continue (या चलते समय Pause), Step Over, Step Into, Step Out, Restart और Stop मिलते हैं। Step बटन सिर्फ़ तब सक्रिय होते हैं जब प्रोग्राम रुका हो।
  • Stop debugger को अलग कर देता है। प्रोसेस को खुद run पैनल से रोका जाता है।
  • आग वाला toggle, Hot Reload: restart the session when a project file is saved, डिफ़ॉल्ट रूप से बंद रहता है।

चार टैब

टैब के नाम हमेशा अंग्रेज़ी में रहते हैं: ऐप उनका अनुवाद नहीं करता।

टैबक्या दिखाता है
Consoleप्रोग्राम का output (console.* और errors), छह रंग-कोडेड levels के साथ, उसे साफ़ करने का बटन, और “Debug session started” जैसे session संदेश।
Variablescall stack के सबसे ऊपरी frame के local variables, एक सपाट सूची में। खाली स्थितियाँ: “Start debugging to inspect variables”, “No variables in current scope”।
Call Stackरुके हुए प्रोग्राम के frames। किसी पर टैप करके उसकी लाइन पर जाएँ।
Breakpointsहर breakpoint, जैसा ऊपर बताया गया है।

Conditions और logpoints

Breakpoint की पेंसिल Edit breakpoint खोलती है। Condition (“Pause only when this JavaScript expression is true”) उसे सिर्फ़ तभी रोकती है। Log message (“Log instead of pausing. Use {expression} to insert values”) उसे ऐसा logpoint बना देता है जो संदेश छापता है और रोकता नहीं। दोनों होने पर वह सिर्फ़ तब छापता है जब condition सही हो। ये दोनों फ़ील्ड यहीं सेट होते हैं, एडिटर के margin से नहीं।

आप कर सकते हैं

  • Built-in Node.js पर JavaScript फ़ाइल को line breakpoints, conditions और logpoints के साथ debug करना।
  • Step over, step into, step out, continue, pause, restart और stop करना; call stack और सबसे ऊपरी frame के local variables देखना।
  • Uncaught exception पर अपने-आप रुकना।
  • Hot Reload चालू करने पर, हर बार प्रोजेक्ट फ़ाइल सेव करते ही session दोबारा शुरू करना।
  • किसी frame या breakpoint की लाइन पर जाना।

आप नहीं कर सकते, और क्यों

  • TypeScript, Python, Java, Go या JavaScript के अलावा किसी भी भाषा को debug करना। Debug File फ़ाइल को debugger के बिना चलाता है और “⚠ <runner> has no debugger support — running without it.” छापता है; breakpoints कुछ नहीं करते।अभी नहीं
  • Expression evaluate करना: Console टैब का Evaluate expression… फ़ील्ड हमेशा undefined जवाब देता है और आपका लिखा चलाता नहीं।अभी नहीं
  • Nested objects या किसी दूसरे frame के variables देखना: Variables सिर्फ़ सबसे ऊपरी frame के अपने locals दिखाता है, बिना expand किए; दूसरा frame चुनने से सिर्फ़ कर्सर उसकी लाइन पर जाता है।अभी नहीं
  • Exception breakpoints जोड़ना: errors पर रुकने का एकमात्र तरीका uncaught exceptions के लिए अपने-आप रुकना है।अभी नहीं
  • ऐप बंद करने के बाद अपने breakpoints बचाकर रखना।अभी नहीं

Testing

Test Explorer आपके प्रोजेक्ट के tests ढूँढता है, framework के अपने कमांड से उन्हें चलाता है और नतीजे सूची में दिखाता है। इसके साथ कोई test runner नहीं आता: यह कमांड को डिवाइस के shell (sh -c) से प्रोजेक्ट फ़ोल्डर में चलाता है, इसलिए framework के tools डिवाइस पर मौजूद होने चाहिए।

Tools › Run › Test Explorer। पहले प्रोजेक्ट खोलें: पैनल प्रोजेक्ट फ़ोल्डर में tests ढूँढता है। किसी framework के न मिलने पर यह No test framework detected दिखाता है।

Frameworks और पहचान

बारह frameworks समर्थित हैं: Jest, Mocha, Vitest, pytest, unittest, JUnit, Go Test, Cargo Test, PHPUnit, RSpec, Dart Test और Swift XCTest। PocketCode हर प्रोजेक्ट के लिए एक चुनता है: जो सबसे पहले उसकी config फ़ाइल से मिले (उदाहरण के लिए jest.config.js, pytest.ini, build.gradle, go.mod, Cargo.toml, pubspec.yaml); कोई न मिले तो Jest, Vitest या Mocha के लिए package.json पढ़ता है। unittest की कोई config फ़ाइल नहीं होती, इसलिए वह कभी अपने-आप नहीं चुना जाता। उसके बाद subtitle “<framework> · N tests in M files” दिखाता है।

चार टैब

टैबक्या करता है
Explorerहर test फ़ाइल की एक पंक्ति, उसके passed काउंट के साथ। Search tests…, फ़िल्टर ✓ Passed, ✕ Failed, ○ Skipped, और किसी suite या अकेले test को चलाने के लिए ▶। Runner ने छापा हो तो failed test Expected और Received दिखाता है, और Go to line N।
Outputकमांड का कच्चा output, रंगीन, Clear के साथ। खाली होने पर: No test output।
CoverageNo coverage data दिखाता है (नीचे देखें)।
Snapshotsसिर्फ़ Jest और Vitest के लिए। .snap फ़ाइलों में जो मिले उसे सूची में दिखाता है, Update all और Delete obsolete के साथ (पहले यह Delete obsolete snapshots? पूछता है)।

चलाना

  • Footer में Run all, Failed only और, run चल रहा हो तो, Stop होते हैं।
  • Header में Refresh, Toggle watch mode और Run with coverage के आइकन होते हैं।
  • Test tree आपकी फ़ाइलें नाम के patterns (*.test.*, test_*.py, *_test.go, *Test.kt…) से पढ़कर बनता है, अधिकतम 200 फ़ाइलें, और node_modules, .git, build, dist, target, .gradle, __pycache__ और venv को छोड़ दिया जाता है।
  • Watch mode सिर्फ़ Jest, Mocha और Vitest के लिए है, और वह बस कमांड का output Output में स्ट्रीम करता है।

आप कर सकते हैं

  • प्रोजेक्ट का framework पहचानना और उसकी test फ़ाइलें और tests की सूची दिखाना।
  • सभी tests, सिर्फ़ फ़ेल हुए, एक suite या एक test चलाना; run को रोकना।
  • कमांड का output लाइव पढ़ना; runner के बताने पर Expected और Received देखना और फ़ेल होने वाली लाइन पर जाना।
  • Jest, Mocha या Vitest के लिए watch mode शुरू करना।

आप नहीं कर सकते, और क्यों

  • इस बात का भरोसा रखना कि tests चल ही पाएँगे। हर run एक sh -c है जिसमें npx jest --json, python -m pytest, go test, cargo test, ./gradlew test, vendor/bin/phpunit, bundle exec rspec, dart test या swift test जैसा कमांड होता है। पैनल इनमें से कोई tool इंस्टॉल नहीं करता और PATH को नहीं छूता; कोई न हो तो error Output में दिखता है।डिवाइस
  • Coverage रिपोर्ट देखना। Run with coverage framework का coverage कमांड चलाकर उसका output छापता है, लेकिन Coverage टैब को कभी डेटा नहीं मिलता और एडिटर के margin में कोई coverage नहीं दिखता। unittest, RSpec और Swift के पास कोई coverage कमांड ही नहीं है (Coverage no disponible para <framework>)।अभी नहीं
  • हर test का सटीक नतीजा पाना। Pass या fail output के टेक्स्ट से अंदाज़े से तय होता है (test का नाम रखने वाली ✓, PASS या ok वाली लाइन, या ✗, FAIL या ✕ वाली लाइन); जिसमें दोनों में से कुछ न हो वह not run ही रहता है। कमांड जो JSON और JUnit फ़ाइलें माँगते हैं, वे पढ़ी नहीं जातीं।अभी नहीं
  • काम के snapshots पाना। टैब .snap entries दिखाता है, सभी passed चिह्नित, इसलिए Update all और Delete obsolete के पास कुछ सार्थक करने को नहीं होता।अभी नहीं
  • pytest, Go, Cargo, JUnit या बाकी के साथ watch mode इस्तेमाल करना: वे Watch mode no disponible para <framework> दिखाते हैं।अभी नहीं
  • 200 से ज़्यादा test फ़ाइलें सूची में दिखाना, यह सीमा मोबाइल पर performance के लिए रखी गई है।जानबूझकर
  • Tests को debug करना। मेन्यू Test Explorer को “debug tests with coverage” करने में सक्षम बताता है; पैनल debug नहीं करता।अभी नहीं

Docker Tools

Docker Tools आपके डिवाइस पर पहले से मौजूद docker command-line tool का front end है। PocketCode में Docker या Docker daemon शामिल नहीं है, और पैनल में remote host के लिए कोई फ़ील्ड नहीं है। इसलिए आम फ़ोन पर जिन टैब को Docker चाहिए वे Docker isn’t reachable दिखाते हैं, जबकि Dockerfile और Compose एडिटर काम करते रहते हैं।

Tools › Project › Docker Tools। इसके लिए प्रोजेक्ट खुला होना ज़रूरी है; बिना प्रोजेक्ट के यह No project open दिखाता है (“Open a project to manage its Dockerfile and containers.”)।

जब Docker न हो

खुलते समय पैनल docker --version चलाता है। वह फ़ेल हो तो Containers, Images, Build और Registry Docker isn’t reachable दिखाते हैं: “PocketCode runs the docker command on this device and couldn’t find it. You can still edit the Dockerfile and the Compose file.” यह असली कारण और दो बटन जोड़ता है, Try again और Edit Dockerfile। Subtitle में Docker not available लिखा होता है।

Dockerfile और .dockerignore

यह टैब Docker के बिना भी काम करता है। 14 templates में से किसी से शुरू करें — Node.js App, Python App, Java App, Go App, Rust App, Static Site, React App, Next.js, FastAPI, Spring Boot, Django, Ruby on Rails, Laravel, Custom Multi-stage — टेक्स्ट बदलें और प्रोजेक्ट में उसे Dockerfile नाम से Save करें। .dockerignore के लिए आप फ़ाइल Generate करके सेव कर सकते हैं।

Compose

नौ templates: Full-stack Node.js, Full-stack Python, Full-stack Java, LAMP Stack, MEAN Stack, Monitoring Stack, ELK Stack, WordPress और Dev Tools। फ़ाइल को edit करके Save करें; वह हमेशा docker-compose.yml नाम से सेव होती है, भले ही पैनल docker-compose.yml, docker-compose.yaml, compose.yml या compose.yaml पढ़ता हो। Docker मौजूद होने पर Compose up, Compose down, Compose build और Compose logs क्रमशः docker compose up -d, down, build और logs --tail=100 चलाते हैं; जब तक प्रोजेक्ट में Compose फ़ाइल न हो, वे निष्क्रिय रहते हैं।

Docker उपलब्ध होने पर

टैबक्या करता है
Containersdocker ps -a --size को Running और Stopped में बाँटकर दिखाता है। हर container के लिए: logs (आख़िरी 200 लाइनें, फिर Live चिह्नित लाइव docker logs -f), start या stop, और Restart व Remove वाला मेन्यू (यह Remove container? पूछता है)। Error के साथ रुके पहले तीन containers अपनी आख़िरी 20 log लाइनें भी दिखाते हैं।
ImagesImages की सूची; नाम से image Pull करें (उदाहरण के लिए nginx:alpine); किसी को delete करें (यह Delete image? पूछता है)।
BuildImage tag सेट करें (डिफ़ॉल्ट my-app:latest) और Build Image दबाएँ: यह प्रोजेक्ट में docker build -t <tag> . चलाता है, लाइव output और Cancel build के साथ। इसे Dockerfile चाहिए (“Write or pick a Dockerfile first.”)।
RegistryDocker Hub, GitHub CR या Google GCR चुनें और name:tag Push करें (यह docker tag और docker push चलाता है)।

कमांड की सीमाएँ

हर कमांड अधिकतम 300 सेकंड चल सकता है। नाम और tags Docker तक पहुँचने से पहले जाँचे जाते हैं: अक्षर, अंक और _ : . / @ -, अधिकतम 255 अक्षर, और - से शुरू नहीं।

आप कर सकते हैं

  • Docker के साथ या उसके बिना Dockerfile (14 templates), .dockerignore और Compose फ़ाइल (9 templates) लिखना और सेव करना।
  • Try again से Docker की जाँच दोबारा करना।
  • काम करता local docker हो तो: containers की सूची, start, stop, restart और remove; उनके logs लाइव पढ़ना; images pull, list और delete करना; image build करना; Compose up, down, build और logs चलाना; Docker Hub, GitHub CR या Google GCR पर push करना।

आप नहीं कर सकते, और क्यों

  • जिस डिवाइस पर docker कमांड नहीं है वहाँ Docker इस्तेमाल करना। PocketCode कोई Docker binary या daemon साथ नहीं लाता; पैनल सिर्फ़ वही CLI चलाता है जो उसे डिवाइस पर मिले।डिवाइस
  • SSH, DOCKER_HOST या context के ज़रिए remote Docker daemon से जुड़ना: पैनल में host फ़ील्ड नहीं है और हर कमांड इसी डिवाइस पर चलता है।अभी नहीं
  • Registry में login करना: login का कोई चरण नहीं है, इसलिए Push वही इस्तेमाल करता है जो local Docker CLI में पहले से configure हो। सिर्फ़ तीन registries दी गई हैं।अभी नहीं

Monitoring

Monitoring उस ऐप को और उस डिवाइस को मापता है जिसमें आप हैं, किसी server को नहीं। पैनल खुला रहने तक यह हर 2 सेकंड में sample लेता है और बंद करने पर रुक जाता है। अपना खुद का server देखने के लिए अलग Server टैब है।

Tools › Project › Monitoring (title Monitoring Dashboard, subtitle Sampling every 2 s)। यह बिना प्रोजेक्ट के काम करता है।

पाँच टैब

टैबक्या दिखाता है
DashboardSystem Health सेक्शन में चार कार्ड: App CPU, Memory (डिवाइस की memory का उपयोग % में, ऐप का नहीं), Battery और MB में Free storage। फिर Thermal state (Android 10 और उसके बाद) और पाँच सबसे नए alerts, या No active alerts।
Metricsआठ metrics के लिए आख़िरी 60 samples (दो मिनट) की series, min, average और max के साथ: App CPU, App heap, Device memory, Total memory (PSS), Battery, Network in, Network out और Free storage। जिस metric को डिवाइस बता न सके, वह “—” और “This device has not reported this metric yet.” दिखाता है।
Alertsचार rules पहले से मौजूद हैं: High CPU (CPU 80 % से ऊपर), Device memory critical (90 % से ऊपर), Low storage (200 MB से कम) और Low battery (15 % से कम)। New rule आपका अपना rule बनाता है; आप edit, बंद, delete (यह Delete this alert rule? पूछता है) और events को acknowledge कर सकते हैं। Rules रीस्टार्ट के बाद भी बने रहते हैं।
Logsऐप का अपना log (इस प्रोसेस के लिए फ़िल्टर किया गया logcat), 500 लाइनों के buffer में, जो सेकंड में चार बार तक ताज़ा होता है। एक System logs चिप (डिफ़ॉल्ट रूप से बंद), level चिप, Search logs…, Clear, entries काउंटर और Live।
Serverपैनल को अपने Prometheus-compatible server की ओर इंगित करें। नीचे देखें।

Alert rules

Rule के फ़ॉर्म में Metric, Condition (Greater than या Less than), Threshold (metric की range के विरुद्ध जाँचा जाता है), Sustained for (seconds) और Severity (Critical, Warning, Info) होते हैं। Alert events सिर्फ़ तभी evaluate होकर दिखते हैं जब पैनल खुला हो; आख़िरी 100 रखे जाते हैं, हर rule के लिए प्रति मिनट अधिकतम एक।

Server: आपका अपना Prometheus

Server Prometheus, VictoriaMetrics, Thanos, Mimir, Cortex या Grafana proxy के साथ काम करता है। Address डालें, Authentication चुनें (None, User and password या Bearer token), refresh चुनें (5 से 300 सेकंड, डिफ़ॉल्ट 15) और 12 तक queries जोड़ें; हर query एक PromQL instant query है जो एक ही मान लौटाए। Test connection सेटअप जाँचता है। जब तक आप इसे configure नहीं करते, टैब यह दिखाता है: “No server configured. Nothing leaves this device until you set one up.”

आप कर सकते हैं

  • ऐप का CPU, heap और कुल memory, battery, ऐप का network traffic और free storage देखना, साथ ही डिवाइस की memory और thermal state।
  • ऐप का अपना log पढ़ना, उसमें खोजना, level से फ़िल्टर करना और साफ़ करना।
  • Alert rules बनाना, बदलना, बंद करना और हटाना, और पैनल खुला रहने पर देखना कि वे कब बजते हैं।
  • अपने Prometheus-compatible server से 12 तक संख्याएँ दिखाना।

आप नहीं कर सकते, और क्यों

  • Errors, uptime, APM या traces देखना। वे टैब हटा दिए गए क्योंकि फ़ोन किसी और की सेवा के लिए उन्हें माप नहीं सकता। मेन्यू में Monitoring का विवरण अब भी “errors and uptime” कहता है।जानबूझकर
  • पहले चार टैब से किसी दूसरे प्रोसेस या मशीन को monitor करना: वे सिर्फ़ इस ऐप और इस डिवाइस को मापते हैं। अपने server के लिए Server इस्तेमाल करें।जानबूझकर
  • Alert से push, email या Slack नोटिफ़िकेशन पाना: events सिर्फ़ पैनल में दिखते हैं, और सिर्फ़ तब जब वह खुला हो।अभी नहीं
  • Sustained for (seconds) को असर करवाना: यह सेव होकर दिखता है, लेकिन rule तभी बज जाता है जब मौजूदा मान threshold पार कर ले।अभी नहीं
  • सादे HTTP से server को query करना, जब तक वह localhost, 127.0.0.1 या 10.0.2.2 न हो। Android बिना encryption वाला traffic रोकता है, इसलिए http://192.168.1.50:9090 जैसा पता ठुकरा दिया जाता है: https:// या tunnel या TLS proxy इस्तेमाल करें।डिवाइस
  • Range queries, कई series लौटाने वाली queries या Sentry इस्तेमाल करना। सिर्फ़ Prometheus का instant-query API समर्थित है।थर्ड पार्टी

Libraries

Libraries (मेन्यू इसे Dependencies कहता है) कोई package manager नहीं है। यह उन Kotlin/JVM libraries की सूची दिखाती है जो प्रोजेक्ट .pocketcode/dependencies.json में declare करता है, और आपको चार libraries के बंद catalog में से चुनने देती है जो PocketCode ऐप के अंदर ही आती हैं। इन्हें सिर्फ़ पूरा Kotlin runner इस्तेमाल करता है।

Tools › Run › Dependencies, जो सिर्फ़ तब उपलब्ध है जब डिस्क पर प्रोजेक्ट खुला हो, या run पैनल का dependencies बटन। Sheet का शीर्षक Libraries है और subtitle .pocketcode/dependencies.json · N declared दिखाता है।

Catalog

Catalog टैब PocketCode में शामिल चार libraries दिखाता है: kotlinx.coroutines 1.10.2, kotlinx.serialization · JSON 1.7.3, kotlinx.serialization · core 1.7.3 और Okio 3.9.1। किसी पंक्ति का + आइकन (Add और library का नाम) उसे प्रोजेक्ट में जोड़ देता है।

Declared

Declared टैब वह दिखाता है जो प्रोजेक्ट का JSON declare करता है, फ़िल्टर All, Outdated और Not included के साथ। हर पंक्ति group:artifact दिखाती है और यह भी कि PocketCode उसे शामिल करता है या नहीं (“Included with PocketCode.”, या “a → b” जब प्रोजेक्ट कोई दूसरा version माँगता है), साथ में update आइकन और remove आइकन। नीचे का Update N हर outdated library को update करता है, यानी उसे उस version पर सेट करता है जो PocketCode में शामिल है। Header का refresh आइकन (Resolve now) libraries को दोबारा तैयार करता है, “Preparing the libraries…” और “Ready: this project’s libraries are prepared.” स्थितियों के साथ। Declarations न हों तो यह No dependencies दिखाता है।

जो library शामिल नहीं है

अगर JSON में catalog से बाहर की कोई चीज़ हो, तो पंक्ति बताती है कि वह PocketCode के साथ नहीं आती, “so this project runs in simple mode. Remove it, or use one of the libraries above.”

आप कर सकते हैं

  • देखना कि प्रोजेक्ट कौन-सी libraries declare करता है और हर एक शामिल है या नहीं।
  • चारों bundled libraries में से कोई भी जोड़ना, हटाना, या bundled version पर update करना।
  • बिना नेटवर्क के libraries तैयार करना: jar ऐप से लिया जाता है और SHA-256 से जाँचा जाता है।

आप नहीं कर सकते, और क्यों

  • इंटरनेट, npm, pip, Maven, Gradle या cargo से libraries इंस्टॉल करना। Google Play किसी ऐप को Play के बाहर से executable कोड (jar, dex) डाउनलोड करने की अनुमति नहीं देता, इसलिए catalog बंद है, ऐप में bundled है और नेटवर्क इस्तेमाल नहीं करता।Google Play
  • कोई मनमाना coordinate जोड़ना या version चुनना: PocketCode वही version इस्तेमाल करता है जो उसमें शामिल है, और JSON का repositories फ़ील्ड पढ़कर अनदेखा कर दिया जाता है।Google Play
  • इन libraries को दूसरी भाषाओं से इस्तेमाल करना: यह सूची सिर्फ़ पूरे Kotlin runner के लिए है।जानबूझकर

Backend Generators

Backend Generators ऐप में रखे templates से server कोड लिखते हैं। यह AI नहीं है: वही settings हमेशा वही फ़ाइलें देती हैं (Generate बटन बस पहले थोड़ी देर रुकते हैं)। आप नतीजा sheet में पढ़ते हैं और, प्रोजेक्ट खुला हो तो, उसे backend/ के अंदर सेव करते हैं।

Tools › Project › Backend Generators।

टैब

टैबक्या करता है
API boilerplateFramework चुनें (Express.js, FastAPI, Spring Boot, Django REST, Gin, Actix Web, NestJS, Fiber), Database (PostgreSQL, MySQL, SQLite, MongoDB, Redis), Authentication (None, JWT, OAuth2, API Key, Session-based), Options (Docker, CORS, Rate limiting, Swagger / OpenAPI, Tests, CI/CD), Project name, Port और Base URL, फिर Generate boilerplate। CI/CD framework की भाषा के setup चरण के साथ .github/workflows/ci.yml जोड़ता है।
CRUD generatorकिसी model और उसकी table को नाम दें, Fields जोड़ें (String, Integer, Float, Boolean, Date, DateTime, UUID, JSON, Text, Enum, Array, Binary, हर एक required या unique), Validation, Pagination, Search, Soft delete, Audit fields या Tests पर निशान लगाएँ, फिर Generate CRUD। Express और NestJS कई TypeScript फ़ाइलें देते हैं, FastAPI और Django REST कई Python फ़ाइलें; Spring Boot, Gin, Actix Web और Fiber एक ही src/<model>.ts फ़ाइल देते हैं।
Migrationsग्यारह प्रकार: Create Table, Alter Table, Drop Table, Add Column, Drop Column, Add Index, Drop Index, Add Foreign Key, Rename Table, Rename Column और Seed Data। Columns जोड़ें, Generate migration दबाएँ और Up migration व Down migration का SQL पढ़ें, साथ में History।
OpenAPI / SwaggerTitle, Version, endpoints और Security (Bearer (JWT), API key, Basic) भरें, YAML या JSON चुनें और Generate OpenAPI spec दबाएँ।

Save to project

Save to project बनी हुई फ़ाइलें प्रोजेक्ट में backend/ के नीचे लिखता है; migrations backend/up.sql और backend/down.sql बनती हैं, और spec backend/openapi.yaml या backend/openapi.json। Paths प्रोजेक्ट फ़ोल्डर से बाहर नहीं जा सकते। कुछ फ़ाइलें पहले से हों तो यह Overwrite files? पूछता है (“N file(s) already exist in the project and will be overwritten.”)। सफल होने पर यह “Saved N file(s) to backend/ in the project” कहता है, और लिखना फ़ेल हो तो “Couldn’t save the generated files”। इसके लिए प्रोजेक्ट खुला होना चाहिए।

आप कर सकते हैं

  • आठ frameworks के लिए API boilerplate, CRUD फ़ाइलें, SQL migrations (up और down) और YAML या JSON में OpenAPI spec बनाना, डिवाइस पर और बिना नेटवर्क के।
  • बना हुआ कोड preview में पढ़ना और उसका टेक्स्ट select करना।
  • सब कुछ प्रोजेक्ट में backend/ के नीचे सेव करना, overwrite से पहले पुष्टि के साथ।

आप नहीं कर सकते, और क्यों

  • काम करने वाला mock server पाना। Mock server टैब में Start बस एक सेकंड बाद status को Running कर देता है और फिर Request log में गढ़े हुए requests जोड़ता है (हर कुछ सेकंड में एक random route और latency)। यह कोई port नहीं खोलता।अभी नहीं
  • NestJS या Fiber के लिए अलग कोड पाना: वे Express और Gin के templates दोबारा इस्तेमाल करते हैं।अभी नहीं
  • Spring Boot, Gin, Actix Web या Fiber के लिए पूरा CRUD पाना: सिर्फ़ वही एक TypeScript fallback फ़ाइल मिलती है।अभी नहीं
  • MongoDB या Redis के लिए विशिष्ट migrations पाना: migrations SQL हैं, और सिर्फ़ PostgreSQL के अपने column types हैं।अभी नहीं

AI Generators

AI Generators में पाँच टैब हैं, लेकिन सिर्फ़ तीन AI इस्तेमाल करते हैं। API और Schema डिवाइस पर चलने वाले offline templates हैं; Translate, Security और Performance आपका चिपकाया कोड आपके जुड़े हुए AI provider को भेजते हैं।

AI › AI Generators (subtitle API • Schema • Translate • Security • Performance)। यह बिना प्रोजेक्ट के काम करता है। हर टैब में एक मुख्य बटन है।

पाँच टैब

टैबक्या करता है
API · offlineAPI का वर्णन करें, 12 frameworks में से एक चुनें और Generate API दबाएँ। आपके वर्णन का सिर्फ़ पहला अर्थपूर्ण शब्द resource के नाम के रूप में इस्तेमाल होता है; आपको हमेशा पाँच CRUD endpoints और कोड मिलता है। 12 frameworks सात templates साझा करते हैं: NestJS और Hono Express वाला इस्तेमाल करते हैं, Flask और Django REST FastAPI वाला, Fiber Gin वाला।
Schema · offlineकोई engine (PostgreSQL, MySQL, SQLite, MongoDB, Redis, Firestore) और output format चुनें, फिर Generate schema। आपको हमेशा एक table मिलती है जिसका नाम आपके वर्णन के पहले शब्द पर होता है, और जिसमें id, name, email, status, created_at और updated_at होते हैं। SQL, Prisma, TypeORM, Django और Mongoose के अपने generators हैं; Sequelize, SQLAlchemy, Drizzle और Knex सादा SQL DDL लौटाते हैं।
Translate · AIकोड चिपकाएँ, 16 भाषाओं (JavaScript, TypeScript, Python, Java, Kotlin, Swift, Go, Rust, C++, C#, Ruby, PHP, Dart, Scala, Lua, R) में से From और To चुनें, Swap languages से उन्हें आपस में बदलें और Translate code दबाएँ। दोनों एक जैसी हों तो “Source and target languages are the same” मिलता है। जवाब में अनुवादित कोड, notes और warnings होते हैं।
Security · AIकोड चिपकाएँ और Scan for vulnerabilities दबाएँ। Prompt OWASP Top 10 के अनुसार, CWE से जुड़ी समीक्षा माँगता है। आपको Risk स्कोर और findings मिलते हैं, जिनमें severity (Critical, High, Medium, Low, Info), category, CWE और OWASP संदर्भ, लाइन, सुझाव और fix कोड होता है।
Performance · AIकोड चिपकाएँ और Analyse performance दबाएँ। आपको 0 से 100 का स्कोर, समय और स्पेस complexity, issues और Recommendations मिलती हैं।

AI टैब को क्या चाहिए

एक जुड़ा हुआ AI provider और इंटरनेट। पहली बार एक सूचना Send to <provider>? पूछती है; Send आपका चिपकाया कोड साझा करता है, Cancel कुछ भी साझा नहीं करता। API और Schema को न provider चाहिए, न नेटवर्क। बनाने से पहले नतीजे वाला हिस्सा “The result will appear here once generated.” दिखाता है।

आप कर सकते हैं

  • Offline एक REST API का ढाँचा और शुरुआती schema बनाना।
  • अपने AI provider से 16 भाषाओं के बीच कोड का अनुवाद करना, उसमें vulnerabilities खोजना और उसकी performance का विश्लेषण करना।
  • नतीजा sheet में पढ़ना और उसका टेक्स्ट select करना।

आप नहीं कर सकते, और क्यों

  • एडिटर का selection इस्तेमाल करना: आप कोड पैनल में चिपकाते हैं; “use selection” जैसा कोई बटन नहीं है।अभी नहीं
  • नतीजे को अपनी फ़ाइल में insert या apply करना: पैनल उसे सिर्फ़ दिखाता है।अभी नहीं
  • अपने वर्णन से कस्टम API या schema पाना: API और Schema उसका सिर्फ़ पहला शब्द इस्तेमाल करते हैं, बाकी हिस्सा output नहीं बदलता।अभी नहीं
  • Sequelize, SQLAlchemy, Drizzle या Knex का कोड पाना: ये चारों formats SQL DDL लौटाते हैं।अभी नहीं
  • बिना जुड़े provider या बिना इंटरनेट के Translate, Security या Performance इस्तेमाल करना।नेटवर्क ज़रूरी

AI code actions

मेन्यू के AI सेक्शन में ऐसे actions हैं जो आपके कोड पर काम करते हैं: explain, tests, docs, comments से कोड, refactor और पाँच quick actions। ये आपकी स्वीकार की गई सूचना के बाद कोड को आपके जुड़े हुए AI provider को भेजते हैं और जवाब दिखाते हैं।

More options का AI सेक्शन, या command palette। ज़्यादातर के लिए कोड select होना ज़रूरी है; tests और docs उस function का इस्तेमाल करते हैं जिसमें कर्सर है। कुछ select न हो तो selection-आधारित actions कुछ नहीं करते।

Actions

Actionक्या होता है
AI: Explain SelectionSelect किए गए कोड को समझाता है। जवाब डॉक्ड पैनल में Explanation के रूप में दिखता है।
AI: Generate Testsकर्सर वाले function के लिए tests लिखता है (Generated Tests)। Insert उन्हें कर्सर पर डाल देता है।
AI: Generate Docsकर्सर वाले function के लिए दस्तावेज़ लिखता है (Documentation)। Apply जवाब को उस function की जगह रख देता है।
AI: Generate from Commentsकम से कम 10 अक्षरों वाले // TODO: …, // FIXME: …, // GENERATE: …, // AI: …, // IMPLEMENT: …, // STUB: …, # TODO: … या /* TODO: … */ जैसे comments ढूँढता है और एक बार में अधिकतम पाँच दिखाता है (“N comment(s) with generatable code”)। किसी पर टैप करके Generated Code पाएँ, Insert के साथ।
AI: Refactor CodeAI-assisted refactoring खोलता है: नौ प्रकारों में से एक चुनें और Refactor दबाएँ। कुछ select न हो तो यह पूरी फ़ाइल refactor करता है। जवाब Refactored Code के रूप में आता है, Apply के साथ, जो भेजे गए कोड की जगह लेता है (selection, या कुछ select न हो तो पूरी फ़ाइल)। नौ प्रकारों के नाम हमेशा स्पेनिश में रहते हैं: Extraer y Simplificar, Mejorar Nomenclatura, Añadir Type Safety, Convertir Patrón, Optimizar Rendimiento, Revisión Seguridad, Mejorar Accesibilidad, Manejo de Errores और Personalizado (Custom instructions के साथ)।
Fix Errors, Optimize, Simplify, ModernizeSelection पर काम करते हैं। जवाब bottom sheet में खुलता है (“Fixed Code”, “Optimized Code”, “Simplified Code”, “Modernized Code”)। Apply पहले लाल-हरे diff का preview दिखाता है, फिर selection बदल देता है (या selection न बचा हो तो कर्सर पर insert करता है)।
GenerateSelection को उस चीज़ का विवरण मानता है जो आप चाहते हैं, जैसे कोई comment (// function that returns the sum of a list) या सादा वाक्य, और आपके AI provider से कोड माँगता है। “Generated Code” शीर्षक वाली bottom sheet पहले AI is thinking… दिखाती है और फिर कोड; अगर provider जवाब न दे पाए तो sheet error दिखाती है और लोड होना बंद कर देती है, और ✕ उसे बंद करता है। Apply पहले लाल-हरे diff का preview दिखाता है, फिर कोड को selection के नीचे नई पंक्ति में डालता है, इसलिए आपका विवरण बना रहता है। Copy उसे कॉपी करता है। पहली बार एक सूचना पूछती है Send to <provider>?।
Ask AI About Selection (Ctrl+I)एडिटर बंद करता है और selection को context बनाकर AI Chat खोलता है।

डॉक्ड पैनल में Apply और Insert

डॉक्ड पैनल अधिकतम 300 dp ऊँचा होता है और बंद करने के लिए ✕ होता है। Insert जवाब को कर्सर पर डालता है। Apply सिर्फ़ उस कोड-हिस्से को जवाब से बदलता है जो AI को भेजा गया था (Generate Docs में वह function; Refactor में selection, या कुछ select न हो तो पूरी फ़ाइल), बिना preview के और एक ही undo स्टेप में। अगर AI के जवाब देते समय आपने वह कोड बदल दिया और वह अब मिलता नहीं, तो कुछ नहीं बदलता और पैनल कहता है “The code changed while the AI was answering, so the result was not applied. Copy it instead.” Copy बटन जनरेट किए गए कोड के बगल में है और उसे क्लिपबोर्ड पर कॉपी करता है (“Copied to clipboard”); bottom sheet में पूरे जवाब के लिए अपना Copy है।

आप कर सकते हैं

  • अपने AI provider से कोड को explain करना, उसके tests लिखना, document करना, refactor, fix, optimize, simplify या modernize करना।
  • TODO या GENERATE comment को कोड में बदलना।
  • किसी comment या वाक्य में बताना कि आप क्या चाहते हैं, उसे select करना और Generate चलाना; कोड उसके ठीक नीचे डल जाता है।
  • भेजे गए function या selection पर ही generate किए गए docs या refactor को लागू करना, और एक स्टेप में undo करना।
  • Copy से generate किया गया कोड क्लिपबोर्ड पर कॉपी करना, डॉक्ड पैनल और bottom sheet दोनों में।
  • Quick action लागू करने से पहले diff की समीक्षा करना।
  • Ask AI About Selection से selection को AI Chat को सौंपना।

आप नहीं कर सकते, और क्यों

  • कुछ select किए बिना AI: Explain Selection, Fix Errors, Optimize, Simplify, Modernize या Generate चलाना: वे कुछ नहीं करते।जानबूझकर
  • Refactor प्रकारों को अपनी भाषा में देखना: उनके नाम स्पेनिश में तय हैं।अभी नहीं

Live Collaboration

Live Collaboration दो या अधिक डिवाइसों को एक ही Wi-Fi नेटवर्क पर एक फ़ाइल साथ मिलकर edit करने देता है। यह मुफ़्त है, इसके लिए अकाउंट नहीं चाहिए और कोई server नहीं है: host का फ़ोन आपके local network पर सुनता है, guests उसे ढूँढते हैं, छह अंकों का कोड डालते हैं और host उन्हें अंदर आने देता है। कुछ भी इंटरनेट से होकर नहीं जाता।

Tools › Collaborate › Live Collaboration (title Live Collaboration)। Session के बिना यह Host or join on the same Wi-Fi दिखाता है और चेतावनी देता है LAN only — peers must share the same Wi-Fi।

Session host करना

  1. 1Host on this device के नीचे session का नाम लिखें और Start hosting पर टैप करें। Session आपकी खुली फ़ाइल का टेक्स्ट साझा करता है।
  2. 2छह अंकों का Pairing code उसे दें जो join हो रहा है (“Give this code to whoever is joining”)।
  3. 3जब कोई सही कोड डालता है, तो आपका डिवाइस Someone wants to join पूछता है: “<name> typed the right code. Letting them in shares the file with their device.” Let them in या Turn away चुनें। आपके पास 90 सेकंड तक का समय है।
  4. 4Header में End Session से इसे समाप्त करें।

Session में join करना

  1. 1उसी Wi-Fi पर पैनल खोलें। Peers on your network LAN को scan करता है (Scanning the LAN…) और कोई host न कर रहा हो तो No peers found कहता है।
  2. 2Code from the host में host के छह अंक डालें (“Nobody can join without it. The session never leaves your network.”)।
  3. 3Host पर टैप करें और उसके अंदर आने देने का इंतज़ार करें (120 सेकंड तक)। आपकी खुली फ़ाइल की सामग्री host के टेक्स्ट से बदल जाती है।
  4. 4Header में Leave से बाहर निकलें।

Session के अंदर

टैबक्या दिखाता है
SessionPairing code (सिर्फ़ host के लिए), Session ID, Host (डिवाइस का मॉडल), Port, “n / 10” के रूप में Participants, Chat, Connected सूची और Activity।
Peopleहर participant, HOST या (you) टैग, Online या Offline और कर्सर की “Line l:c” के साथ। Host को दूसरों में से हर एक के लिए Remove बटन मिलता है।
Chatटेक्स्ट संदेश (Type a message…); तीन backticks से शुरू होने वाला संदेश code snippet के रूप में दिखता है।

क्या साझा होता है

  • Session शुरू होने के समय host की सक्रिय फ़ाइल का टेक्स्ट। एक session एक buffer साझा करता है: प्रोजेक्ट tree नहीं, दूसरी फ़ाइलें नहीं।
  • उसके बाद सभी के edits मर्ज हो जाते हैं (CRDT) और remote कर्सर एडिटर में नाम और रंग के साथ दिखते हैं।
  • Host सब कुछ relay करता है: guests host से बात करते हैं, आपस में नहीं।
  • Host जिस भी guest को अंदर आने देता है वह साझा टेक्स्ट edit कर सकता है।
  • किसी guest का connection टूट जाए तो ऐप छह बार तक दोबारा कोशिश करता है (1 s से बढ़कर 15 s तक) और इस बीच जो टाइप हुआ उसे मिला लेता है।

नेटवर्क और permission

Android 13 से, host करने और join करने के लिए Android की nearby-devices permission चाहिए (सबसे नए Android versions में यह local-network permission है)। जब आप host, scan या join शुरू करते हैं और वह permission नहीं मिली होती, तो Android का अपना permission डायलॉग खुलता है: उसे दें और फिर टैप करें। अगर आप मना करते हैं, तो host और join ठुकराए जाते रहते हैं (अगली कोशिश में समझाइश फिर दिखती है), जब तक आप उसे Android की ऐप settings से नहीं देते। Permission की व्याख्या और connection errors ऐप की भाषा में दिखते हैं।

आप कर सकते हैं

  • खुली फ़ाइल साझा करने वाला session host करना; हर guest को मंज़ूर या अस्वीकार करना; session समाप्त करना।
  • आप जिस भी guest को स्वीकार करें उसे साझा टेक्स्ट edit करने देना।
  • ज़रूरत पड़ने पर Android के permission डायलॉग का जवाब पैनल से ही देना, और उसकी व्याख्या ऐप की भाषा में पढ़ना।
  • Remove से किसी guest को हटाना: उसका connection बंद हो जाता है, और वह दोबारा join करने की कोशिश करे तो host उसे बिना पूछे लौटा देता है।
  • छह अंकों के कोड से उसी Wi-Fi पर किसी host में join करना।
  • एक ही टेक्स्ट एक साथ edit करना, सभी के कर्सर देखना और chat करना।
  • थोड़ी देर टूटने के बाद अपने-आप दोबारा जुड़ना।

आप नहीं कर सकते, और क्यों

  • अलग-अलग नेटवर्क पर या इंटरनेट से collaborate करना: कोई relay या cloud नहीं है।जानबूझकर
  • अपना नाम चुनना: हर participant, आप समेत, You के रूप में दिखता है, host के approval डायलॉग में भी।अभी नहीं
  • “n / 10” की सीमा पर भरोसा करना: वह सिर्फ़ दिखाई जाती है, और host guests की संख्या सीमित नहीं करता।अभी नहीं
  • Guest के साथ terminal या debugging साझा करना: यह जान-बूझकर हटाया गया है, क्योंकि इससे दूसरे डिवाइस को shell मिल जाता।जानबूझकर
  • कई फ़ाइलें या प्रोजेक्ट साझा करना: एक session एक buffer साझा करता है।जानबूझकर

Problems

Problems एक ही सूची है जिसमें हर खुले टैब में एडिटर को जो भी गड़बड़ मिली है, फ़ाइल के हिसाब से समूहित, दिखती है। यह फ़ुल-स्क्रीन डायलॉग है, sheet नहीं।

Go to › Problems (Ctrl+Shift+M), एडिटर की status bar में problems काउंटर, या Go to › Analyze Style (Lint), जो वही डायलॉग Style चालू करके खोलता है।

Filters

Origin से फ़िल्टर करें — Compiler/LSP, Markers और Style, हर एक अपनी गिनती के साथ — और severity से — Errors, Warnings, Info और Hints। Compiler/LSP और Markers डिफ़ॉल्ट रूप से चालू हैं। Style (linter के rules) तभी गिना जाता है जब आप उसे चालू करें, “Analyzing style…” के साथ, और डायलॉग बंद रहने पर कुछ भी गिना नहीं जाता।

पंक्तियाँ

Problems की दोहराव हटाकर severity और फिर लाइन के हिसाब से क्रम में रखा जाता है। “Line N, Col M” पर जाने के लिए किसी पंक्ति पर टैप करें। सक्रिय फ़ाइल के समूह में Quick fixes होता है, जो quick-fixes पैनल खोलता है। F8 और Shift+F8 डायलॉग खोले बिना अगले या पिछले error, warning या TODO marker पर कूद जाते हैं। दिखाने को कुछ न हो तो No problems found लिखा होता है।

आप कर सकते हैं

  • सभी खुले टैब के language server, markers और style rules के errors, warnings, info और hints एक सूची में देखना।
  • Origin और severity से फ़िल्टर करना और किसी लाइन पर जाना।
  • सक्रिय फ़ाइल की problems के लिए Quick fixes खोलना।

आप नहीं कर सकते, और क्यों

  • उन फ़ाइलों की problems देखना जो किसी टैब में खुली नहीं हैं: सिर्फ़ खुले टैब पढ़े जाते हैं।जानबूझकर
  • टाइप करते समय Style को हमेशा चालू रखना: हर बार चालू करने पर वह माँग पर गिना जाता है।जानबूझकर

Outline

Outline एडिटर के दाईं ओर का कॉलम है जो फ़ाइल की classes, interfaces, functions, import blocks और // region सेक्शनों की सूची देता है और उन पर कूदने देता है। इसे एक सादा parser बनाता है; यह language server इस्तेमाल नहीं करता।

Go to › Outline इसे चालू-बंद करता है, और breadcrumb का symbol हिस्सा भी। यह 200 dp चौड़ा है और तभी दिखता है जब एडिटर को फ़ाइल में regions मिले हों।

यह क्या पहचानता है

  • वे लाइनें जो class, interface, object, enum class, fun या suspend fun से शुरू होकर { खोलती हैं — Kotlin-शैली की declarations।
  • लगातार तीन या अधिक लाइनों के blocks जो import से शुरू होते हैं।
  • // region Name के रूप में लिखे और // endregion से बंद किए गए regions।
  • आपके टाइप करना रोकने के 0.8 सेकंड बाद यह ताज़ा होता है।

इस्तेमाल

Filter symbols… में टाइप करें (यह टेक्स्ट के हिस्से से मेल खाता है, fuzzy नहीं है) और किसी entry पर टैप करके उसकी लाइन पर जाएँ। फ़िल्टर किसी से मेल न खाए तो No symbols दिखता है।

आप कर सकते हैं

  • किसी Kotlin फ़ाइल की संरचना देखना और किसी भी class, function, import block या region पर कूदना।
  • टाइप करके सूची फ़िल्टर करना।

आप नहीं कर सकते, और क्यों

  • दूसरी भाषाओं की शैली में लिखी declarations की सूची देना: JavaScript का function, Python का def या Java का public class मेल नहीं खाते। उन फ़ाइलों में आपको ज़्यादातर import blocks और // region markers ही मिलते हैं।अभी नहीं
  • Symbols के लिए language server इस्तेमाल करना: Outline नहीं करता।अभी नहीं

Free और Pro

इस पेज का हर tool मुफ़्त है। किसी पर भी plan की सीमा या paywall नहीं है।

ToolFreePro
Debug, Test Explorer, Docker Tools, Monitoring, Libraries, Backend Generatorsशामिलशामिल
AI Generators और AI code actionsशामिल; ये आपके जुड़े हुए AI provider का इस्तेमाल करते हैंशामिल; वही
Live Collaborationशामिलशामिल
Problems और Outlineशामिलशामिल
Pro इन tools में कुछ नहीं बदलता। Pro असल में क्या अनलॉक करता है, यह जानने के लिए देखें प्लान और मूल्य।

प्राइवेसी और सुरक्षा

हर tool के हिसाब से, डिवाइस से क्या बाहर जाता है।

  • Debug, Test Explorer, Docker Tools, Libraries, Backend Generators, Problems और Outline आपका कोड कहीं नहीं भेजते। वे जो कमांड चलाते हैं (npx, docker pull, docker push…) किसी भी shell की तरह व्यवहार करते हैं, अपने नेटवर्क इस्तेमाल के साथ।
  • AI actions, और AI Generators के Translate, Security व Performance टैब, आपका select या चिपकाया कोड, निर्देशों के साथ, इंटरनेट से आपके AI provider को भेजते हैं। पहले एक सूचना Send to <provider>? पूछती है; Cancel कुछ नहीं भेजता। API और Schema AI इस्तेमाल नहीं करते और कुछ नहीं भेजते। Ask AI About Selection AI Chat खोलता है, जो अपने नियमों पर चलता है।
  • Monitoring डिवाइस पर ही मापता है और कुछ नहीं भेजता। Server टैब सिर्फ़ वही पता query करता है जो आप डालते हैं, उन्हीं credentials के साथ जो आप टाइप करते हैं; पासवर्ड या token Android Keystore से encrypt होकर सेव होता है। जब तक आप इसे configure नहीं करते, “Nothing leaves this device”।
  • Live Collaboration आपके local network पर ही रहता है: कोई server, relay या अकाउंट नहीं। Traffic encrypted है (ECDH P-256 key exchange, फिर AES-128-GCM) और guest को छह अंकों का कोड और host की मंज़ूरी चाहिए। Design के अनुसार host उसी Wi-Fi के दूसरे डिवाइसों को दिखता है, ताकि वे उसे ढूँढ सकें।
  • यह encryption आपको उस व्यक्ति से नहीं बचाती जिसे छह अंक पता चल जाएँ और जिसे आप अंदर आने दें: कोड जान-बूझकर छोटा रखा गया है ताकि लोग उसे टाइप कर सकें। पाँच नाकाम कोशिशों के बाद host session बंद कर देता है।

सीमाएँ

ये tools आज क्या नहीं करते, और क्यों।

  • Debugging सिर्फ़ JavaScript के लिए असली है; Evaluate expression… undefined जवाब देता है।अभी नहीं
  • Test Explorer और Docker Tools कमांड डिवाइस के ज़रिए चलाते हैं और अपने साथ Node, Python, Go, Cargo, Gradle या Docker नहीं लाते।डिवाइस
  • Coverage टैब कभी डेटा नहीं दिखाता, और snapshot tools के पास कुछ करने को नहीं होता।अभी नहीं
  • Libraries चार Kotlin libraries का बंद catalog है: Google Play executable कोड डाउनलोड करने की अनुमति नहीं देता।Google Play
  • Mock server टैब गढ़े हुए requests वाला मॉक-अप है; NestJS और Fiber Express और Gin के templates दोबारा इस्तेमाल करते हैं।अभी नहीं
  • AI Generators में API और Schema offline templates हैं, AI नहीं।अभी नहीं
  • AI टैब और actions को जुड़ा हुआ provider और इंटरनेट चाहिए।नेटवर्क ज़रूरी
  • Live Collaboration सिर्फ़ एक local network पर काम करता है, बिना relay या cloud के।जानबूझकर
  • Monitoring में push, email या Slack alerts नहीं हैं और local न हो तो वह सादे HTTP से server तक नहीं पहुँच सकता।डिवाइस
  • Outline सिर्फ़ Kotlin-शैली की declarations समझता है।अभी नहीं
  • कुछ टेक्स्ट अनूदित नहीं हैं: Debug टैब के नाम अंग्रेज़ी में हैं, नौ refactor प्रकार स्पेनिश में, और कुछ error संदेश स्पेनिश (Test Explorer) या अंग्रेज़ी (generators) में हैं।अभी नहीं

समस्या निवारण

Docker isn’t reachable

डिवाइस में ऐसा कोई docker कमांड नहीं है जिसे PocketCode चला सके। जहाँ हो सके वहाँ एक इंस्टॉल करें, या Dockerfile और Compose टैब इस्तेमाल करते रहें, जो उसके बिना काम करते हैं, और कमांड ऐसी जगह चलाएँ जहाँ Docker हो। Try again जाँच दोहराता है।

No project open

Docker Tools प्रोजेक्ट फ़ोल्डर पर काम करता है। कोई प्रोजेक्ट खोलें और tool को दोबारा खोलें।

No test framework detected

प्रोजेक्ट में कोई ऐसी config फ़ाइल नहीं है जिसे PocketCode पहचानता हो (jest.config.js, pytest.ini, go.mod, Cargo.toml, phpunit.xml, pubspec.yaml, Package.swift…), और package.json में Jest, Vitest या Mocha का ज़िक्र नहीं है। unittest कभी अपने-आप नहीं चुना जाता।

Error ejecutando tests: …

Test कमांड शुरू नहीं हो सका या किसी error से बीच में कट गया; कोलन के बाद का टेक्स्ट कारण है। अगर कमांड को चाहिए वाला tool (npx, python, go, cargo, ./gradlew…) मौजूद नहीं है, तो shell Output में यह बताता है और tests not run रहते हैं। यह संदेश आपकी भाषा जो भी हो, स्पेनिश में आता है।

Coverage no disponible para <framework>

unittest, RSpec और Swift XCTest के पास coverage कमांड नहीं है। बाकी के लिए कमांड चलता है, लेकिन Coverage टैब खाली रहता है।

Watch mode no disponible para <framework>

Watch mode सिर्फ़ Jest, Mocha और Vitest के लिए है।

⚠ <runner> has no debugger support — running without it.

सिर्फ़ JavaScript फ़ाइलें (.js, .mjs, .cjs, .jsx) debug होती हैं। बाकी सब, TypeScript समेत, बस चलता है।

⚠ Could not attach the debugger on port N — the process stays paused.

पैनल Node के inspector से नहीं जुड़ सका। Run पैनल से run रोकें और Debug File दोबारा शुरू करें।

Breakpoint not set at <file>:<line> — <cause>

Debugger ने वह breakpoint ठुकरा दिया; वह Console टैब में चेतावनी के रूप में दिखता है और कारण डैश के बाद आता है। जो फ़ाइल चल रही है उसकी कोई executable लाइन आज़माएँ।

Android blocks unencrypted HTTP to <host>…

Monitoring › Server सादे HTTP को ठुकराता है, जब तक host localhost, 127.0.0.1 या 10.0.2.2 न हो। https:// पता इस्तेमाल करें, या server के आगे tunnel या TLS proxy लगाएँ।

Couldn’t start reading this app’s log. The system may not allow it on this device.

Monitoring › Logs इस ऐप का logcat पढ़ता है; कुछ डिवाइस ऐप को ऐसा नहीं करने देते। बाकी टैब पर असर नहीं पड़ता।

No AI service connected. Connect a provider in Settings to use AI features.

AI actions और तीनों AI टैब को provider चाहिए। Settings में key जोड़ें या sign in करें और दोबारा कोशिश करें। देखें AI providers, models & keys।

Translation failed: … · Scan failed: … · Analysis failed: …

Provider ने error के साथ जवाब दिया या उस तक पहुँचा नहीं जा सका; कोलन के बाद का टेक्स्ट उसका कारण है। Generators के अपने संदेश अंग्रेज़ी में हैं।

PocketCode needs permission to use the local network and find nearby devices… · The local network permission is missing…

Live Collaboration को Android की nearby-devices (local-network) permission चाहिए। जब आप host, scan या join करते हैं तो पैनल Android के डायलॉग से उसे माँगता है; अगर आपने मना कर दिया, तो Android settings में PocketCode के लिए उसे अनुमति दें और दोबारा कोशिश करें। तब तक host और join ठुकरा दिए जाते हैं, और यह सूचना ऐप की भाषा में दिखती है।

No response. The host may be gone, you may be on different networks, or Android may be blocking the local network.

जाँचें कि host का session अब भी खुला है, दोनों डिवाइस एक ही Wi-Fi पर हैं (जो router डिवाइसों को एक-दूसरे से अलग रखता है वह इसे रोक देगा) और ऊपर वाली permission दी हुई है।

No peers found

अभी आपके नेटवर्क पर कोई host नहीं कर रहा, या डिवाइस एक ही Wi-Fi पर नहीं हैं। Host से कहें कि Live Collaboration खोलकर Start hosting पर टैप करे।

Failed to join <host>: … · Failed to start hosting: …

कोलन के बाद का टेक्स्ट ऐप की भाषा में कारण बताता है: Could not join the session. (गलत कोड, या host ने लौटा दिया; ऐप हर कारण के लिए जान-बूझकर यही एक वाक्य कहता है, इसलिए गलत कोड और अस्वीकृति एक जैसे दिखते हैं), No response… (ऊपर), The other device did not answer like PocketCode, or it runs an incompatible version. Check that you picked the right session and try again. या, बाकी सब के लिए, Could not connect to the host.

Too many failed attempts to join. The session has been closed; start a new one to get another code.

पाँच नाकाम कोशिशों (गलत कोड, अस्वीकृति या connection की विफलता) के बाद host session बंद कर देता है। नया कोड पाने के लिए फिर से host करें।

Enter the 6-digit code the host is showing.

Host पर टैप करने से पहले host की स्क्रीन पर Pairing code के नीचे दिखे छह अंक डालें।

The host closed the session. Your file stays open exactly as it is.

Host ने session समाप्त कर दिया, या छह कोशिशों के बाद दोबारा जुड़ना फ़ेल हो गया (“Could not reconnect to the host…”)। आपकी फ़ाइल आपके लिखे सब कुछ के साथ खुली रहती है, टूटने के बाद टाइप किए हिस्से समेत।

No symbols

Outline का फ़िल्टर किसी से मेल नहीं खाता। फ़ील्ड साफ़ करें। JavaScript, Python या Java फ़ाइलों में Outline ज़्यादातर सिर्फ़ import blocks और // region markers दिखाता है।