Mobile, desktop and web interface for Claude Code
Drive the Claude Code running on your PC (sessions, files, projects, file edits, interactive permission prompts) from an Android app, a desktop app for Windows, Linux and macOS, or any browser. Locally over Tailscale, or publicly over a Tailscale Funnel
Support developmentko-fi.com/jahirtrapAndroid / Desktop / Web ──HTTP/WS──> Backend on the PC ──Agent SDK──> Claude Code
Get started
Two pieces: the server that runs beside Claude Code on your PC, and the app you reach it from
1 • The server, on your PC
One line installs it. The script brings uv along if you do not have it, then puts the package in an isolated environment
curl -fsSL https://cconnect.dev/install.sh | shAlready have uv?
uv tool install cconnectWhen it finishes, cconnect serves it locally and cconnect status says where everything lives
Cloning the repository and running it from there still works and stays supported
2 • The app, on your devices
Desktop, Android and the browser come from the same codebase, released together
Runs in the browser, or installs as an app
What it does
Chat
The CLI's own slash commands in the composer, a quick chat in a side panel for a throwaway question, and a queue that holds what you send while Claude is still working
Questions come as forms
When Claude needs something it asks in the chat: choices, text fields, toggles, and longer questions as pages you move through. Its replies carry galleries, audio, PDFs, live previews and blocks it draws
Background agents
A long job runs as agents of its own, each showing its name, model and effort, listing the subtasks it walks through and reporting back in the chat when it finishes
Persistent sessions
A chat can keep its session alive while it is open: Claude answers without starting up first, a command it leaves running carries on between messages, and what arrives in between shows up as it lands. You choose how many live at once and how long they wait
Mods
Claude Code mods inside the app, drawn the way Claude Desktop draws them: their panes in tabs of the right panel and their band above the composer in a persistent chat, their status line and notices in any chat. Each one's card says in plain words what it reaches, and when Claude writes one, it asks before turning it on
Attachments and dictation
Send any file or photo from your device, or take one with the phone's camera, and it lands on the PC before the prompt runs; images reach Claude as real vision input. The microphone writes what you say into the composer
Rewind
Take a conversation back to an earlier point, preview exactly what would change on disk, and choose whether the conversation alone rolls back or the code with it
Tabs
Several chats open at once, each with its own session, project and environment. A tab bar on desktop, a switcher on mobile, and they come back where you left them
Projects and categories
Categories for the chats, owned by one project or shared by all of them. Move one between projects, or make it shared, from its own menu
Files
A file manager over the shared folder, with a folder of its own per project: upload with per-file progress, create, rename, sort, multi-select, and preview in place, from images with zoom to Markdown, source code and HTML
Files without a copy
A reference to a file where it already lives, badged in the chat: open, download, rename, move or compress the real one. The project explorer sends any file of the repository the same way
Project files and git
The project tree in the side panel: search it, unfold an archive like any other branch, open a file read-only while Claude edits it, and read the change on its numbered lines. A bar below carries the branch, what goes in the commit, a message Claude writes, the history, and pull or push
Notes
As many notes as you want, as cards or as a list, in a Markdown editor with a live preview, task lists and undo. Save, export or share each one as a file, and what you type stays between sessions
Terminal
Shells on the machine hosting the backend, each in its own tab named after the program running in it, with its shell's icon. They run on the server, so closing the app does not take them down, and a key the server prints is the only gate
SSH hosts
A lightweight SSH client for the targets you save: address, port and the credentials you log in with, then an embedded terminal with a keepalive
Browser
A browser in the right panel, on this device with the system's own engine and an ad blocker, or in the server's Chrome, which reaches its localhost and keeps your session. In the server's, Claude opens pages, reads them and screenshots them while you watch, and the element you pick lands in the composer
Monitor
CPU, GPU, memory and storage as live graphs, with VRAM and temperature on NVIDIA cards, the server's own logs streaming in, and a remote restart of the backend
Network
Whether the machine really has internet, live upload and download, every interface, the Wi-Fi networks in range and a speed test. A change that would strand it is refused outright
Discord
The desktop app can show on your profile what you are working on: the action, the elapsed time, the model, the environment. Each piece is a switch of its own and the content never goes out
Claude Code, managed from the app
The CLI
See the active version, switch where it comes from, update it and read the official changelog without leaving the app
Plugins, MCP and skills
Browse all your marketplaces in one catalog, each able to refresh itself, and install plugins, then enable, update or uninstall them. Add and remove MCP servers, with the token, API key, header or environment variables each one asks for, read the skills they provide, and view or delete Claude's memories, globally or per project
Accounts
Several Claude logins on one backend, signed in from the app itself. They share history, plugins and skills, so switching only changes who pays for the turn. An account exports as a small zip of its credentials and settings, and imports into a new one
Model providers
An account can point the CLI at an address of your own instead: a model served by Ollama on your machine, or a gateway like OmniRoute standing in front of hundreds. The models it serves become the list you pick from, effort levels and context window included
Plan usage
Your subscription tier and a bar per limit window, the current session, all models and the per-model weekly caps, each with its reset time, and extra usage with what you have spent out of your limit
Instructions and context
Standing instructions edited from the app that ride along every conversation, on top of the conventions the backend already ships with. You also pick whether Claude reads CLAUDE.md or AGENTS.md as the project's instructions, and how full the context gets before it is compacted
Built-in helpers
The backend wires a few of its own into the agent. Ask how the README you left running in another project is going and it summarises that session without you having to open it, or ask for what was said earlier in the chat and it reads it back, even from before a compaction
How you reach your PC
Local
The backend listens on port 8723 with no auth. From the same machine that is localhost; from another device it is the PC's tailnet address, with Tailscale signed in on both
Tailnet only
One command serves the backend over HTTPS at your tailnet address, with a real certificate and no token, reachable only from the devices signed into it
Tailscale Funnel
One flag publishes the backend over HTTPS, generates the token, prints the URL and a scannable QR to pair the phone with, and closes the funnel again on exit
Your own proxy
Behind Caddy or nginx on a VPS: the same URL, token and QR, but the HTTPS comes from the proxy you already run. One machine can serve several backends, each with its own hostname and token
Environments
Each saved server carries its own colour, which takes over the app while it is the active one. A padlock pins the machine and the project, and every picker that would switch them goes quiet
Started for you
The desktop app can launch the backend itself, from the installed cconnect command or from a copy of the repository: point it at what to run, pick the mode, and it comes up on startup with its status in view
Releases and source
Every build that has shipped, and the code behind them
Privacy and terms
What the app does with your data, and the terms you use it under