Projects और IDE workspace
Projects PocketCode का दूसरा page है। यह आपके projects की सूची दिखाता है और नए project चार तरीकों से जोड़ता है: New (15 templates), Import (एक ZIP), Open Folder (device के किसी folder की copy) और Clone (GitHub, GitLab या Bitbucket की repository)। हर card में Rename, Export, Publish, Delete और उस project का Git भी मिलता है। दाईं ओर दो page आगे IDE page है, जो आपके खुले tabs और active file का read-only preview रखता है। Free plan में आपका अपना एक project रह सकता है।
यह क्या है और इसे कैसे खोलें
PocketCode पाँच pages का है जिन पर आप swipe करते हैं: Home, Projects, Files, IDE (इसके header में Editor लिखा होता है) और AI Chat। नीचे की bar के page dots (landscape में side rail) बताते हैं कि आप कहाँ हैं। यह page Projects और IDE को कवर करता है; Files का अपना page है।
List से editor तक
- 1Projects में किसी project card पर tap करें। वह खुला हुआ project बन जाता है और app आपको Files पर ले जाता है।
- 2Files में किसी file पर tap करें। app आपको IDE page पर ले जाता है और file को एक tab के रूप में खोल देता है।
- 3IDE page पर preview (या Open in editor) पर tap करें, ताकि file को full-screen code editor में edit कर सकें।
आपके projects कहाँ रहते हैं
- हर project PocketCode की private storage में एक folder होता है (
files/projects/<name>)। folder का नाम ही project का नाम और उसकी id है। - इनमें से किसी के लिए storage permission नहीं चाहिए: Import, Open Folder और Export Android के अपने file pickers इस्तेमाल करते हैं।
- दूसरे apps और file managers इन folders को नहीं देख सकते, PocketCode के लिए Android का backup बंद है, और app uninstall करने पर ये delete हो जाते हैं। app के बाहर copy रखने के लिए Export इस्तेमाल करें।
- Projects cloud में sync नहीं होते। Cloud Sync settings और working data को कवर करता है; project का code आपके device से बाहर तभी जाता है जब आप उसे खुद push करें या export करें।
Screen map
इन दोनों pages की हर screen और sheet, और वहाँ कैसे पहुँचें:
| Screen | वहाँ कैसे पहुँचें | आप क्या कर सकते हैं |
|---|---|---|
| Projects (list) | app का दूसरा page | सभी projects देखें, refresh करने के लिए नीचे खींचें, किसी card पर tap करके उसे खोलें, और उसकी actions के लिए उसके chevron पर tap करें। |
| New project | New tile | project को नाम दें और 15 templates में से एक चुनें। |
| ZIP import करें | Import tile | कोई .zip चुनें और उसे नए project के रूप में unpack करें। |
| device का folder खोलें | Open Folder tile | device का कोई folder नए project में copy करें। |
| Clone | Clone tile | GitHub, GitLab या Bitbucket चुनें, फिर अपनी किसी repository को clone करें। |
| Unlimited Projects | Free plan पर दूसरा project जोड़ना | plans screen खोलें, या Not now से उसे बंद करें। |
| Expanded card | card का chevron | समय, size, branch और language bar; Pull, Push, Fetch, Commit; और chips Git, Rename, Export, Publish और Delete। |
| Git Settings | Git chip | tracking शुरू करें, remote link या create करें, upload और download, branches, history, tags और आपके commits पर दिखने वाला नाम। |
| Commit Changes | Commit button | files को stage और unstage करें, changes discard करें, message लिखें, amend करें, commit करें, commit और push करें। |
| Commit History | Git Settings → History | आखिरी 100 commits; revert, reset soft या hard, cherry-pick। |
| Tags | Git Settings → Tags | tags की list देखें, create, delete और push करें। |
| Publish to Remote | Publish chip | GitHub, GitLab या Bitbucket पर repository बनाएँ और उसे remote के रूप में link करें। |
| Rename, delete, export | expanded card के chips | duplicate check के साथ rename, हमेशा के लिए delete, और अपनी चुनी हुई जगह पर ZIP export। |
| IDE page | चौथा page, या Files में किसी file पर tap करना | tab strip, active file का read-only preview और Open in editor। |
| Open tabs | tab-limit notice में View tabs | खुले tabs को filter करें और उनके बीच jump करें, saved tabs बंद करें, कोई और file खोलें। |
| Example projects | पहली बार चलाने पर जुड़ते हैं | WebPortfolio और TaskCLI, आज़माने के लिए दो projects। |
Project list
Page हर project के लिए एक card दिखाता है, एक ही column में, और tablets पर side margins चौड़े होते हैं। list sorted नहीं है और उसमें search नहीं है: cards उसी क्रम में आते हैं जिसमें device का file system उन्हें लौटाता है।

