Self-hosted, vendor-neutral control plane for your local coding agents (Claude Code & Codex). Run your agents, on any plane.
# Add to your Claude Code skills
git clone https://github.com/OneCuriousLearner/anyplaneLast scanned: 10/7/2026
{
"issues": [
{
"file": "README.md",
"line": 53,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://anyplane.run/install.sh | sh\"",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-10-07T10:53:42.747Z",
"npmAuditRan": false,
"pipAuditRan": true,
"promptInjectionRan": true
}See how anyplane compares with popular alternatives.
anyplane is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by OneCuriousLearner. Self-hosted, vendor-neutral control plane for your local coding agents (Claude Code & Codex). Run your agents, on any plane. It has 139 GitHub stars.
Yes. anyplane passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/OneCuriousLearner/anyplane" and add it to your Claude Code skills directory (see the Installation section above).
anyplane is primarily written in TypeScript. It is open-source under OneCuriousLearner on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh anyplane against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
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 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.
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.
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.
Prerequisite: a logged-in official claude CLI on your PATH (the Codex backend additionally needs codex CLI ≥ 0.147). No Bun/Node needed for the native install:
Windows (PowerShell):
irm https://anyplane.run/install.ps1 | iex
Linux:
curl -fsSL https://anyplane.run/install.sh | sh
The installer downloads a single self-contained binary (Bun runtime + prebuilt frontend embedded), verifies its SHA256, adds it to your user PATH, and — on Windows — creates Start Menu/desktop shortcuts (double-click to launch). Linux: add --service to also register a systemd user unit (autostart on login). Then open a new terminal and run anyplane — the server starts on http://localhost:7480 and opens your default browser. Pass --no-open (or ANYPLANE_NO_OPEN=1) to skip. Config and runtime data live in ~/.anyplane/.
Update = re-run the same one-liner (anyplane also tells you when a newer release exists). The binary is unsigned for now — one SmartScreen prompt on first launch is expected (signing is a TODO). macOS is not published yet (TODO).
With Bun ≥ 1.4.0 you can skip installing entirely:
bunx anyplane
bunx / npx cache the first download — refresh with bunx anyplane@latest (or npx anyplane@latest). Global installs: npm i -g anyplane@latest. 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
Single-stage image with Bun and both CLIs baked in — no local Bun/Node required:
docker build -t anyplane .
docker run -d --name anyplane -p 7480:7480 \
-e ANYPLANE_TOKEN=<at-least-32-random-chars> \
-v anyplane-data:/root/.anyplane \
-v anyplane-claude:/root/.claude \
-v anyplane-codex:/root/.codex \
-v "$HOME/projects:/root/projects" \
anyplane
The image binds 0.0.0.0 by default, so ANYPLANE_TOKEN is mandatory (the server refuses to start otherwise — fail-closed). Mount any project directories you want to open sessions in (they must be visible inside the container). The baked-in CLI versions default to the ones this repo was verified against (the protocol-drift CI keeps them current); override at build time with --build-arg CLAUDE_CODE_VERSION=latest etc.
Credential directories — pick one:
docker exec -it anyplane claude auth login / codex login. For Claude with an API key, skip the volume entirely: -e ANTHROPIC_API_KEY=....-v "$HOME/.claude:/root/.claude" etc.) to share the host login — but the container CLIs can write there: a newer container CLI may migrate the host's config/state forward (Codex's versioned sqlite state especially), breaking an older host CLI. If you do this, pin the image CLIs to your host versions via --build-arg.On Windows, Docker Desktop runs this Linux image as-is (no Windows-native image needed); PowerShell volume syntax: -v "$env:USERPROFILE\.claude:/root/.claude".
Running AnyPlane means exposing "start a session on this machine" to whoever can reach the port — and starting a session is equivalent to arbitrary command execution. Take the bind address seriously.
127.0.0.1 only by default.0.0.0.0) requires authToken, or the server refuses to start.bun run public-access funnel | cf-quick | caddy <domain> (refuses to run without an authToken).anyplane.config.json in the project root or ~/.anyplane/config.json — both optional.
{
"port": 7480,
"host": "127.0.0.1",
"authToken": "change-me",
"permissionPolicy": "ask"
}
permissionPolicy: "ask" (default, forwards approvals to the UI) or "bypass" (fully automatic — use with care)./btw, goals) need Claude CLI ≥ 2.1.139.~/.anyplane/reasoning/.~/.anyplane/ is never cleaned automatically — it's yours to manage.docs/ — see docs/README.md for the map. Don't commit machine-specific paths or secret locations; use *.local.md (gitignored) if you must.server/scripts/ and require a running server plus the real CLIs.bun run docs:claude / bun run docs:codex.MIT. Formerly cc-remote.