Anyplane

Self-hosted, vendor-neutral control plane for your local coding agents (Claude Code & Codex). Run your agents, on any plane.

LLM Mart
2 views 17 listing impressions

Run your agents, on any plane.

Let your agents keep working while you go live your life. When one needs you, the approval is already waiting on your lock screen.

anyplane.run · npm: anyplane

📄 中文版文档见 README.zh-CN.md

AnyPlane session view: project-grouped session list and a live conversation

AnyPlane is a self-hosted, vendor-neutral control plane for the coding agents already running on your machine. Open it from your phone or any browser to watch Claude Code and Codex sessions stream, approve the file writes and commands they ask for, and pick up conversations where you left them.

Why this exists

The official remotes (Claude Code Remote Control, Codex remote) require a claude.ai subscription and route your session through the vendor. They are unavailable if you use an API key, an LLM gateway, Bedrock, Vertex, or Foundry — and as of Claude Code v2.1.196, simply pointing ANTHROPIC_BASE_URL at a non-Anthropic host disables Remote Control entirely.

AnyPlane is the control plane for everyone in that gap: no account, no relay, no telemetry. Your transcripts stay on your disk, your vendor tokens stay on your machine, and Claude Code and Codex share one interface.

What you get

  • Watch agents from anywhere. Streaming output, tool calls paired into cards, background sub-agents in a side panel — on a phone screen, over your LAN or your own tunnel.
  • Rule on approvals from the lock screen. When an agent wants to write a file or run a command, a push notification carries a one-tap capability secret. On Android and desktop Chrome you approve or deny straight from the notification buttons. On iOS, where Safari ignores notification actions, the tap opens a two-button confirm page instead — either way you never load the full app.
  • Two runtimes, one interface. Claude Code and Codex sessions are grouped by project directory and resumed with full context. The same gestures work on both.
  • Approval rules, not just afk/yolo. Auto-allow or auto-deny by tool, command prefix, or working directory; everything else still asks. Every automatic ruling is broadcast and logged.
  • Notifications that actually reach you. Web Push (VAPID and aes128gcm implemented in-house, no push SDK), plus ntfy, Bark and Server酱 webhook channels for environments where FCM isn't an option.
  • Rewind, branch, hand off. Roll back a conversation or the files it touched, fork a session with its full history, or have one agent hand a summarized brief to another.

How it works

AnyPlane does not patch or wrap the official CLIs. The server drives each vendor's own headless protocol as a subprocess — Claude Code over stream-json NDJSON (the same local protocol claude.ai/code uses to bridge your CLI), Codex over its app-server JSON-RPC. Codex events are translated server-side into the Claude stream-json message shape, so there is exactly one message boundary and the frontend never forks.

Quick start

You need Bun ≥ 1.4.0 and a logged-in official claude CLI on your PATH. The Codex backend additionally needs codex CLI ≥ 0.147.

bunx anyplane

Open http://localhost:7480. The frontend ships prebuilt in the npm package — no clone, no build step. Config and runtime data live in ~/.anyplane/.

Don't have Bun? npm i -g anyplane and npx anyplane work too — they'll tell you how to install Bun if it's missing.

Running from source (Bun only — do not use npm / yarn / pnpm):

bun install
bun run build && bun run start   # production
bun run dev                      # server + Vite HMR

Docker

Single-stage image with Bun and both CLIs baked in — no local Bun/Node required:

From the project's README.

Comments (0)

Sign in to join the conversation.

No comments yet.

Related tools