csh is a private remote shell over Nostr built on ContextVM.
It currently provides:
- a repo-local
tmux-backed MCP server for interactive shell sessions - a ContextVM gateway that exposes that server over Nostr
- a CLI for bootstrap, host startup, one-shot exec, interactive shell, proxy checks, and browser access
- a browser terminal UI for operator use
Install dependencies and put csh on your PATH:
bun install
bun run csh installThe runtime expects bun, tmux, and python3 on the host.
Create a local config:
csh bootstrapCheck the environment and runtime:
csh doctorStart the host:
csh host startRun one command from another shell:
csh exec "pwd"Open the interactive shell:
csh shellOpen the browser terminal:
csh browserInspect the resolved deployment/operator state:
csh statusUpgrade or remove the installed launcher later with:
csh upgrade
csh uninstallIf you prefer not to install a launcher yet, every command above also works as bin/csh ... from the
repo root.
Use a relay you control for real operator work. The canonical deployment path lives in server-setup.md.
csh is intentionally a Bun-backed tool for now. Persistent deployment should use the existing
systemd example rather than a custom daemon layer.
- bin/: public CLI entrypoints
- src/: interactive server, ContextVM gateway, browser app, client code
- scripts/: operational wrappers and verification helpers
- ops/systemd/: example
systemdunit for persistent host deployment - docs/: plans, process docs, research notes, guides, and transcript
- The browser UI is operator-local and loopback-bound by default.
- Sessions persist across client reconnects and can survive host restart when the same runtime state is reused.
- The backend now uses PTY-attached tmux clients for terminal I/O while keeping tmux for session persistence. That materially improves interactive behavior, but it is still not the same as a native PTY session model end to end.
csh installwrites a Bun-backed launcher into~/.local/bin/cshby default.
For the current verified state and operational details, see handoff.md, docs/README.md, csh-cli-operations.md, and server-setup.md.