Linux Terminal
PocketCode का terminal आपके फ़ोन पर असली shell देता है: native pseudo-terminal पर चलने वाला BusyBox ash, आपके projects को home folder बनाकर, साथ में tabs, split view और 20 tools का एक panel। Remote काम (SSH hosts, SFTP, port forwarding) का अपना अलग पेज है।

यह क्या है और इसे कैसे खोलें
Terminal, pager के पाँच पेजों में से एक नहीं है: यह ऐप के ऊपर full-screen overlay के रूप में खुलता है। इसमें जाने के तीन तरीके हैं।
- 1Navigation bar में Tools बटन टैप करें और Dev tools sheet में Terminal चुनें।
- 2Command palette खोलें और Open Terminal (“Open a terminal session”) चलाएँ।
- 3Home पर Terminal quick action टैप करें। यह डिफ़ॉल्ट रूप से दिखने वाली तीन quick actions में से एक है।
Screens का नक्शा
Terminal तीन screens (start, Terminal, SSH) से बना है, जो एक ही tab bar, एक ही tools panel और tool sheets का एक ही सेट साझा करती हैं। यह पेज start screen, local Terminal screen और local shell के हर tool को कवर करता है; SSH screen का अपना पेज है।
| Screen | वहाँ कैसे पहुँचें | वहाँ आप क्या कर सकते हैं |
|---|---|---|
| Start screen | सबसे पहले खुलती है। किसी session में Back दबाने पर यहीं लौटते हैं। | Local Shell, Quick Connect या Browse Hosts चुनें। ऊपर के chips से चलता हुआ session दोबारा खोलें। |
| Terminal (local shell) | Start screen पर Local Shell, या किसी local session का chip। | Tabs, split view, output में search, input bar, gestures और नीचे दिए सभी tools। |
| SSH screen | Start screen पर Quick Connect या Browse Hosts। | Remote tabs, जिनके अपने 32 tools हैं। SSH पेज पर समझाया गया है। |
| Docked tools panel | चौड़ी screen पर अपने-आप (660 dp या ज़्यादा, split view के बिना)। | Tool icons की एक पट्टी, जिसके नीचे खुला हुआ tool। Local shell पर 20 tools। |
| Tools menu | Tab bar में wrench बटन (More options), जब कोई panel docked न हो। | Local shell पर छह categories, Search action… और एक FREQUENT पंक्ति। किसी भी tool को full-screen sheet के रूप में खोलता है। |
| Snippets | Panel tool; menu → Snippets। | 98 built-in commands, आपके अपने commands, folders, Generate with AI। |
| Command History | Panel tool; menu → Session। | इस tab से भेजे गए commands को search करें, star करें, दोबारा चलाएँ और हटाएँ। |
| File Manager | Panel tool; menu → Linux Tools। | Folders browse करें, folder या file बनाएँ, file print करें, delete करें (पहले confirm करने को कहता है)। |
| Git Panel | Panel tool; menu → Linux Tools। | JGit के ज़रिए किसी repository का status, branches, log और actions। |
| Processes | Panel tool; menu → Linux Tools। | Processes की list देखें, filter और sort करें, और kill करें। |
| System Info | Panel tool; menu → Linux Tools। | OS, kernel, uptime, user और फ़ोन का model व Android version। |
| Disk Usage | Panel tool; menu → Linux Tools। | हर partition के लिए एक card, usage bar के साथ। |
| Network | Panel tool; menu → Linux Tools। | किसी target पर ping, nslookup, traceroute, curl, wget या dig चलाएँ। |
| Environment Variables | Panel tool; menu → Linux Tools। | Variables की list देखें, search करें, जोड़ें, edit करें और unset करें। |
| Alias Manager | Panel tool; menu → Session। | Aliases की list देखें, बनाएँ, चलाएँ और हटाएँ। |
| Background Jobs | Panel tool; menu → Session। | Jobs की list देखें, किसी एक को kill करें, किसी एक को foreground में लाएँ। |
| Quick Scripts (Pro) | Panel tool; menu → Automation। | Multi-line scripts सेव करें और उन्हें line by line चलाएँ। |
| Keyboard Macros (Pro) | Panel tool; menu → Automation। | Key sequences सेव करें और उन्हें session को भेजें। |
| Expect Rules (Pro) | Panel tool; menu → Automation। | Output में कोई pattern दिखने पर prompt का जवाब अपने-आप दें। |
| Recording | Panel tool; menu → Session → Start Recording। | Tab को asciinema .cast file के रूप में record करें। |
| Session Logs | Panel tool; menu → Settings। | Session को encrypted file में log करें, bookmark करें, comment जोड़ें और share करें। |
| Share your dev server | Panel tool; menu → Session। | आपके फ़ोन पर चल रहे dev server को एक अस्थायी public link दें। |
| Profiles | Panel tool; menu → Security। | Terminal profiles बनाएँ और launch करें (सीमाएँ देखें)। |
| Sync & Teams और Import / Export | Panel tools; menu → Settings। | Local panel में भी हैं। SSH पेज पर बताए गए हैं। |
| Explain with AI | Input bar में sparkle बटन, सिर्फ़ तब जब output किसी failure जैसा दिखे। | आख़िरी 40 lines का आसान भाषा में explanation पाएँ। |
| Copy to clipboard? | अपने-आप दिखता है जब कोई program आपका clipboard माँगता है (OSC 52)। | Copy, Ignore, या session के बाकी समय के लिए अनुमति दें। |
| Command reads credentials and sends data out | Input bar में टाइप किया ऐसा कोई command चलने से पहले दिखता है। | पढ़ें कि वह किसे छूता है, फिर Run anyway करें या रद्द करें। |
Start screen
Start screen इस module का होम है। इसमें शीर्षक Terminal और यह पंक्ति दिखती है: “Local shell, remote SSH, and Linux tools in one place”।
Local Shell
Terminal screen में इसी फ़ोन पर एक shell खोलता है। नाम के नीचे की status line में Busybox tools ready लिखा आता है जब BusyBox link हो चुका हो, या Basic shell जब सिर्फ़ Android का अपना shell उपलब्ध हो।
Quick Connect और Browse Hosts
Quick Connect या Hosts sheet के साथ SSH screen खोलते हैं। SSH पेज पर समझाया गया है।
खुले हुए sessions
Cards के ऊपर के chips उन sessions की list दिखाते हैं जो अभी चल रहे हैं, ताकि आप किसी में भी वापस जा सकें।
संकरी screen पर cards एक column में एक के नीचे एक आते हैं; चौड़ी screen पर शीर्षक बाईं ओर और cards दाईं ओर रहते हैं। यहाँ Back दबाने पर आप Terminal से बाहर निकल जाते हैं।
आप क्या कर सकते हैं
- Local Shell पर एक टैप से local shell शुरू करें।
- Chips से कोई भी चलता हुआ session, local या remote, दोबारा खोलें।
- Quick Connect या Browse Hosts से SSH screen पर जाएँ।
आप क्या नहीं कर सकते, और क्यों
- नई install पर BusyBox status पर भरोसा करना: यह screen बनते समय एक बार पढ़ा जाता है, और BusyBox पहली बार shell खोलने पर link होता है, इसलिए Terminal दोबारा खोलने तक card पर Basic shell दिख सकता है।अभी नहीं
Local shell
Local shell आपके फ़ोन पर चलने वाला असली process है, उसकी नक़ल (emulation) नहीं।
- Shell: BusyBox v1.34.1 का
ash, जो ऐप के अंदर ही आता है और native pseudo-terminal पर शुरू होता है (TERM=xterm-256color, screen के साथ resize होता है)। BusyBox उपलब्ध न हो तो यह Android के अपनेshपर लौट जाता है। - Applets: BusyBox binary 373 applets export करता है। पहली बार shell खोलने पर PocketCode उन सभी को link करता है, जिनमें
awk,vi,sed,find,tar,gzip,unzip,wget,nc,ping,nslookup,traceroute,ifconfig,ip,netstat,topऔरlessशामिल हैं। यह चरण विफल हो जाए तो 70 applets की एक core list link होती है। ऐप update के बाद अगली बार shell खोलने पर links दोबारा ठीक किए जाते हैं। - Node: जब build में आपके डिवाइस के architecture (arm64-v8a और x86_64) के लिए
nodeशामिल हो, तब वह shell में link होता है,NODE_OPTIONS=--no-addonsके साथ। npm शामिल नहीं है। - Home:
~आपका projects folder है।ls,grepऔरdiffरंगीन aliases हैं औरllका मतलबls -laहै (PocketCode हर start पर shell की.ashrcजाँचता है और अलग होने पर उसे बहाल कर देता है)। - Database: जब तक local PostgreSQL engine चल रहा है,
DATABASE_URLऔरPG*variables सिर्फ़ local shell में सेट रहते हैं, SSH sessions में कभी नहीं। - Output: Output lines की एक list है (हर tab में आख़िरी 10,000)। रंग और styles बनते हैं (16, 256 और RGB रंग, bold, dim, italic, underline), carriage returns progress bars को समेट देते हैं, और backspace व tab stops काम करते हैं। Cursor movement, screen clearing, mouse tracking और दूसरी control sequences छोड़ दी जाती हैं।