Project card
Card में main language का icon (या folder), नाम, कुछ बताने लायक होने पर Git label, files की संख्या, main language और एक और चीज़ दिखती है: framework अगर पहचाना गया हो, वरना branch, वरना पिछले बदलाव के बाद बीता समय (19d, 5h, 12m, या 30 दिन बाद dd/MM तारीख; एक मिनट से कम होने पर Ahora लिखा आता है, हर language में)।
आप कर सकते हैं
- Project खोलने के लिए card पर tap करें। app आपको Files पर ले जाता है।
- Card को expand करने और उसकी actions तक पहुँचने के लिए chevron पर tap करें (अगला section)।
- List को refresh करने के लिए नीचे खींचें: files की गिनती, analysis और Git labels दोबारा निकाले जाते हैं।
- चल रहा clone देखें: सबसे ऊपर progress bar और Downloading from GitHub… वाला एक card आता है (GitLab और Bitbucket के लिए भी यही text है)।
- कोई project न हो तो page Let's start coding! दिखाता है, साथ में Create project और Import। loading fail होने पर Oops, something went wrong और Retry दिखता है।
आप नहीं कर सकते, और क्यों
- List को search, sort या filter करना। app के code में एक search box और All / Recent / Synced filters मौजूद हैं, पर वे screen से जुड़े नहीं हैं।अभी नहीं
- Project को duplicate करना। इसके बजाय ZIP export करके उसे import करें।जानबूझकर
- Delete किया हुआ project वापस पाना। कोई trash नहीं है और कोई restore screen नहीं है।जानबूझकर
Git labels
नाम के पास का label बताता है कि कोई Git project अपने remote के मुकाबले कहाँ है। सिर्फ चार हैं:
| Label | मतलब |
|---|---|
| Changes | Project का remote है और uncommitted changes हैं। यह बाकी labels से पहले दिखता है। |
| Push | आपके पास ऐसे commits हैं जो remote के पास नहीं हैं, या यह branch कभी push नहीं हुई। |
| Pull | Remote के पास ऐसे commits हैं जो आपके पास नहीं हैं। |
| Conflict | दोनों तरफ नए commits हैं: आपकी branch और remote अलग-अलग दिशा में बढ़ गए हैं। इसका मतलब यह नहीं कि files पहले से conflict में हैं। |
| (कोई label नहीं) | Remote के साथ up to date, सिर्फ इस device पर, या Git repository नहीं है। |
Automatic analysis
PocketCode card भरने के लिए हर project को scan करता है:
- Files: ऐसे नामों को छोड़कर गिनी जाती हैं जो dot से शुरू होते हैं (
.git,.gradle…)। - Language: files की संख्या के हिसाब से मुख्य language, इन 20 में से: Kotlin, Java, JavaScript, TypeScript, Python, Go, Swift, C, C++, C#, Ruby, Rust, Dart, PHP, R, Scala, Shell, HTML, CSS और SQL। Expanded card में top पाँच और उनके हिस्से की एक bar दिखती है।
- Framework, मिली हुई config files से: Android/Gradle, Next.js, Angular, Vue, Node.js, Flutter, Go Module, Python, Maven और Docker (सिर्फ
docker-compose.yml)। - पूरे project का Size, expanded card में।
- Rust (Cargo), Ruby (Gemfile), C और C++ (CMake, Make) और Dockerfile projects में कोई framework नहीं दिखता: आज यह जाँच उनसे कभी match नहीं होती।अभी नहीं
Card की actions
Card को expand करने के लिए उसके chevron पर tap करें। आपको पिछले बदलाव के बाद का समय, size, branch और, अगर project में पहचानी गई languages हैं, तो मुख्य पाँच languages और उनके प्रतिशत की bar दिखती है। अगर project का remote है, तो तीन chips आते हैं: Pull, Push और Fetch। अगर वह Git repository है, तो एक Commit button आता है (uncommitted changes होने पर ● के साथ)। आखिरी row में पाँच chips हैं: Git, Rename, Export, Publish और Delete। इनमें से किसी पर भी plan की सीमा नहीं है।
Rename
Rename मौजूदा नाम के साथ Rename project खोलता है। folder का नाम बदलता है, इसलिए project की id भी उसके साथ बदल जाती है।
आप कर सकते हैं
- नया नाम लिखें। जब तक field खाली है, बदली नहीं है या किसी दूसरे project में पहले से इस्तेमाल हो रही है, Rename disabled रहता है; आखिरी स्थिति में field “A project with this name already exists” कहती है।
- Example project का नाम बदलें: वह example ही रहता है और Free सीमा में फिर भी नहीं गिना जाता।
आप नहीं कर सकते, और क्यों
- नाम में
/ \ : * ? " < > |इस्तेमाल करना: app “El nombre contiene caracteres no válidos” जवाब देता है, हर language में स्पेनिश में।जानबूझकर
Delete
Delete Delete project खोलता है: “Are you sure you want to delete "<name>"? This action cannot be undone.” Delete और Cancel के साथ।
आप कर सकते हैं
- Project का folder device से हटाएँ। यह local है: यह किसी remote repository या online चीज़ को नहीं छूता।
- Example project delete करें। वह वापस नहीं आता।
आप नहीं कर सकते, और क्यों
- Delete को undo करना। कोई trash नहीं है और कोई restore screen नहीं है।जानबूझकर
Export
Export किसी project को app से बाहर ले जाने का तरीका है।
- 1Export पर tap करें। एक message कहता है “Exporting '<name>'…”।
- 2Android का save dialog खुलता है, जिसमें
<name>.zipसुझाया गया होता है। चुनें कि उसे कहाँ save करना है: picker जो भी जगह दिखाए, cloud drives समेत। - 3Copy खत्म होने पर आपको “Project saved” दिखता है। Dialog cancel करने पर कोई message नहीं आता और temporary file हटा दी जाती है।
आप कर सकते हैं
- Project की सभी files वाला ZIP पाएँ,
.gitऔर.pocketcodefolders समेत। खाली folders नहीं जोड़े जाते। - इसे backup की तरह या project को कहीं और ले जाने के लिए इस्तेमाल करें: Import इसे वापस पढ़ लेता है।
आप नहीं कर सकते, और क्यों
- कुछ files छोड़ना (
node_modules,.git…) या project का सिर्फ एक हिस्सा export करना।जानबूझकर - Share sheet इस्तेमाल करना या save dialog को छोड़ना। app जानबूझकर पूछता है कि कहाँ save करना है, ताकि backup वहीं पहुँचे जहाँ आप तय करें।जानबूझकर
Publish
Publish Publish to Remote खोलता है, ताकि project को GitHub, GitLab या Bitbucket पर रखा जा सके।
- 1Select a service के नीचे अपनी connected services में से एक पर tap करें। सिर्फ वही services दिखती हैं जिनमें repositories हैं।
- 2Repository name लिखें (यह शुरू में project का नाम होता है) और Public या Private चुनें। sheet Public पर शुरू होती है।
- 3Create & Link पर tap करें।
आप कर सकते हैं
- Service की API से एक खाली repository बनाएँ और उसे
originके रूप में link करें। अगर project Git repository नहीं था, तो पहलेgit initचलता है। - काम पूरा होने पर repository के address के साथ “'<name>' linked to <service>” दिखता है।
आप नहीं कर सकते, और क्यों
- Publish से अपनी files online पहुँचाना: यह न commit करता है, न push। वे remote तक तब पहुँचती हैं जब आप Commit करके Upload changes करें (या Commit & Push इस्तेमाल करें)।जानबूझकर
- Connected account के बिना publish करना। कोई account न हो तो sheet कहती है “Connect GitHub, GitLab or Bitbucket in Services first” और आप Platform Services से connect करते हैं; यह इस sheet से नहीं हो सकता।नेटवर्क ज़रूरी
- GitHub Enterprise, self-hosted GitLab या किसी और host पर publish करना: सिर्फ github.com, gitlab.com और bitbucket.org।जानबूझकर
Git Settings
Git chip Git Settings खोलता है। एक status card बताता है कि project कहाँ खड़ा है, और उसके हिसाब से actions बदलती हैं:
| Status card | आप क्या कर सकते हैं |
|---|---|
| Not tracked yet | Project Git repository नहीं है। Start tracking this project git init चलाता है और पक्का करता है कि .gitignore में .pocketcode/ बाहर रखा गया हो। Link a repository I already have git init चलाता है और origin को आपके डाले हुए URL पर सेट करता है। |
| Saved on this device only | बिना remote वाली repository। एक Repository name लिखें, Private (यहाँ का default) या Public चुनें और Create on GitHub and connect पर tap करें (यह आपकी पहली connected Git service इस्तेमाल करता है; उसका नाम button पर होता है)। account न हो तो यह कहता है “Connect a GitHub account first, in Settings”। Link a repository I already have किसी मौजूद repository के लिए origin जोड़ता है। |
| Connected | एक origin है। Upload changes push करता है, Download changes pull करता है और Check the remote fetch करता है। |
आप कर सकते हैं
- Remote होने पर Branch खोलकर अपनी local branches देखें। किसी पर tap करें (Switch to this branch) ताकि उस पर चले जाएँ, या Create new branch पर tap करें: एक New branch dialog खुलता है जिसमें उस पर switch करने का checkbox होता है।
- History commits की संख्या दिखाता है (1,000 तक गिनी जाती है) और history खोलता है। Tags tags खोलता है।
- Your name on commits में वह नाम और email है जो Git आपके commits पर लिखता है। यह repository, connected service या आपके PocketCode account से पहले से भरा होता है; Save changes इसे repository में रख देता है।
आप नहीं कर सकते, और क्यों
- Remote होने से पहले Branch, History या Tags देखना: ये rows तभी दिखती हैं जब repository का remote हो।जानबूझकर
- Remote branches की list देखना, उन पर switch करना या उन्हें बनाना: सिर्फ local branches दिखती हैं।अभी नहीं
- Branch को delete या rename करना: code मौजूद है, पर कोई screen इसे नहीं देती।अभी नहीं
- SSH remotes (
git@…,ssh://…) या github.com, gitlab.com और bitbucket.org के अलावा hosts इस्तेमाल करना: upload, download और check कोशिश करने से पहले ही मना कर देते हैं।जानबूझकर
Commit
Commit Commit Changes खोलता है, जिसमें title के नीचे मौजूदा branch दिखती है।
आप कर सकते हैं
- बदली हुई files को दो lists में देखें, Staged (n) और Unstaged & Untracked (n)। किसी file का box tick करके उसे दूसरी list में ले जाएँ; Stage All और Unstage All हर file को ले जाते हैं।
- किसी बदली हुई, जो staged नहीं है, file पर Discard changes icon पर tap करके उसके changes फेंक दें। Untracked files में यह नहीं होता।
- Commit message लिखें और Commit पर tap करें, या अगर project का remote है तो Commit & Push पर।
- Amend last commit tick करें ताकि पिछले commit को staged changes और नए message के साथ दोबारा लिखा जाए। button Amend Commit बन जाता है।
आप नहीं कर सकते, और क्यों
- बिना message के या कम से कम एक staged file के बिना commit करना (amend के लिए सिर्फ message चाहिए)। कुछ भी staged न हो तो list कहती है “No staged files. Use 'Stage All' to add changes.”जानबूझकर
- App से अपने लिए files stage करवाना: Commit सिर्फ वही लेता है जो Staged के नीचे है।जानबूझकर
Commit History
Git Settings → History Commit History खोलता है: 100 तक commits, हर एक में उसके message की पहली line (60 characters पर कटी हुई), 7 अक्षरों का hash, author और तारीख।
आप कर सकते हैं
- किसी commit पर tap करने से चार buttons दिखते हैं: Revert (एक नया commit बनाता है जो उसे undo करे), Reset Soft (branch को उस commit पर ले जाता है और आपकी files और staged changes रखता है), Reset Hard (branch को वहाँ ले जाता है और आपकी files को उसके मुताबिक दोबारा लिखता है; लाल रंग में दिखता है) और Cherry-pick (उस commit को मौजूदा branch के ऊपर लागू करता है)।
आप नहीं कर सकते, और क्यों
- “mixed” reset करना या किसी commit से एक file restore करना: उपलब्ध नहीं है। restore का code मौजूद है, पर कोई button उसे इस्तेमाल नहीं करता।अभी नहीं
Tags
Git Settings → Tags repository के tags की list दिखाता है (या “No tags found”)।
आप कर सकते हैं
- Create Tag (+ icon):
v1.0.0जैसा नाम ज़रूरी है; message optional है और अगर आप देते हैं तो annotated tag बनता है। tag मौजूदा commit की ओर इशारा करता है। - हर tag के icon से Delete Tag।
- Push Tags (ऊपर का upload icon) उन्हें remote को भेजता है। यह तभी दिखता है जब repository का remote हो।
आप नहीं कर सकते, और क्यों
—
Project जोड़ें
Page के ऊपर के चार tiles project जोड़ते हैं। अलग से कोई + button नहीं है: plus icon New tile पर है। Free plan पर New, Import और Open Folder tap करते ही project की सीमा जाँच लेते हैं, और Clone GitHub, GitLab और Bitbucket के लिए यह जाँच तब करता है जब आप किसी repository पर Clone tap करें (Free plan की सीमा देखें)।

New: template से शुरू करें
New New project sheet खोलता है (“Choose a name and starter template”)।
- 1एक Name लिखें (placeholder में My App लिखा होता है)।
- 2चाहें तो chips All, General, Frontend, Backend, Fullstack या Languages से list छोटी करें।
- 3किसी template card पर tap करें। Empty पहले से चुना हुआ होता है।
- 4Create पर tap करें। काम चलते समय button Creating… दिखाता है; Cancel sheet बंद करता है।
| Template | Category | यह कौन-सी files बनाता है |
|---|---|---|
| Empty | General | कोई नहीं: एक खाली folder। |
| HTML / CSS / JS | Frontend | index.html, style.css, script.js |
| React | Frontend | index.html, App.jsx (React 18 और Babel, CDN से) |
| Vue.js | Frontend | index.html, app.js, style.css (Vue 3, CDN से) |
| TypeScript | Frontend | index.ts, tsconfig.json, package.json |
| Python | Backend | main.py, requirements.txt |
| Node.js | Backend | server.js (Express), package.json |
| FastAPI | Backend | main.py, requirements.txt, README.md |
| Django | Backend | manage.py, requirements.txt, README.md। manage.py config.settings की ओर इशारा करता है, जो template में शामिल नहीं है: इसे चलाने से पहले वह package जोड़ें। |
| React + Node.js | Fullstack | frontend/index.html, frontend/App.jsx, backend/server.js, backend/package.json, README.md |
| React + FastAPI | Fullstack | frontend/index.html, frontend/App.jsx, backend/main.py, backend/requirements.txt, README.md |
| Next.js | Fullstack | app/page.jsx, app/layout.jsx, app/api/hello/route.js, package.json |
| Kotlin | Languages | Main.kt |
| Go | Languages | main.go, go.mod |
| Rust | Languages | src/main.rs, Cargo.toml |
आप कर सकते हैं
- 15 templates में से किसी से भी शुरू करें: सभी Free plan पर उपलब्ध हैं।
- कोई भी नाम लिखें:
/ \ : * ? " < > |-बन जाते हैं, control characters और सिरों के dots, spaces या dashes हटा दिए जाते हैं, और खाली नतीजा Project बन जाता है। अगर folder पहले से है, तो नाम में(2),(3)… जुड़ता है। - Landscape में sheet दो panels में बँट जाती है: बाईं ओर name और buttons, दाईं ओर chips और templates।
आप नहीं कर सकते, और क्यों
- अपना template या Android-project scaffold बनाना: सिर्फ 15 built-in templates मिलते हैं।जानबूझकर
- React, Vue, React + Node.js या React + FastAPI templates को offline इस्तेमाल करना: इनका
index.htmlReact, Vue और Babel कोunpkg.comसे load करता है।नेटवर्क ज़रूरी
Import: एक ZIP
Import Android का file picker खोलता है। ZIP के unpack होते समय एक overlay कहता है “Importing project…”, फिर “Project '<name>' imported”।
आप कर सकते हैं
- कोई ZIP चुनें। अगर उसमें सिर्फ एक top-level folder है, तो project उसी folder की सामग्री बनता है: ऊपर का wrapper folder हटा दिया जाता है।
- ZIP के अंदर आए
.gitfolder को रखें: PocketCode पहले उन config keys को हटा देता है जो commands चला सकती हैं और उसके hooks खाली कर देता है। - Project का नाम file के नाम पर रखें: हर वह character जो letter, digit,
-या_नहीं है-बन जाता है, इसलिएmy app.zipmy-app-zipबन जाता है। बाद में Rename से उसे बदलें। अगर नाम पहले से है, तो वह-2,-3… बन जाता है।
आप नहीं कर सकते, और क्यों
- ऐसा ZIP import करना जो खुलकर 512 MB से ऊपर जाए, जिसमें 20,000 से ज़्यादा entries हों, या जो अपने आकार से 200 गुना से ज़्यादा बढ़ जाए: import रुक जाता है, अधूरा project हटा दिया जाता है और एक message कारण बताता है (zip-bomb protection)।जानबूझकर
.tar.gz,.rarया.7zimport करना: सिर्फ ZIP पढ़ा जाता है।जानबूझकर- कम memory वाले phone पर बहुत बड़ा ZIP import करना: app unpack करने से पहले पूरी file को memory में पढ़ता है।डिवाइस
Open Folder: device के folder की copy
Open Folder Android का folder picker खोलता है। app आपके चुने folder के अंदर की हर चीज़ को उसी नाम के नए project में copy करता है, फिर कहता है “Project '<name>' opened”। मूल folder link नहीं होता: उसके बाद दोनों अलग-अलग होते हैं।
आप कर सकते हैं
- Internal storage, SD card या Android के picker में दिखने वाले किसी भी provider से folder लाएँ।
- उसमें मौजूद
.gitfolder रखें, जिसे ZIP की तरह ही साफ किया जाता है।
आप नहीं कर सकते, और क्यों
- मूल folder को वहीं edit करना या दोनों copies को sync में रखना: यह एक बार की copy है, क्योंकि Android के folder picks file paths नहीं होते और Git तथा file tools को असली paths चाहिए। नतीजे को वापस बाहर लाने के लिए Export इस्तेमाल करें।डिवाइस
node_modules वाला folder पूरा copy होता है।Clone: अपने GitHub, GitLab या Bitbucket account से
Clone तीन rows वाली sheet खोलता है: Clone from GitHub, Clone from GitLab और Clone from Bitbucket। जिस row का account connected है, उस पर हरा निशान होता है और वह आपकी repositories की list खोलती है। जिस row का account connected नहीं है, उस पर Not connected — tap to connect लिखा होता है और एक Connect button होता है: यह उस service पर Platform Services खोलता है, और आप वहीं connect करते हैं, clone sheet के अंदर नहीं। GitHub और GitLab उस code से connect होते हैं जिसे आप browser में approve करते हैं (personal access token भी चलता है); Bitbucket आपका Atlassian email और एक API token माँगता है।
आप कर सकते हैं
- एक नज़र में देखें कि कौन-से accounts connected हैं।
- अपनी जगह खोए बिना account connect करें: row पर tap करें, Platform Services में connect करें, फिर Clone पर लौट आएँ।
आप नहीं कर सकते, और क्यों
- Paste किए गए URL से clone करना, या github.com, gitlab.com और bitbucket.org के अलावा किसी host से (GitHub Enterprise, self-hosted GitLab, Gitea, Azure DevOps…): हर clone किसी connected account की repository list से शुरू होता है।जानबूझकर
- Connected account के बिना clone करना, public repository भी नहीं।नेटवर्क ज़रूरी
- SSH पर clone करना: PocketCode सिर्फ HTTPS addresses इस्तेमाल करता है।जानबूझकर
- Submodules या Git LFS की सामग्री पाना: clone में पूरी history होती है, submodules के बिना, और LFS files download नहीं होतीं।जानबूझकर
GitHub से clone करें
Clone from GitHub एक full-screen GitHub Repositories list खोलता है, जिसमें आपकी repositories सबसे हाल में update हुई पहले आती हैं (1,000 तक)।
आप कर सकते हैं
- नाम, description या language से search करें, और All, Public, Private या Forks से filter करें (Forks तभी दिखता है जब आपके forks हों)। हर card visibility, description, language, stars, forks और आखिरी update दिखाता है।
- किसी card पर Clone tap करें: बस एक tap, कोई folder चुनना नहीं, और clone app के अपने projects folder में जाता है। फिर Cloning Repository dialog आता है, Cancel के साथ: cancel करने पर अधूरा clone delete हो जाता है।
- Free plan पर Clone tap करने पर पहले project की सीमा जाँची जाती है, clone शुरू होने से भी पहले: खाली जगह न हो तो list बंद हो जाती है और Unlimited Projects card खुलता है (Free plan की सीमा देखें)।
- अगर repository के नाम का project पहले से है, तो clone
repo (2),repo (3)… बन जाता है। - अभी कोई repository नहीं है? Create on GitHub browser में
github.com/newखोलता है।
आप नहीं कर सकते, और क्यों
- असली progress देखना: प्रतिशत चरणों में बढ़ता है (0, 10, 50 और 100 %)।अभी नहीं
- Network के जवाब देना बंद करने पर भी clone चलाए रखना: 60 सेकंड तक जवाब न मिलने पर clone हार मान लेता है।नेटवर्क ज़रूरी
GitLab या Bitbucket से clone करें
Clone from GitLab और Clone from Bitbucket आपकी repositories की list खोलते हैं, जिसमें एक search box होता है जो title और description दोनों से match करता है। शुरू करने के लिए किसी card पर Clone tap करें। चलते समय project list के ऊपर progress वाला एक card आता है।
आप कर सकते हैं
- GitLab वे projects दिखाता है जिनके आप member हैं, सबसे हाल में update हुए पहले (1,000 तक)।
- Free plan पर Clone tap करने से पहले project-limit की जाँच चलती है (Free plan की सीमा देखें)।
आप नहीं कर सकते, और क्यों
- List को filter करना: सिर्फ search box है। Bitbucket एक workspace की repositories दिखाता है (आपका personal, या पहला जिससे आप जुड़े हैं), सबसे हाल में update हुई 30।जानबूझकर
Free plan की सीमा
Free plan में आपका अपना एक project रह सकता है। Pro में projects की कोई सीमा नहीं है।
- क्या गिना जाता है: list का हर project, सिवाय दो example projects (WebPortfolio और TaskCLI, rename करने पर भी) के। कोई project delete करें और उसकी जगह फिर खाली हो जाती है।
- इसे कौन जाँचता है: New, Import और Open Folder tile पर tap करते ही, किसी dialog या picker के खुलने से पहले, इसे जाँचते हैं। GitHub, GitLab या Bitbucket से clone करना किसी repository पर Clone tap करते ही जाँचता है। AI Office, Designer और Marketplace से project template लगाना यही सीमा इस्तेमाल करते हैं।
- आपको क्या दिखता है: Unlimited Projects card, जिसमें Unlock Unlimited Projects button है (जो plans screen खोलता है) और Not now।
- किस पर सीमा नहीं है: Rename, Export, Delete, Publish, card की हर Git action, 15 templates, IDE page और उसके tabs।
Example projects
पहली बार चलाने पर PocketCode list में दो example projects जोड़ता है:
- WebPortfolio (7 files): सादे HTML, CSS और JavaScript में एक one-page portfolio।
index.html,css/styles.css,js/script.js,js/projects.js,data/projects.json,README.md,TASKS.md। - TaskCLI (9 files): Node.js में बना terminal task manager, बिना किसी dependency के।
main.js,src/args.js,src/colors.js,src/commands.js,src/store.js,data/tasks.json,package.json,README.md,TASKS.md। - हर एक में अभ्यास के exercises वाली एक
TASKS.mdहै। Files अंग्रेज़ी में हैं, app की language जो भी हो। - ये Free सीमा में नहीं गिने जाते। आप इन्हें किसी भी project की तरह rename, export और delete कर सकते हैं; एक बार delete होने पर ये वापस नहीं आते।
IDE page
IDE page app का चौथा page है। यह उन files के लिए workbench है जिन्हें आपने खोला है: code editor की tab strip और active file का read-only preview। आप files Files से खोलते हैं, और edit full-screen code editor में करते हैं, जो preview पर tap करने से खुलता है। strip और editor वही खुली files साझा करते हैं, इसलिए यहाँ खुला tab वहाँ भी खुला है।
Tabs
Header (Editor, project के नाम और “N open · M unsaved” के साथ) और tab strip तब दिखते हैं जब कम से कम एक tab खुला हो।
आप कर सकते हैं
- Tab को active करने के लिए उस पर tap करें। उसके menu के लिए long-press करें: Close, Close others, Close to the right, Close saved, Close all, Pin / Unpin, Keep open, Copy path, Copy relative path, Move left और Move right। bulk close pinned tabs को कभी बंद नहीं करते।
- Tab को long-press करके बगल की ओर drag करें ताकि उसका क्रम बदल जाए; active preview tab को खुला रखने के लिए उस पर double-tap करें।
- अगले या पिछले tab पर जाने के लिए preview पर दो उँगलियों से बगल की ओर swipe करें।
- बाहर जाकर लौटें: हर project के tabs अलग-अलग save होते हैं और क्रम, active tab, pinned tabs और cursor तथा scroll positions के साथ वापस आते हैं। बीच में delete हुई files बिना error के हटा दी जाती हैं।
आप नहीं कर सकते, और क्यों
- इस page से किसी tab को split view में खोलना: यहाँ Open in split नहीं मिलता।जानबूझकर
- वह text वापस पाना जो आपने save नहीं किया था: save हुए session में tab list और positions होती हैं, unsaved edits नहीं।जानबूझकर
- App के दखल दिए बिना 20 से ज़्यादा tabs खुले रखना। जब आप एक और खोलते हैं, तो वह सबसे पुराने इस्तेमाल हुए उस tab को बंद करता है जिसमें unsaved changes नहीं हैं और जो pinned या active नहीं है, और “Closed <file> (limit of 20 tabs)” कहता है, Undo के साथ। अगर कोई भी बंद नहीं हो सकता, तो नया tab फिर भी खुलता है और आपको “<n> tabs are open and none can be closed without losing changes. Save or close some.” दिखता है। सीमा Free और Pro में एक जैसी है।डिवाइस
Tab switcher
Open tabs · N of 20 एक sheet है जो strip भर जाने पर tabs के बीच जाने के काम आती है।
आप कर सकते हैं
- क्रम को Recent और Order के बीच बदलें, Filter tabs… में लिखें, किसी tab पर tap करके उस पर jump करें और हर row के button से उसे बंद करें।
- बिना unsaved changes वाले हर tab को बंद करने के लिए Close saved पर tap करें, या Files पर जाने के लिए Open file… पर।
आप नहीं कर सकते, और क्यों
- इसे strip से खोलना: इस page पर strip में ▾ button नहीं है। sheet View tabs से खुलती है, जो tab-limit notice की action है।जानबूझकर
Preview और header के buttons
Preview active file की वे शुरुआती lines दिखाता है जो screen पर समा जाएँ, line numbers और syntax colours के साथ अगर editor settings में वे चालू हों, editor के theme, font और size में। यह वही text दिखाता है जो editor में है, unsaved edits समेत।
आप कर सकते हैं
- File को full-screen code editor में खोलने के लिए preview पर, या उसके नीचे Open in editor पर tap करें।
- Open in browser (header का globe) HTML, CSS, JavaScript और TypeScript files के लिए दिखता है। यह आपके project के local server पर Dev Browser खोलता है, और जब तक इस project के लिए server न चले, disabled रहता है।
- Run (header का ▶, EXPERIMENTAL चिह्नित) Kotlin, Java, Python, JavaScript, TypeScript, Go, Rust, C++, Ruby, PHP, Dart, Swift और Shell files के लिए दिखता है।
आप नहीं कर सकते, और क्यों
- यहाँ file को edit या scroll करना: preview static है, और लंबी lines wrap होने के बजाय कट जाती हैं।जानबूझकर
- इस page से file चलाना: ▶ सिर्फ file को full-screen editor में खोलता है, और चलाना वहीं होता है।अभी नहीं
Web previews के लिए local server
जब IDE page कोई project खोलता है, तो PocketCode उसके लिए एक छोटा web server शुरू करता है: 8765 से 8774 तक का पहला खाली port, जो project की files जैसी हैं वैसी परोसता है (index.html default page है)।
आप कर सकते हैं
- Open in browser से कोई web file खोलें: CSS, scripts और images relative links से load होते हैं क्योंकि server पूरा project folder परोसता है।
- इस पर भरोसा रखें कि यह private है: यह सिर्फ
127.0.0.1पर सुनता है (खुद phone, आपका Wi-Fi नहीं) और हर उस request को “401 Unauthorized” जवाब देता है जिसमें per-session credential न हो, जो app के अंदर का Dev Browser भेजता है।
आप नहीं कर सकते, और क्यों
- Save करते ही अपने आप reload पाना: सिर्फ AI agent के किए बदलाव Dev Browser को reload करते हैं। अपने edits के बाद page को खुद reload करें।अभी नहीं
- Server-side code चलाना: server सिर्फ static files भेजता है।जानबूझकर
Empty states
कोई tab खुला न हो तो page Welcome to PocketCode IDE, project का नाम और File Explorer page पर जाने का संकेत दिखाता है; Start Coding आपको Files पर ले जाता है। कोई project चुना न हो तो यह No project selected और Go to Dashboard दिखाता है, जो आपको Projects पर ले जाता है।
आप कर सकते हैं
- Files से अगली file चुनें: अगर project के पास पिछले session के tabs हैं, तो वे अपने आप लौट आते हैं।
आप नहीं कर सकते, और क्यों
—
Free और Pro
इन दोनों pages पर सब कुछ Free plan में है। plan सिर्फ एक चीज़ सीमित करता है: आपके अपने कितने projects हो सकते हैं:
| Feature | Free | Pro |
|---|---|---|
| अपने projects | 1 | कोई सीमा नहीं |
| दो example projects (WebPortfolio, TaskCLI) | गिने नहीं जाते | गिने नहीं जाते |
| New, Import, Open Folder, GitHub, GitLab या Bitbucket से clone | जब तक आपके पास 1 project है | Plan की ओर से कोई सीमा नहीं |
| 15 templates | सभी | सभी |
| Rename, Export, Delete, Publish | शामिल | शामिल |
| Card पर Git: Commit, history, tags, Pull / Push / Fetch | शामिल | शामिल |
| IDE page और उसके tabs | शामिल, 20 tabs | शामिल, 20 tabs |
Privacy और security
- आपके projects device पर ही रहते हैं। वे PocketCode की private storage में folders हैं, और ये pages अपने आप कुछ upload नहीं करते: files device से तभी बाहर जाती हैं जब आप push करें, publish करके फिर push करें, या Export ZIP save करें। AI features आपके इस्तेमाल करने पर project files पढ़ते हैं; यह AI Chat में बताया गया है।
- Git tokens Android के encrypted storage में रहते हैं, हर PocketCode account के हिसाब से। PocketCode token सिर्फ github.com, gitlab.com और bitbucket.org को भेजता है; किसी और host के लिए यह कुछ नहीं भेजता और operation fail हो जाता है।
- Git app के अंदर चलता है, बिना किसी external program के। Hooks और filters कभी नहीं चलते। जब आप ऐसा ZIP import करते हैं या ऐसा folder खोलते हैं जिसमें
.gitहै, तो PocketCode repository रखता है पर वे config keys हटा देता है जो commands चला सकती हैं और उसके hooks खाली कर देता है। - Local preview server सिर्फ
127.0.0.1पर जवाब देता है और उसे per-session credential चाहिए। - Export अपना ZIP एक temporary file में बनाता है और उसे आपकी चुनी जगह पर copy होने के बाद (या आपके cancel करने पर) delete कर देता है।
- Backups: PocketCode के लिए Android का अपना backup बंद है। Settings में Create automatic backup है: चालू होने पर आपके सभी projects की ZIP copies हर 30 मिनट में app की private storage के अंदर लिखी जाती हैं (हर project की आखिरी 5 रखी जाती हैं)। उन्हें restore करने के लिए कोई screen नहीं है और uninstall करने पर वे delete हो जाती हैं, इसलिए Export को अपना असली backup मानें।
सीमाएँ
ये pages आज क्या नहीं करते, ताकि यह आपको अचानक परेशान न करे:
- Free plan में आपका अपना 1 project रह सकता है। New, Import, Open Folder और GitHub, GitLab या Bitbucket से clone Unlimited Projects card पर रुक जाते हैं।Pro
- Projects सिर्फ app की private storage में रहते हैं: दूसरे apps और file managers उन्हें नहीं देख सकते, और PocketCode को uninstall करने पर वे delete हो जाते हैं।डिवाइस
- Open Folder folder को link करने के बजाय copy करता है, और ZIP import पूरी file को memory में पढ़ता है।डिवाइस
- Clone कभी folder नहीं पूछता: GitHub, GitLab या Bitbucket, हर clone app के projects folder में आता है।डिवाइस
- Project list पर search, sort या filters नहीं हैं, और duplicate भी नहीं।अभी नहीं
- Rust, Ruby, C और C++ projects और Dockerfiles card पर कोई framework नहीं दिखाते।अभी नहीं
- ZIP import खुलने पर 512 MB, 20,000 entries या 200:1 के अनुपात के पार रुक जाता है, और सिर्फ ZIP पढ़ा जाता है।जानबूझकर
- Git सिर्फ HTTPS है, और सिर्फ github.com, gitlab.com और bitbucket.org के साथ तथा connected account के साथ। SSH नहीं है, GitHub Enterprise या self-hosted GitLab नहीं है, और paste किए गए URL से clone नहीं होता।जानबूझकर
- कोई submodules नहीं, कोई Git LFS नहीं और कोई hooks नहीं: Git engine कोई external program नहीं चलाता।जानबूझकर
- Publish repository बनाता और link करता है, पर push नहीं करता।जानबूझकर
- Card से आप branch को delete या rename नहीं कर सकते, remote branches की list नहीं देख सकते, “mixed” reset नहीं कर सकते या किसी commit से file restore नहीं कर सकते।अभी नहीं
- Clone का प्रतिशत चरणों में बढ़ता है (0, 10, 50, 100 %), और Bitbucket एक workspace की सबसे हाल की 30 repositories दिखाता है।अभी नहीं
- React, Vue, React + Node.js और React + FastAPI templates को connection चाहिए: वे libraries
unpkg.comसे load करते हैं।नेटवर्क ज़रूरी - IDE page edit, scroll या run नहीं करता: उसका ▶ सिर्फ editor खोलता है, और save करने पर preview अपने आप reload नहीं होता।अभी नहीं
- App अपने आप ज़्यादा से ज़्यादा 20 tabs खुले रखता है (Free और Pro पर एक जैसा): उसके बाद वह सबसे पुराना इस्तेमाल हुआ saved tab बंद कर देता है, या कोई भी बंद न हो सके तो आपको चेतावनी देता है।डिवाइस
- कुछ messages और texts app की language जो भी हो, स्पेनिश में लिखे हैं: Ahora, rename और ZIP-limit की errors, कुछ clone और pull errors, और template files के अंदर का text।अभी नहीं
समस्या निवारण
नीचे के messages वही हैं जो PocketCode दिखाता है। कुछ हर language में स्पेनिश में लिखे होते हैं; उन्हें वैसे ही उद्धृत किया गया है जैसे वे दिखते हैं।
“A project with this name already exists”
Rename project में: किसी दूसरे project के folder का यही नाम पहले से है। कोई और नाम चुनें।
“El nombre contiene caracteres no válidos”
नए नाम में / \ : * ? " < > | में से कोई है। उसे हटाएँ और फिर से rename करें।
Unlimited Projects
आप Free plan पर हैं और आपके पास पहले से अपना एक project है। जगह खाली करने के लिए उसे delete करें या export करके delete करें, या Pro unlock करें। Example projects नहीं गिने जाते।
“El archivo trae más de 20000 entradas: se corta la extracción.”
ZIP में 20,000 से ज़्यादा entries हैं। कुछ import नहीं होता और अधूरा project हटा दिया जाता है। जो नहीं चाहिए उसे छोड़कर दोबारा zip करें।
“El contenido descomprimido pasa de 512 MB: se corta la extracción.”
ZIP खुलकर 512 MB से ऊपर चला जाएगा। नतीजा वही: कुछ import नहीं होता। node_modules जैसे बड़े folders छोड़ दें।
“El archivo se expande más de 200:1 (… B → … B): se corta la extracción.”
सामग्री ZIP के आकार से 200 गुना से ज़्यादा बढ़ जाती है, zip bomb ऐसा ही दिखता है। Import रुक जाता है।
“Invalid entry path: …”
ZIP की कोई entry project folder से बाहर निकलने की कोशिश करती है (.. या absolute path)। PocketCode उस file को मना कर देता है और अधूरा project हटा देता है।
“The selected file is not valid” या “We couldn't read the selected file”
Android आपकी चुनी file को खोल या पढ़ नहीं सका। उसे दोबारा चुनें, या पहले उसे device की storage में copy करें।
“The selected folder is not valid” या “Error opening the folder”
Open Folder को पढ़ने लायक folder नहीं मिला। file नहीं, folder चुनें और फिर कोशिश करें।
“Not connected — tap to connect”
उस provider का कोई connected account नहीं है। Row (या Connect) पर tap करके Platform Services खोलें, account connect करें और Clone पर लौट आएँ।
“GitLab account not connected” (या Bitbucket)
List बिना account के खुली: “Connect your GitLab account from Services to clone repositories.” इसे Platform Services में connect करें और list फिर खोलें।
“Failed to load repositories” या “Something went wrong”
Repository list load नहीं हो सकी, आम तौर पर network न होने से। Retry पर tap करें।
“Clone failed: …”
कारण स्पेनिश में आता है। “Error de autenticación. Verifica tu token de GitHub.” का मतलब है कि token मना कर दिया गया: account दोबारा connect करें। “Repositorio no encontrado. Verifica la URL.”, “Error de red. Verifica tu conexión a internet.” और “Error de permisos. Verifica que tienes acceso al repositorio.” वही कहते हैं जो उनमें लिखा है; “Error al clonar: …” बाकी सब कुछ कवर करता है। अधूरा clone delete हो जाता है।
“This project has no remote yet. Link one in Git settings first.”
Pull, Push और Fetch को एक origin चाहिए। Git खोलें और Link a repository I already have या Create on GitHub and connect इस्तेमाल करें, या Publish इस्तेमाल करें।
“This remote uses SSH, which is not supported. Use the HTTPS address of the repository.”
Project का origin एक SSH address है (git@… या ssh://…)। PocketCode सिर्फ HTTPS से बात करता है, इसलिए कोशिश करने से पहले ही मना कर देता है। Repository को Clone से दोबारा clone करें, जो HTTPS इस्तेमाल करता है।
“No account connected for <host>. Connect one in Settings to upload or download.”
उस host के लिए कोई connected account नहीं है, या host github.com, gitlab.com या bitbucket.org नहीं है: PocketCode token सिर्फ इन्हीं तीन को भेजता है। Account को Platform Services में connect करें (Settings → Integrations → Connected Services)।
“<host> rejected the credentials. Reconnect the account in Settings.”
Token अब valid नहीं है। Platform Services में account को disconnect करके फिर से connect करें।
“Could not reach <host>. Check your connection and try again.”
Network नहीं है, या host ने समय पर जवाब नहीं दिया। Connection जाँचें और फिर कोशिश करें।
“The remote rejected the upload. Download the remote changes first, then upload again.”
Remote के पास ऐसे commits हैं जो आपके पास नहीं हैं। Download changes (या Pull) इस्तेमाल करें और फिर दोबारा upload करें। “Your branch and the remote have both changed.” का मतलब भी यही है।
“This project and the remote have no shared history.”
“It usually means the folder already had commits before linking the remote. Clone into an empty folder, or link a different remote.”
“The same lines changed on both sides.”
“Open the affected files, keep the version you want, and try again.” Markers को हल करना code editor में होता है।
“No staged files. Use 'Stage All' to add changes.”
Commit Changes में, Commit को Staged के नीचे कम से कम एक file और एक message चाहिए। Files tick करें या Stage All पर tap करें।
“Project created, but the template files could not be written: …”
Folder बन गया है पर template नहीं लिखा गया, आम तौर पर जगह की कमी से। कुछ जगह खाली करें, project को delete करें और फिर बनाएँ।
“Connect GitHub, GitLab or Bitbucket in Services first”
Publish to Remote sheet को कोई connected service नहीं मिली। Platform Services में एक connect करें, फिर Publish दोबारा खोलें।
“Ya tienes un repositorio llamado «<name>». Elige otro nombre.”
आपके account पर GitHub में इस नाम की repository पहले से है। Publish to Remote में Repository name बदलें और Create & Link पर फिर tap करें।
“<n> tabs are open and none can be closed without losing changes. Save or close some.”
आप 20-tab की सीमा पर पहुँच गए हैं और बाकी हर tab में या तो unsaved changes हैं या वह pinned है। View tabs पर tap करें, फिर कुछ को save या close करें।
“No project selected”
IDE page बिना खुले project के खुला। Go to Dashboard पर tap करें और फिर किसी project card पर tap करें।
“Could not export the project”
ZIP बन नहीं सका या आपकी चुनी जगह पर लिखा नहीं जा सका। कोई और जगह आज़माएँ।