{"id":49556830,"url":"https://github.com/edgar-durand/codeagent-mobile-clients","last_synced_at":"2026-06-10T02:00:55.601Z","repository":{"id":353327474,"uuid":"1218929830","full_name":"edgar-durand/codeagent-mobile-clients","owner":"edgar-durand","description":"Public source for CodeAgent Mobile clients: codeam-cli (npm), VS Code / Cursor / Windsurf extension, and JetBrains plugin. Control AI coding agents (Claude Code, Copilot,   Cursor) from your phone. ","archived":false,"fork":false,"pushed_at":"2026-05-30T21:55:13.000Z","size":2528,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T22:21:18.565Z","etag":null,"topics":["ai","claude","claude-code","cli","copilot","cursor","jetbrains-plugin","mcp","mobile-coding","pair-programming","remote-control","vscode-extension"],"latest_commit_sha":null,"homepage":"https://www.codeagent-mobile.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edgar-durand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-23T11:04:16.000Z","updated_at":"2026-05-30T21:55:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/edgar-durand/codeagent-mobile-clients","commit_stats":null,"previous_names":["edgar-durand/codeagent-mobile-clients"],"tags_count":165,"template":false,"template_full_name":null,"purl":"pkg:github/edgar-durand/codeagent-mobile-clients","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-durand%2Fcodeagent-mobile-clients","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-durand%2Fcodeagent-mobile-clients/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-durand%2Fcodeagent-mobile-clients/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-durand%2Fcodeagent-mobile-clients/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edgar-durand","download_url":"https://codeload.github.com/edgar-durand/codeagent-mobile-clients/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgar-durand%2Fcodeagent-mobile-clients/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33847265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude","claude-code","cli","copilot","cursor","jetbrains-plugin","mcp","mobile-coding","pair-programming","remote-control","vscode-extension"],"created_at":"2026-05-03T04:03:09.891Z","updated_at":"2026-06-03T04:00:48.220Z","avatar_url":"https://github.com/edgar-durand.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CodeAgent Mobile — Clients\n\nPublic source for the **client-side bridges** of [CodeAgent Mobile](https://www.codeagent-mobile.com) — the workflow-continuity layer for AI coding agents.\n\n- [`apps/cli`](apps/cli) — `codeam-cli`, the terminal bridge that wraps Claude Code in a PTY and streams it to any device\n- [`apps/vsc-plugin`](apps/vsc-plugin) — extension for **VS Code**, **Cursor**, and **Windsurf**\n- [`apps/jetbrains-plugin`](apps/jetbrains-plugin) — plugin for the **IntelliJ** family (IntelliJ IDEA, WebStorm, PyCharm, Rider, GoLand, …)\n\n\u003e **What is CodeAgent Mobile?**\n\u003e The supervision layer for agents already running in your IDE. Now that AI agents run for hours, not seconds, you no longer need to stare at a terminal — CodeAgent streams the session to your phone or web dashboard so you can approve diffs, redirect prompts, and stay in the loop async. Works with Claude Code, Copilot, Cursor, Windsurf, JetBrains AI, OpenAI Codex, Vertex AI, and any agent in your editor.\n\u003e\n\u003e Install once in your IDE, pair with a QR, your workflow follows you across devices. See [codeagent-mobile.com](https://www.codeagent-mobile.com).\n\n---\n\n## Install (users)\n\n### CLI — `codeam-cli`\n\n```bash\nnpm install -g codeam-cli\ncodeam pair   # generates a 6-character code\ncodeam        # starts Claude Code with mobile control\n```\n\n[![npm](https://img.shields.io/npm/v/codeam-cli.svg?color=34d399\u0026style=flat-square)](https://www.npmjs.com/package/codeam-cli)\n\n### VS Code / Cursor / Windsurf\n\n- **VS Code Marketplace** → search for *CodeAgent Mobile*  ·  [listing](https://marketplace.visualstudio.com/items?itemName=CodeAgentMobile.codeagent-mobile)\n- **Cursor / Open VSX** → [CodeAgentMobile/codeagent-mobile](https://open-vsx.org/extension/CodeAgentMobile/codeagent-mobile)\n\n### JetBrains\n\n- **JetBrains Marketplace** → [CodeAgent-Mobile](https://plugins.jetbrains.com/plugin/30697-codeagent-mobile)\n\n---\n\n## Environment variables\n\nEvery client (CLI + both plugins) reads the same two env vars to pick which API host it talks to. Priority order — first match wins:\n\n| Variable | Effect |\n|---|---|\n| `CODEAM_API_URL` | Full URL override. Use when pointing at a custom staging endpoint or a self-hosted instance. Example: `CODEAM_API_URL=https://staging-api.example.com codeam pair`. |\n| `CODEAM_TEST_MODE=1` | Shortcut that routes every request at the **dev preview** (`https://dev-api.codeagent-mobile.com`) without you having to know the URL. Use this when pairing from `dev.codeagent-mobile.com`. |\n| _(none)_ | Defaults to production (`https://api.codeagent-mobile.com`). |\n\nThe shortcut exists because prod + dev share Redis: a code generated against prod-api is also valid against dev-api, so a pair started in the dev webapp completes silently against prod (heartbeats keep going to the wrong host). `CODEAM_TEST_MODE=1` flips every endpoint — pairing, command relay, SSE, chunk uploads, file watcher, history — in lockstep.\n\n```bash\n# Quick check it's active:\nCODEAM_TEST_MODE=1 codeam doctor\n# api      https://dev-api.codeagent-mobile.com\n# mode     TEST_MODE — using dev preview\n```\n\nVS Code / JetBrains plugins read the same env vars from the host process — set them in your shell before launching the IDE. The `apiBaseUrl` setting in each plugin still works as a manual override (highest priority of all in the plugin context).\n\n---\n\n## Repository layout\n\n```\ncodeagent-mobile-clients/\n├── apps/\n│   ├── cli/                 # codeam-cli (TypeScript · tsup · Node ≥ 18)\n│   ├── vsc-plugin/          # VS Code extension (TypeScript · esbuild)\n│   └── jetbrains-plugin/    # IntelliJ plugin (Kotlin · Gradle · JDK 17)\n├── packages/\n│   └── shared/              # @codeagent/shared — chrome parser +\n│                            # model pricing tables, bundled into CLI\n│                            # and the VS Code extension at build time\n├── package.json             # npm workspaces + root scripts\n├── .github/workflows/       # CI (PRs) + Release (tag-triggered publish)\n├── .eslintrc.json           # shared lint config (CLI + VS Code plugin)\n├── .prettierrc              # shared formatter config\n├── .editorconfig            # editor defaults\n└── .nvmrc                   # Node version pin\n```\n\nThe CLI and VS Code extension share a small TypeScript package (`packages/shared`) that holds the chunk-protocol parser and the model-pricing tables. At build time `tsup` (CLI) and `esbuild` (VS Code) inline it into each consumer's bundle, so neither published artifact depends on a separate package at runtime. The JetBrains plugin is Kotlin and does not consume the shared package.\n\n---\n\n## Build from source\n\nClone, then install per-app dependencies:\n\n```bash\ngit clone https://github.com/edgar-durand/codeagent-mobile-clients.git\ncd codeagent-mobile-clients\n(cd apps/cli \u0026\u0026 npm install)\n(cd apps/vsc-plugin \u0026\u0026 npm install)\n```\n\nRoot convenience scripts:\n\n| Script | What it does |\n|---|---|\n| `npm run build:cli` | Build `codeam-cli` → `apps/cli/dist/` |\n| `npm run dev:cli` | `tsup --watch` for the CLI |\n| `npm run test:cli` | Vitest for the CLI |\n| `npm run publish:cli` | `npm publish` (from `apps/cli`) |\n| `npm run build:vsc-plugin` | Build + `vsce package` → `apps/vsc-plugin/*.vsix` |\n| `npm run publish:vsc-plugin` | Publish to VS Code Marketplace (needs `.env` with `PAT`) |\n| `npm run publish:vsc-plugin:cursor` | Publish to Open VSX (needs `.env` with `OVSX_TOKEN`) |\n| `npm run build:jetbrains-plugin` | `gradlew clean buildPlugin` → `apps/jetbrains-plugin/build/distributions/*.zip` |\n| `npm run reinstall:jetbrains-plugin` | Rebuild + reinstall into local WebStorm (dev helper) |\n\n### Prerequisites\n\n- **Node.js ≥ 18** (CLI + VSC plugin)\n- **Python 3** (CLI — required at runtime for the PTY helper on macOS / Linux; Windows falls back to direct spawn)\n- **JDK 17** (JetBrains plugin — the root scripts pin `JAVA_HOME` to Homebrew's `openjdk@17`; adjust if yours lives elsewhere)\n- **Gradle** — the wrapper (`gradlew`) is committed, no global install needed\n\n### Build everything at once\n\n```bash\nnpm run build:cli\nnpm run build:vsc-plugin\nnpm run build:jetbrains-plugin\n```\n\n---\n\n## Releases \u0026 changelogs\n\nEach app ships independently and keeps its own version number and changelog:\n\n| App | Current | Changelog | Registry |\n|---|---|---|---|\n| `codeam-cli` | **2.0.0** | [apps/cli/CHANGELOG.md](apps/cli/CHANGELOG.md) | [npm](https://www.npmjs.com/package/codeam-cli) |\n| VS Code plugin | **2.0.0** | [apps/vsc-plugin/CHANGELOG.md](apps/vsc-plugin/CHANGELOG.md) | [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=CodeAgentMobile.codeagent-mobile) · [Open VSX](https://open-vsx.org/extension/CodeAgentMobile/codeagent-mobile) |\n| JetBrains plugin | **2.0.0** | [apps/jetbrains-plugin/CHANGELOG.md](apps/jetbrains-plugin/CHANGELOG.md) | [JetBrains Marketplace](https://plugins.jetbrains.com/plugin/30697-codeagent-mobile) |\n\nFrom **2.0.0 onwards all three clients ship under the same version line.** Pushing a single tag `vX.Y.Z` releases `codeam-cli@X.Y.Z` to npm, the VS Code extension `X.Y.Z` to both the VS Code Marketplace and Open VSX, and the JetBrains plugin `X.Y.Z` to the JetBrains Marketplace stable channel via the automated [release workflow](.github/workflows/release.yml). Pre-release tags (`vX.Y.Z-rc.N`) skip the JetBrains marketplace push — the `.zip` is still attached to the GitHub Release for manual upload to a non-stable channel.\n\nPublishing secrets (`PAT`, `OVSX_TOKEN`, `CERTIFICATE_CHAIN`, `PRIVATE_KEY`, `PRIVATE_KEY_PASSWORD`, `PUBLISH_TOKEN`) live in local `.env` files and are gitignored — they never land in this repo.\n\n---\n\n## Architecture (where this fits in)\n\n```\n┌─────────────────────┐   REST + WebSocket   ┌────────────────────┐\n│  Mobile app / Web   │  ───────────────────▶│ CodeAgent backend  │\n│  dashboard          │                       │                    │\n└─────────────────────┘                       └─────────┬──────────┘\n                                                        │ WebSocket / HTTP poll\n                                                        ▼\n                                              ┌────────────────────┐\n                                              │   THIS REPO        │\n                                              │ ──────────────     │\n                                              │ • codeam-cli       │\n                                              │ • VS Code plugin   │\n                                              │ • JetBrains plugin │\n                                              └──────────┬─────────┘\n                                                         │ PTY / IDE APIs\n                                                         ▼\n                                              ┌────────────────────┐\n                                              │  Claude Code /     │\n                                              │  OpenAI Codex /    │\n                                              │  Copilot / Cursor  │\n                                              │  / JetBrains AI…   │\n                                              └────────────────────┘\n```\n\nThe clients never talk to each other. Each one connects to the backend relay and relays commands to whichever local agent (Claude Code via PTY, Copilot Chat via the VS Code API, IntelliJ terminal, etc.) the user has selected.\n\n---\n\n## Contributing\n\nIssues and pull requests are welcome. Please:\n\n1. Open an issue first for non-trivial changes so we can align on scope.\n2. Keep changes scoped to one app when possible.\n3. Run `npm run test:cli` (CLI) and make sure `npm run build:*` succeeds before opening a PR.\n\nFor backend / mobile app / web dashboard issues, use the in-app *Help \u0026 FAQ* — those sources aren't in this repo.\n\n---\n\n## License\n\n[MIT](LICENSE) © Edgar Durand\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedgar-durand%2Fcodeagent-mobile-clients","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedgar-durand%2Fcodeagent-mobile-clients","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedgar-durand%2Fcodeagent-mobile-clients/lists"}