Android, desktop and browser

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 development

Android / 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 | sh

Already have uv?

uv tool install cconnect

When 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

WebOpen

Runs in the browser, or installs as an app

Reading the latest release

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