Mocha App
Display name: Mocha App. Publisher: Mocha Inc. (mocha). Extension ID: mocha.mocha-client.
Mocha App connects explicit, extension-owned Copilot sessions in VS Code to the Mocha mobile app. Create a new mobile-controlled conversation or import an exported transcript and continue it through a GitHub Copilot language model available in VS Code.
Supported workflow
- Install the extension in VS Code 1.93 or newer.
- Sign in to GitHub Copilot in VS Code.
- Configure
mocha.relayUrl and the required mocha.accountId.
- Run Mocha: Create Mobile-Controlled Session or Mocha: Import Exported Chat Transcript.
- Open Mocha: Show Mobile Sessions to view status, history, and the pairing code.
The account ID must exactly match the account ID used by the Mocha mobile app. There is no demo account or implicit account fallback.
Explicit chat handoff
VS Code does not expose a public API for extensions to enumerate arbitrary native Copilot chat sessions or read their complete history. Mocha does not inspect or scrape VS Code or Copilot private storage.
To hand off an existing chat:
- Export the chat using the export action provided by your installed VS Code or Copilot Chat version.
- Run Mocha: Import Exported Chat Transcript.
- Select one or more JSON, JSON Lines, text, or Markdown transcript files.
Imported history is displayed in its Mocha session panel and used as context for subsequent prompts. Each imported file becomes a separate Mocha-owned session.
Commands
| Command |
Purpose |
| Mocha: Show Mobile Sessions |
Lists all Mocha-owned sessions and their connection state. |
| Mocha: Create Mobile-Controlled Session |
Creates an empty, persistent Copilot-powered session. |
| Mocha: Import Exported Chat Transcript |
Creates sessions from explicitly selected transcript files. |
| Mocha: Disconnect and Remove Mobile Session |
Disconnects and removes a selected local session. |
The extension activates after VS Code starts so previously created sessions can reconnect to the relay. Existing mocha.connect and mocha.showPanel command IDs remain registered for compatibility but are not shown as duplicate Command Palette entries.
Settings
| Setting |
Required |
Description |
mocha.accountId |
Yes |
Account ID shown by the Mocha mobile app. |
mocha.relayUrl |
Yes |
HTTP or HTTPS base URL for the Mocha relay. Defaults to the local development relay. |
mocha.token |
No |
Shared relay token when the relay requires one. |
mocha.model |
No |
Preferred GitHub Copilot model family. The first available Copilot model is used when empty. |
If mocha.accountId is missing, commands that create or import sessions show a setup error and offer to open the setting.
Session history and privacy
- Mocha stores only sessions created or imported through this extension.
- User-selected transcript imports are limited to 2 MB per file.
- The extension sends session snapshots to the configured relay for cross-device replay.
- The relay bounds stored history and redacts common credential patterns before persistence or replay.
- Live prompts and replies still pass through the configured relay.
- Use HTTPS/WSS and configure
mocha.token when the relay is reachable outside a trusted local environment.
Limitations
- Native Copilot chat tabs cannot be enumerated or attached directly through the public VS Code API.
- Imported conversations become independent Mocha sessions; they are not written back into native Copilot chat history.
- Mobile history display requires a compatible Mocha app that handles the relay's history snapshot protocol.