Open source · Unopinionated · Self-hosted

Your agents. Your machines.
Your workflow.

A self-hosted web app and CLI for running Claude Code, Codex, OpenCode and pi across your own machines, on the subscriptions you already have.

casm · web app
casm web app showing agents grouped by host and project, a code change, tool results, and a message composercasm web app in dark mode showing agents grouped by host and project
The same agent's transcript and composer on a phoneThe same agent on a phone in dark mode

The actual casm web app with example projects, on desktop and phone.

Your agents

The coding agents you already use, on your existing subscriptions.

Host usage panel showing Claude and Codex subscription windows, percent used and reset times
Usage panel: subscription windows per provider. A message that hits a limit waits for the reset.

Your logins, your plans.

Each agent uses the sign-in its CLI already has. casm never asks for a provider API key and has no usage fees of its own.

Requests wait for you.

Permission and question requests appear where you are and wait for you. Each provider keeps its own permission model.

Native sessions.

Sessions started through casm live in the provider’s own store, so you can resume them directly in Claude Code, Codex, OpenCode or pi.

Your machines

Self-hosted. One server per machine, connected as peers.

studio, online
buildbox, online
Each machine is a host in the sidebar.

Peers, no central service.

Connect hosts over a network you trust and send commands between them. No casm account, no relay, no telemetry.

State stays on the host.

Repositories, files and native sessions never leave their machine. Peers forward commands and events, not your code.

Work keeps going.

Close the browser and agents carry on. Queues, schedules and notifications run on the host, so keep that host running.

Your workflow

Two primitives and a few tools on top. No prescribed process.

Project is a directory.

Agent is a coding agent working in it.

What casm adds

Agents can run agents.

An agent can spawn others, message them, steer them and wait for the result. Same commands as yours.

casm run / send / wait

Schedules.

An agent can message itself, or another agent, later or on repeat.

casm schedule add --at "in 2h" --agent reviewer "Check the build"

Notifications.

Sent only when an agent calls it, not on every reply.

casm notify "Deploy is waiting for your OK"
A lead agent starts agents on two hosts, waits for them and reports a status table
An agent splits a task across agents on two hosts, waits for them and reports back.

Install

Linux or macOS with Node.js 24+. The package includes the server, CLI and web app. Install and sign in to your coding-agent CLIs separately; casm uses the ones it finds on PATH.

Read the setup guide

Run it in the background with casm service install. Prefer a source checkout? See the README.

Install with npm
npm install -g casm-cli
casm serve

In another terminal, run casm token create web. Open localhost:7373 and paste the token.

FAQ

What does “fully self-hosted” mean?

You run the casm servers, own their state, and choose the network. There is no required casm cloud or account. Your agents still connect to their configured model providers; optional push notifications use browser push services.

Does casm move my code or sessions between hosts?

No. Peers forward commands and events. Repositories, files, and native provider sessions stay on their host. Use your existing Git and file-transfer workflow to prepare another machine.

Can I use it from my phone?

Yes. The web app works on mobile and can be installed as a PWA. Connect to your host through a private network or an HTTPS proxy. Agents run on the host, not on your phone.

What about permissions and local models?

casm uses each provider’s permission model; it is not a sandbox. OpenCode and pi can connect to local models. pi has no built-in permission system. See the provider feature matrix for the differences.