यहाँ क्या नहीं है, और क्यों
- Package manager:
apt,dpkgयाpkgनहीं है। ऐप packages install नहीं करता।Google Play git। Git Panel (यह JGit से बात करता है) या editor के Source Control का इस्तेमाल करें।जानबूझकरpython,docker,curl,ssh,scp,zipऔरnano। ये BusyBox build में नहीं हैं और ऐप executables download नहीं करता। किसी दूसरी machine के लिए SSH screen इस्तेमाल करें।Google Play- Root,
chroot/prootया कोई Linux distribution: shell के पास ऐप का अपना user है, इससे ज़्यादा कुछ नहीं।डिवाइस - पूरी screen redraw करने वाले programs, जैसे
vi,topयाless: ये screen की तरह नहीं दिखते क्योंकि cursor movement छोड़ दी जाती है। Processes मेंtop -n 1एक chip के रूप में दिया गया है।जानबूझकर
Sessions, tabs और gestures
हर tab एक session है। Tab bar local और SSH दोनों screens साझा करती हैं, लेकिन हर screen सिर्फ़ अपनी तरह के tabs दिखाती है।
Tabs, split view और search
- + इसी screen पर एक और local shell खोलता है (SSH screen पर यह Hosts sheet खोलता है)।
- किसी tab को देर तक दबाएँ तो Rename और Close other tabs मिलते हैं (remote tab में Duplicate session भी मिलता है)। Local tab बंद करना तुरंत होता है; बाकी tabs बंद करने से पहले पूछा जाता है।
- हर tab में एक status dot होता है (local tab हमेशा हरा होता है), और जिस tab में आपके कहीं और रहते समय नया output आया हो उस पर एक अतिरिक्त dot दिखता है। Logging या recording चालू होने पर bar में LOG और REC chips दिखते हैं।
- Split बटन Split Horizontal, Split Vertical, No Split के बीच घूमता है। दूसरा pane अगला tab दिखाता है, active pane पर accent border होता है और किसी pane को टैप करने से वह focus में आ जाता है। Split view Pro है।
- Magnifier (Search Output) Search in output… खोलता है, जिसमें count (“N of M”) और previous व next बटन होते हैं। यह line में कहीं भी text मिलाता है, upper/lower case की परवाह किए बिना, और हर split pane में अलग से search होता है।
- Broadcast (आप जो टाइप करें उसे हर connected tab को भेजना) और Multiplexed Shell remote tabs के हैं। इन्हें SSH पेज पर समझाया गया है।
Gestures और keys
| Output पर double-tap | चल रहे command को रोकने के लिए Ctrl+C भेजता है। |
| Output पर swipe | Arrow keys भेजता है: बाएँ और दाएँ cursor हिलाते हैं, ऊपर और नीचे shell history में घूमते हैं। |
| Output पर pinch | Text size बदलता है, 8 से 24 तक। Size याद रखा जाता है। |
| Output पर long-press | एक menu, जिसमें Copy line, Copy Output और Clear Terminal हैं। |
| Link पर टैप | Web address browser में खुलता है। |
| Volume buttons | जब तक Volume Keys ON सेट है, ये ऊपर और नीचे के arrows की तरह काम करते हैं। यह डिफ़ॉल्ट रूप से बंद है और इसका switch tools menu में Settings के नीचे है। |
Input bar
- Send के साथ एक-line का field। यहाँ से आप जो भी भेजते हैं वह इस tab की command history में जुड़ जाता है।
- टाइप करते समय पाँच तक suggestions दिखती हैं: जाने-पहचाने commands, इस tab की history के commands, और
/या~से शुरू होने वाले paths (सिर्फ़ local shell, एक level गहराई तक)। - Previous command इस tab की history में पीछे ले जाता है।
- Attach file एक file चुनता है। Local shell में वह आपके projects folder में copy हो जाती है, नाम पहले से मौजूद होने पर
(1),(2)जुड़ जाता है, और उसका path field में डाल दिया जाता है। Remote tab में वह/tmpमें upload होती है। - Explain with AI तब दिखता है जब सबसे ताज़ा output failure जैसा लगे (नीचे देखें)।
Session screen की सीमाएँ
- Extra keys की एक पंक्ति (ESC, TAB, Ctrl, F1 से F12)। आप सिर्फ़ Ctrl+C (double-tap), arrows (swipe) और जो कुछ कोई macro भेजे, वही भेज सकते हैं।अभी नहीं
- Output से file खोलना: file paths और
file:line:columnreferences highlight होते हैं लेकिन टैप पर कुछ नहीं होता। सिर्फ़ web addresses खुलते हैं।अभी नहीं - Free में उसी screen पर दूसरा session, और split view।Pro
Session जो prompts दिखा सकता है
Copy to clipboard? (OSC 52)
अपने-आप दिखता है जब session का कोई program आपके clipboard पर text रखने को कहता है।
कोई command, script या remote server terminal से text copy करने को कह सकता है। PocketCode पहले आपसे पूछता है, क्योंकि terminal में paste किया गया text commands चला सकता है।
आप क्या कर सकते हैं
- “The session wants to copy N characters to your clipboard” पढ़ें, साथ में text का preview।
- Copy या Ignore टैप करें।
- Allow for the rest of this session पर निशान लगाएँ। यह choice memory में रहती है और session ख़त्म होने पर भूल जाती है।
आप क्या नहीं कर सकते, और क्यों
- बिना पूछे किसी session को आपके clipboard में लिखने देना।जानबूझकर
Command reads credentials and sends data out
तब दिखता है जब input bar से भेजा गया कोई command किसी credentials store को छूता है और साथ ही कहीं data भी भेजता है।
Dialog बताता है कि command क्या छूता है और कहाँ जाता है। यह चेतावनी है, रुकावट नहीं: यह tutorial से copy किए गए या AI के सुझाए commands के लिए है, जिनका दूसरा असर आसानी से छूट जाता है।
आप क्या कर सकते हैं
- Command जो दो काम करता है उन्हें पढ़ें।
- उसे भेजने के लिए Run anyway टैप करें, या रद्द करें।
आप क्या नहीं कर सकते, और क्यों
- इसे command रोकने वाला बनाना, या input bar से न गुज़रने वाली किसी भी चीज़ को पकड़वाना।जानबूझकर
Tools panel
Commands टाइप करने के अलावा आप जो भी करते हैं, उसका ज़्यादातर हिस्सा tools में होता है। Screen के हिसाब से ये दो में से किसी एक तरह दिखते हैं।
Local shell के 20 tools, panel के क्रम में
Snippets, Command History, File Manager, Git Panel, Processes, System Info, Disk Usage, Network, Environment Variables, Alias Manager, Background Jobs, Quick Scripts, Keyboard Macros, Expect Rules, Recording, Session Logs, Share your dev server, Profiles, Sync & Teams और Import / Export। Remote tab में 12 और जुड़ते हैं, कुल 32 (SSH पेज देखें)।
Docked panel
चौड़ी screen (660 dp या ज़्यादा) पर और split view के बिना, 380 dp का panel दाईं ओर dock हो जाता है: icons की एक पट्टी, जिसके नीचे चुना हुआ tool। हमेशा एक tool चुना रहता है (पहली बार Snippets) और panel आख़िरी वाला याद रखता है। Tab bar का chevron (Collapse panel) इसे समेट देता है।
Tools menu
फ़ोन पर, या जब split view चालू हो, wrench बटन (More options) एक menu खोलता है, जिसमें search field (Search action…), एक FREQUENT पंक्ति (कोई action दो बार इस्तेमाल होने के बाद वहाँ आता है, ज़्यादा से ज़्यादा छह) और ये categories होती हैं:
| Category | Local shell पर actions |
|---|---|
| Session | Share your dev server, split layout, Command History, Alias Manager, Background Jobs, Copy Output, Clear Terminal, Start Recording |
| Linux Tools | File Manager, Processes, Network, Disk Usage, System Info, Environment Variables, Git Panel |
| Snippets | All Snippets और आठ category shortcuts (System, Docker, Git, Database, Security, Monitoring, Networking, Files & Text) |
| Automation | Keyboard Macros, Quick Scripts, Expect Rules |
| Security | Profiles |
| Settings | Session Logs, Sync & Teams, Import / Export, Volume Keys ON / Volume Keys OFF |
SSH tab पर सातवीं category Connection होती है, और बाकी categories में ज़्यादा actions। Copy Output और Clear Terminal output के long-press menu में भी हैं।

- Panel docked होने पर चौड़े tablet पर Volume Keys ON/OFF तक पहुँचना: वहाँ tools menu बनता ही नहीं। (Split view शुरू करने पर wrench वापस आ जाता है।)डिवाइस
Linux tools
ये tools उन चीज़ों के shortcuts हैं जो आप वरना टाइप करते। इनमें दिखने वाली lists एक अलग, non-interactive shell से पढ़ी जाती हैं (हर read की सीमा 15 सेकंड और 512 KB है)। इनसे आप जो बदलते हैं (बनाना, हटाना, kill करना, export करना) वह आपके session में एक सामान्य command की तरह टाइप हो जाता है, इसलिए आप उसे output में भी देखते हैं।
File Manager
Panel tool File Manager; menu → Linux Tools।
ls -la पर बना एक folder browser।
आप क्या कर सकते हैं
- Folders खोलें और Parent से एक level ऊपर जाएँ।
- Folder बनाएँ (New folder,
mkdir -p) या खाली file (New file,touch)। - किसी file को टैप करें तो वह
catसे session में print हो जाती है। - किसी entry को उसके trash icon से delete करें। पहले Delete <name>? शीर्षक वाला Delete dialog पूछता है: file, या folder और उसके अंदर की सारी सामग्री, हमेशा के लिए हट जाती है, कोई trash नहीं और कोई undo नहीं। Delete confirm करता है; Cancel उसे रहने देता है।
- Session में लिखे
rm -rfमें path quotes में रहता है और special characters escape किए जाते हैं, इसलिए$(…)नाम की file नाम से delete होती है, कभी चलती नहीं। - Quick Commands chips इस्तेमाल करें:
du -sh *,find . -name '*.log'औरchmod +x।
आप क्या नहीं कर सकते, और क्यों
- अपने projects folder के बाहर browse करना: browser वहीं रुक जाता है, और ऐप के credentials रखने वाले folders कभी नहीं खुलते।जानबूझकर
- Delete को undo करना, या उसे trash में भेजना।जानबूझकर
ls -laजो print करता है उससे आगे owner, size या dates देखना।अभी नहीं
Git Panel
Panel tool Git Panel; menu → Linux Tools।
चार tabs वाला छोटा Git panel: Status, Branches, Log और Actions। Local shell पर यह JGit इस्तेमाल करता है (कोई git program नहीं है); SSH tab पर यह remote shell में git commands टाइप करता है। यह repository को File Manager के folder से ऊपर की ओर चलकर, या आपके projects folder से खोजता है।
आप क्या कर सकते हैं
- जहाँ आप हैं वहाँ Initialize repository, Add All और सब कुछ unstage करें।
- Commit message लिखें और Commit changes करें।
- Push, Pull, Fetch, Stash, Stash Pop।
- Branch बदलें या New branch से नई बनाएँ, और किसी file के बदलाव discard करें।
आप क्या नहीं कर सकते, और क्यों
- पूरा
git diffयाreset: local panel वे actions नहीं दिखाता जो JGit नहीं कर सकता। Panel का अपना footnote editor के Source Control की ओर इशारा करता है।जानबूझकर - यहाँ से किसी Git host में sign in करना: push और pull ऐप में कहीं और पहले से सेट credentials इस्तेमाल करते हैं, और failure होने पर उसका message sheet में दिखता है।जानबूझकर
- अपने projects folder के बाहर की repository पर काम करना।जानबूझकर
Processes
Panel tool Processes; menu → Linux Tools।
चल रहे processes, ps से पढ़े गए।
आप क्या कर सकते हैं
- PID, नाम, user, CPU %, MEM % और state देखें।
- नाम या PID से filter करें (Filter processes…)।
- CPU %, MEM % या PID के हिसाब से sort करें।
- किसी process को उसके kill icon से रोकें, जो session में
kill -9 <pid>टाइप कर देता है। top -n 1,ps aux --sort=-%mem | head -20औरuptimechips इस्तेमाल करें, और list refresh करें।
आप क्या नहीं कर सकते, और क्यों
- कोई दूसरा signal चुनना (यह हमेशा
-9होता है) या user के हिसाब से filter करना।अभी नहीं - Process tree दिखाना।अभी नहीं
System Info
Panel tool System Info; menu → Linux Tools।
Cards के तीन tabs: Overview (OS, kernel, uptime), Hardware (architecture, साथ में आपके फ़ोन का model, Android version और SDK level) और Environment (user और id)।
आप क्या कर सकते हैं
- Cards को refresh करें।
- Chips इस्तेमाल करें:
uname -a,uptime,whoami,free -hऔरenv | sortवही भेजते हैं जो उन पर लिखा है। cpuinfocat /proc/cpuinfoभेजता है, modelgetprop ro.product.modelभेजता है (न मिले तो DMI का product name), $PATHecho $PATHभेजता है और $SHELLecho $SHELLभेजता है।
आप क्या नहीं कर सकते, और क्यों
- Memory, CPU या host name को अलग cards के रूप में देखना।अभी नहीं
Disk Usage
Panel tool Disk Usage; menu → Linux Tools।
हर partition के लिए एक card, df -hP से, usage bar और Used, Free व Total sizes के साथ।
आप क्या कर सकते हैं
- Cards को refresh करें।
df -h,du -sh * | sort -rh | head -20औरfind / -size +100M 2>/dev/nullchips इस्तेमाल करें।
आप क्या नहीं कर सकते, और क्यों
- Inodes देखना, या
df -hPके columns से ज़्यादा कुछ देखना।अभी नहीं
Network
Panel tool Network; menu → Linux Tools।
इसे खोलने पर यह ifconfig (या ip addr) चलाता है और नतीजा दिखाता है। Output sheet में सादे monospace text के रूप में दिखता है, session में नहीं।
आप क्या कर सकते हैं
- कोई tool चुनें (5 packets वाला
ping,nslookup,traceroute, headers के लिएcurl, पहुँच जाँचने के लिएwget,dig), host, address या URL टाइप करें और Run टैप करें। ifconfig,netstat -tlnpऔरss -tulnchips इस्तेमाल करें।
आप क्या नहीं कर सकते, और क्यों
- Local shell पर
curlयाdigचलाना: BusyBox build में ये शामिल नहीं हैं, इसलिए ये not-found message पर ख़त्म होते हैं।Google Play - 15 सेकंड से ज़्यादा कुछ चलाना या 512 KB से ज़्यादा print करना।जानबूझकर
Environment Variables
Panel tool Environment Variables; menu → Linux Tools।
Variables, जो env से list होते हैं और search किए जा सकते हैं।
आप क्या कर सकते हैं
- New Variable से एक जोड़ें (नाम किसी letter या underscore से शुरू होना चाहिए और उसमें सिर्फ़ letters, digits और underscores हों)। यह
export NAME='value'के रूप में भेजा जाता है। - Edit Variable से एक edit करें, या उसे delete करें, जिससे
unsetभेजा जाता है।
आप क्या नहीं कर सकते, और क्यों
- यह पक्का मानना कि list आपके खुले session से मेल खाती है: इसे एक अलग shell पढ़ता है, इसलिए हाथ से
exportकिया गया variable शायद न दिखे।जानबूझकर
Alias Manager
Panel tool Alias Manager; menu → Session।
Session के aliases, alias से list किए गए।
आप क्या कर सकते हैं
- New Alias से एक बनाएँ (नाम में letters, digits, underscore और hyphen चलते हैं)। यह
alias name='command'के रूप में भेजा जाता है। - किसी alias को टैप करके चलाएँ, या उसे delete करें (
unalias)। - चार Suggested aliases (
ll,cls,gs,..) में से किसी एक को टैप करें।gsका मतलबgit statusहै, जिसे local shell नहीं चला सकता।
आप क्या नहीं कर सकते, और क्यों
- Shell बंद होने के बाद aliases बचाए रखना: PocketCode हर shell start पर
.ashrcजाँचता है और अगर वह किसी तय template से अलग हो तो उसे दोबारा लिख देता है, इसलिए उसमें किए बदलाव नहीं बचते।जानबूझकर - यह पक्का मानना कि list आपके खुले session से मेल खाती है: इसे एक अलग shell पढ़ता है।जानबूझकर
Background Jobs
Panel tool Background Jobs; menu → Session।
Jobs, जो jobs -l से list होते हैं। जब कोई job न हो तो sheet में “No background jobs” और “Use command & to run in background” लिखा आता है।
आप क्या कर सकते हैं
- किसी job को kill करें (
kill <pid>; 1 या उससे कम pid, या ऐप का अपना pid, अस्वीकार कर दिया जाता है)। - किसी job को foreground में लाएँ (
fg %N)।
आप क्या नहीं कर सकते, और क्यों
- उस shell के jobs देखना जिसमें आप टाइप कर रहे हैं: list एक अलग shell से आती है, इसलिए आपने अपने tab में
&से जो jobs शुरू किए वे आम तौर पर नहीं दिखते।जानबूझकर
Snippets और history
दोबारा इस्तेमाल होने वाले commands, और वे commands जो आप पहले चला चुके हैं।
Snippets
Panel tool Snippets (जिसके साथ panel खुलता है); menu → Snippets।
14 categories में 98 तैयार commands, जो terminal के पहली बार चलने पर बनाए जाते हैं, और साथ में आपके अपने। Local shell पर Packages के छह snippets छिपे रहते हैं, इसलिए 92 दिखते हैं।
आप क्या कर सकते हैं
- Category chip (System, Docker, Git, Nginx, Node/PM2, Database, Security, Deploy/CI-CD, Monitoring, Network, Packages (केवल SSH tabs पर), Files, Text, Users, Custom) और folder से filter करें।
- किसी snippet को टैप करें तो उसका command input bar में आ जाता है। जब तक आप उसे भेजते नहीं, वह चलता नहीं।
- New Snippet से एक बनाएँ: नाम, command, category, description और folder। Generate with AI “find files larger than 100MB” जैसे एक वाक्य को snippet बना देता है। इसके लिए एक connected AI provider चाहिए और पहली बार यह सहमति माँगता है।
- Snippet को folder में ले जाएँ, folders बनाएँ या हटाएँ, और snippets delete करें।
- Placeholders इस्तेमाल करें:
${DATE}(yyyy-MM-dd),${DATETIME}(yyyy-MM-dd_HH:mm:ss) और${TIMESTAMP}(milliseconds) snippet टैप करते समय भर जाते हैं।${HOST},${USER}और${PORT}किसी saved host से खोले गए tab पर भरते हैं। बाकी सब जैसा लिखा है वैसा ही रहता है, सिवाय saved host के group या profile के environment variables के। - Free पर अपने 10 snippets तक save करना: 98 built-in सीमा में नहीं गिने जाते।
आप क्या नहीं कर सकते, और क्यों
- Free पर अपने 10 से ज़्यादा snippets रखना। 98 built-in गिने नहीं जाते, इसलिए + बटन (जिस पर PRO निशान है) तभी Terminal Pro खोलता है जब आपके अपने 10 snippets हो चुके हों। Snippets लाने वाला import उसी सीमा पर रुकता है।Pro
- Local shell पर Packages snippets देखना: उन्हें चलाने के लिए कोई package manager नहीं है।Google Play
- Local tab पर
${HOST},${USER}या${PORT}भरवाना: host न हो तो वे वैसे ही रहते हैं जैसे टाइप किए गए थे।जानबूझकर
Command History
Panel tool Command History; menu → Session।
इस tab के input bar से भेजे गए commands।
आप क्या कर सकते हैं
- Search commands… से search करें।
- किसी command को star करें ताकि वह Favorites में रहे।
- किसी command को दोबारा चलाएँ, या उसे delete करें।
- Clear टैप करें। Dialog में लिखा आता है “This will remove all commands from this tab's history. Favorites will be kept.”
आप क्या नहीं कर सकते, और क्यों
- Tab बंद होने के बाद history बचाए रखना, या उसे tabs के बीच साझा करना: यह हर tab के आख़िरी 100 commands रखती है और memory में रहती है।जानबूझकर
- वह देखना जो आपने सीधे shell में टाइप किया: सिर्फ़ input bar से भेजे गए commands दर्ज होते हैं।जानबूझकर
Automation (Pro)
Quick Scripts, Keyboard Macros और Expect Rules Pro हैं: रोक उन्हें सेव करने पर है, और Quick Script चलाने पर। Free पर sheets खुलती हैं, उन पर PRO निशान दिखता है, और सेव करने की कोशिश पर Terminal Pro आता है। Paywall इन्हें Advanced automation (Expect rules, Watchdog, Macros) के रूप में list करता है।
Quick Scripts
Panel tool Quick Scripts; menu → Automation।
Multi-line scripts जिन्हें आप एक टैप से session को भेजते हैं।
आप क्या कर सकते हैं
- New Script से script बनाएँ (नाम, description और script का text), उन्हें search, edit और delete करें।
- Run टैप करें: हर line session को भेजी जाती है, lines के बीच 150 ms के अंतर के साथ। खाली lines और
#से शुरू होने वाली lines छोड़ दी जाती हैं।
आप क्या नहीं कर सकते, और क्यों
- Pro के बिना script सेव करना या चलाना।Pro
- Script को बीच में रोकना, या scripts को category से छाँटना: कोई stop बटन नहीं है और form category नहीं पूछता।अभी नहीं
Keyboard Macros
Panel tool Keyboard Macros; menu → Automation।
Keys का एक नामित क्रम, जो session को raw bytes के रूप में भेजा जाता है।
आप क्या कर सकते हैं
- Add macro: एक नाम, Key sequence और एक वैकल्पिक description।
- किसी macro को टैप करके भेजें, या उसे delete करें।
- Sequence में ये escapes इस्तेमाल करें, और सिर्फ़ यही:
\n(Enter),\t(Tab),\x1b(ESC),\x03(Ctrl+C),\x04(Ctrl+D) और\x1a(Ctrl+Z)।
आप क्या नहीं कर सकते, और क्यों
- Pro के बिना macro बनाना।Pro
- Macro बटन input bar पर रखना: macros सिर्फ़ इसी sheet से चलते हैं।अभी नहीं
Expect Rules
Panel tool Expect Rules; menu → Automation।
Output में कोई pattern दिखने पर PocketCode आपके लिए जवाब टाइप कर देता है। Rules हर खुले session के output पर line by line जाँची जाती हैं, और किसी line पर सिर्फ़ पहली मेल खाने वाली rule जवाब देती है।
आप क्या कर सकते हैं
- Add rule: एक Pattern to detect, Use regex (बंद होने का मतलब है कि line में वह text हो, upper/lower case की परवाह किए बिना; चालू होने का मतलब है कि regular expression line में कहीं भी मिले), एक Automatic response और एक description।
- किसी rule को चालू या बंद करें, या उसे delete करें।
आप क्या नहीं कर सकते, और क्यों
- Pro के बिना rule बनाना।Pro
- Response में line break जोड़ना: PocketCode उसके बाद पहले से Enter दबाता है (sheet में लिखा है “Response will be sent automatically + Enter”), इसलिए
\nउसे दो बार भेज देगा।जानबूझकर
Profiles
Profiles terminal का सबसे कम पूरा हिस्सा हैं। इन्हें यहाँ इसलिए list किया गया है क्योंकि sheet panel और menu में मौजूद है।
Panel tool Profiles; menu → Security।
Terminal Profiles की एक list। पाँच ऐप के साथ आते हैं: Default, Bash, Dev (Node), Docker और Python Env।
आप क्या कर सकते हैं
- Profiles बनाएँ, edit करें, duplicate करें और delete करें, और एक को default चिह्नित करें।
- नाम, shell type, shell path, working directory, theme, font size, startup commands, environment variables, scrollback, bell, icon और color भरें।
- Tab खोलने और profile के startup commands भेजने के लिए Launch टैप करें।
आप क्या नहीं कर सकते, और क्यों
- Profile को बचाकर रखना: profiles storage में नहीं लिखे जाते, इसलिए ऐप restart के बाद उन पर भरोसा न करें।अभी नहीं
- Shell type, theme, font, environment या working directory का लागू होना: Launch tab खोलने और startup commands भेजने से थोड़ा ही ज़्यादा करता है।अभी नहीं
- किसी SSH host के लिए profile बनाना: form में host picker नहीं है।अभी नहीं
- Factory profiles के commands चलाना: Docker और Python local shell में नहीं हैं।Google Play
Recording और logs
Session ने जो print किया उसे रखने के दो तरीके। दोनों Free हैं।
Recording
Panel tool Recording; menu → Session → Start Recording।
“Saves the session as an asciinema .cast file you can replay later.” File asciicast v2 है, उसका नाम session_<name>_<date>.cast होता है, और वह encrypted नहीं है।
आप क्या कर सकते हैं
- Focus वाले tab पर Start Recording और Stop Recording। चलते समय REC chip दिखता है।
- अपनी files Saved recordings के नीचे देखें।
- Recording Session Logs में भी मिलती है: वह उसी store में सेव होती है, इसलिए वहाँ आप उसे bookmark और share कर सकते हैं, और वह 100 की सीमा में गिनी जाती है।
आप क्या नहीं कर सकते, और क्यों
- ऐप के अंदर recording replay करना: वह सिर्फ़ list होती है। उसे कहीं और asciinema से replay करें।अभी नहीं
Session Logs
Panel tool Session Logs; menu → Settings।
Session ने जो कुछ print किया उसका सादा-text log, जो डिवाइस पर encrypted रखा जाता है (AES-256-GCM, Android Keystore में रखी key के साथ)। सादा text सिर्फ़ logging के दौरान रहता है; रोकने पर file seal हो जाती है।
आप क्या कर सकते हैं
- Start Logging और Stop Logging। चलते समय LOG chip दिखता है।
- किसी log पर Bookmark (एक star) इस्तेमाल करें, Comment जोड़ें (“What happened, why it matters”) और Bookmarked only दिखाएँ।
- किसी log को Share करें: वह एक अस्थायी copy में decrypt होकर system share sheet को दी जाती है।
आप क्या नहीं कर सकते, और क्यों
- 100 से ज़्यादा logs रखना: सबसे पुराने हटा दिए जाते हैं, सिवाय उनके जिन्हें आपने bookmark किया है।जानबूझकर
- Logs को text या date से search करना: आपको सिर्फ़ हर log की date और bookmarked filter दिखता है।अभी नहीं
अपना dev server शेयर करें
आपके फ़ोन पर चल रहे dev server का एक public link।
Panel tool Share your dev server; menu → Session।
जब फ़ोन पर dev server चल रहा हो (किसी project से शुरू किया हुआ), तब sheet में लिखा आता है “Give a public address to the server running on this phone, on port N”। Link localhost.run तक SSH remote forward के ज़रिए जाता है: न कोई account, न कोई अतिरिक्त software।
आप क्या कर सकते हैं
- Create link टैप करें, फिर Copy link। विफल हो तो Try again।
- जब चाहें Stop sharing टैप करें। Dev server रुकने पर link अपने-आप भी बंद हो जाता है।
आप क्या नहीं कर सकते, और क्यों
- बिना server के share करना: sheet में लिखा आता है “No dev server is running. Open a project first.”जानबूझकर
- वही address रखना या अपना domain इस्तेमाल करना: link अस्थायी है (“it changes each time and ends when you stop sharing”) और sharing चालू रहने तक link रखने वाला कोई भी व्यक्ति server तक पहुँच सकता है।थर्ड पार्टी
- Offline रहते हुए share करना।नेटवर्क ज़रूरी
AI से समझें
Command fail होने पर आसान भाषा में मदद।
Input bar में sparkle बटन (Explain with AI)। यह सिर्फ़ तब दिखता है जब सबसे ताज़ा output failure जैसा लगे।
PocketCode tab की आख़िरी 40 lines (ज़्यादा से ज़्यादा 8 KB) आपके connected AI provider को भेजता है, पहले secrets mask करके, और जवाब AI explanation में दिखाता है: क्या fail हुआ, क्यों, और आगे क्या चलाना है। यह 60 सेकंड तक इंतज़ार करता है। आप अपना provider इस्तेमाल करते हैं, इसलिए PocketCode पर इसकी कोई लागत नहीं आती।
आप क्या कर सकते हैं
- Explanation पढ़ें और Copy the explanation टैप करें।
- शीर्षक के नीचे की line पढ़ें: “The last 40 lines are sent to your connected AI provider, with secrets redacted.”
आप क्या नहीं कर सकते, और क्यों
- Settings में AI provider connect किए बिना इसे इस्तेमाल करना: sheet में लिखा आता है “No explanation came back. Check that you have an AI provider connected in Settings and try again.”नेटवर्क ज़रूरी
- AI जो command सुझाए उसे बटन से चलाना: sheet उसे सिर्फ़ दिखाती और copy करती है। Text सेव नहीं होता।जानबूझकर
Appearance
रंग और fonts Terminal के अंदर सेट नहीं होते।
- Settings में, Appearance के नीचे, Terminal appearance खोलें: theme, font, text size, wallpaper और background opacity।
- Terminal themes 11 हैं, साथ में Same as app, जो ऐप के साथ चलता है (picker में कुल 12 कार्ड)। पाँच free हैं (Same as app, PocketCode Dark, PocketCode Light, Dark और Light) और सात Pro हैं (Dracula, Solarized Dark, Monokai, One Dark, Catppuccin Mocha, Gruvbox Dark और Nord)। Marketplace से install किए गए terminal themes भी Pro हैं।
- Output पर pinch करने से भी text size बदलता है (8 से 24)।
SSH, SFTP और remote tools
SSH screen, SFTP और हर remote चीज़ का अपना पेज है। ये वही tab bar, panel और menu साझा करते हैं जो आपने अभी पढ़ा, 12 और tools के साथ (कुल 32)।
- यह कहाँ है: hosts और groups, Quick Connect, host keys और keyboard-interactive login, SSH keys (डिवाइस से बँधी keys सहित), SFTP, port forwarding, Watchdog, Webhooks, package manager, cloud providers, serial और remote desktop।
- इसी panel में भी: Sync & Teams और Import / Export local tool list में भी दिखते हैं। इन्हें SSH पेज पर बताया गया है। Sync & Teams में Team Room host करने, खोजने या join करने पर Android 13 या उसके बाद Android local-network (nearby devices) permission माँगता है, और उस permission की व्याख्या तथा connection errors ऐप की भाषा में दिखते हैं।
- Remote tabs पर Pro: दूसरा saved host, दूसरा port forward, Broadcast, Watchdog और Webhooks। इनकी सीमाएँ SSH पेज पर हैं।
Free और Pro
Local terminal में किन चीज़ों पर रोक है। बाकी सब कुछ Free है।
| सुविधा | Free | Pro |
|---|---|---|
| एक साथ active sessions, हर screen पर (Terminal और SSH की अपनी-अपनी जगह) | 1 | कोई सीमा नहीं |
| Split view | शामिल नहीं | शामिल |
| Keyboard Macros, Quick Scripts और Expect Rules बनाना (और Quick Scripts चलाना) | शामिल नहीं | शामिल |
| आपके अपने snippets | 10 तक; 98 built-in गिने नहीं जाते। 10 के बाद एक जोड़ने या import करने पर Terminal Pro खुलता है | कोई सीमा नहीं |
| Terminal themes | 4 built-in, साथ में Same as app | सभी 11, साथ में Same as app और Marketplace के themes |
| Terminal fonts | सिर्फ़ Default | Default और 7 और |
| Local shell, Linux tools, Git Panel, history, aliases, environment, recording, session logs, Share your dev server, Explain with AI, Profiles | शामिल | शामिल |
प्राइवेसी और सुरक्षा
- Local shell PocketCode की अपनी permissions से चलता है और sandbox नहीं है। पहली बार इस्तेमाल करने पर एक notice (About this terminal) यही बताता है।
- आपके projects
~में हैं। Tool sheets उसी folder के अंदर रहती हैं और ऐप के credentials रखने वाले folders कभी नहीं खोलतीं। - Session logs डिवाइस पर AES-256-GCM और Keystore key से encrypted रहते हैं। Recordings सादी
.castfiles हैं। किसी log को share करने पर वह एक अस्थायी copy में decrypt होता है। - Command history memory में रहती है, हर tab के आख़िरी 100 commands, और disk पर नहीं लिखी जाती।
- Input bar से भेजा गया जो command credentials store पढ़ता है और साथ ही data बाहर भी भेजता है, वह चलने से पहले चेतावनी देता है।
- कोई program आपकी confirmation के बिना आपके clipboard में नहीं लिख सकता (OSC 52)।
- Local PostgreSQL engine के
DATABASE_URLऔरPG*variables सिर्फ़ local shell में सेट होते हैं, और सिर्फ़ तब तक जब तक engine चल रहा हो। ये SSH sessions को कभी नहीं भेजे जाते। - जानबूझकर डिवाइस से बाहर क्या जाता है: Explain with AI आख़िरी 40 lines, secrets mask करके और एक बार की सहमति के बाद, आपके connect किए AI provider को भेजता है। Snippets में Generate with AI आपका वाक्य उसी provider को भेजता है। Share your dev server sharing चालू रहने तक localhost.run से होकर जाता है।
सीमाएँ
Local terminal की मुख्य सीमाएँ, हर एक अपने कारण के साथ। विस्तार ऊपर के sections में है।
- जो programs screen redraw करते हैं (
vi,top,less) वे screen की तरह नहीं दिखते।जानबूझकर - Shell में कोई package manager,
git,python,docker,curl,sshयाzipनहीं है।Google Play - न root है, न कोई Linux distribution: shell के पास ऐप का अपना user है।डिवाइस
- PocketCode 64-bit devices (arm64-v8a और x86_64) पर Android 9 या उससे नए version के साथ चलता है। 32-bit build नहीं है।डिवाइस
- Free पर हर screen पर एक समय में एक active session, और कोई split view, macros, scripts या expect rules नहीं।Pro
- Extra keys की कोई पंक्ति (ESC, TAB, Ctrl, F1 से F12) नहीं है, और output में file paths खुलते नहीं।अभी नहीं
- Profiles सेव नहीं होते और उनके ज़्यादातर fields लागू नहीं होते; recordings ऐप में replay नहीं की जा सकतीं।अभी नहीं
- Environment, alias और job lists एक अलग shell पढ़ता है, आपका खुला session नहीं।जानबूझकर
- Panel docked होने पर चौड़े tablet पर tools menu (और उसका Volume Keys switch) नहीं दिखता।डिवाइस
- Share your dev server का link अस्थायी है और उसे connection चाहिए।थर्ड पार्टी
आम समस्याएँ
Basic shell
Local Shell card पर Basic shell तब लिखा आता है जब उसे BusyBox का ash अभी नहीं मिला। BusyBox पहली बार shell खोलने पर link होता है, और ऐप update के बाद फिर से, इसलिए local shell एक बार खोलें और लौट आएँ: अब उस पर Busybox tools ready लिखा आना चाहिए। तब तक आपके पास Android का अपना sh है, जिसमें awk और tar जैसे applets नहीं हैं।
Terminal Pro
आपने कुछ ऐसा माँगा जो Free में शामिल नहीं है: उसी screen पर दूसरा session, split view, Keyboard Macro, Quick Script या Expect Rule सेव करना, अपना 11वाँ snippet जोड़ना, या SSH पर दूसरा saved host या port forward जोड़ना। Continue with basic plan इस रोक को बंद करता है; Unlock Terminal Pro paywall खोलता है।
Snippets का + Terminal Pro खोलता है
आपके अपने 10 snippets हो चुके हैं, यानी Free की सीमा; 98 built-in गिने नहीं जाते। जगह बनाने के लिए एक delete करें, या Terminal Pro unlock करें। आप फिर भी किसी भी built-in snippet को टैप करके इस्तेमाल कर सकते हैं।
No Git repository here
Git Panel .git folder को File Manager के मौजूदा folder से ऊपर की ओर, या आपके projects folder से खोजता है। File Manager को अपने project folder में खोलें, या Initialize repository टैप करें।
No explanation came back. Check that you have an AI provider connected in Settings and try again.
Explain with AI को key या login वाला provider चाहिए। AI settings में एक connect करें और फिर कोशिश करें। यह 60 सेकंड बाद हार भी मान लेता है।
Couldn't generate a snippet — try rephrasing
Generate with AI एक वाक्य में एक अनुरोध की उम्मीद करता है और नाम, एक-line command और description के साथ जवाब देता है। बताएँ कि आप क्या करना चाहते हैं, वह command नहीं जो आपके मन में है।
No dev server is running. Open a project first.
Share your dev server वही dev server शेयर करता है जो आपके project ने शुरू किया है। पहले project से server शुरू करें; फिर sheet उसका port दिखाती है।
Command reads credentials and sends data out
जो command आप चलाने वाले हैं वह credentials store को छूता है और साथ ही network पर data भी भेजता है। अगर आपने उसे कहीं से copy किया है, तो Run anyway टैप करने से पहले उसे पढ़ लें।
Copy to clipboard?
Session के किसी program ने आपके clipboard पर text रखने को कहा। Copy तभी टैप करें जब आपने ही माँगा हो।
Open a shell or connect to a host to record
Recording focus वाले tab को record करती है। पहले local shell खोलें, फिर उसे शुरू करें।
Could not attach file / Could not prepare log for sharing
File session में copy नहीं हो सकी, या कोई log share के लिए decrypt नहीं हो सका। दोबारा कोशिश करें; अगर फिर भी विफल हो तो कोई दूसरी file चुनें, या log को रोककर फिर शुरू करें।
Explain with AI बटन नहीं है
यह बटन तभी दिखता है जब सबसे ताज़ा output failure जैसा लगे। जो command fail हुआ था उसे दोबारा चलाएँ, या आख़िरी failing output से explanation पढ़ें।
नए shell में मेरा alias या variable गायब है
Sheets से बनाए गए aliases और variables सिर्फ़ उसी session में रहते हैं; PocketCode हर start पर .ashrc बहाल कर देता है। बार-बार चलने वाले command को Quick Script (Pro) या snippet में रखें।