Skip to content

jodobear/csh

Repository files navigation

csh

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

Quick Start

Install dependencies and put csh on your PATH:

bun install
bun run csh install

The runtime expects bun, tmux, and python3 on the host.

Create a local config:

csh bootstrap

Check the environment and runtime:

csh doctor

Start the host:

csh host start

Run one command from another shell:

csh exec "pwd"

Open the interactive shell:

csh shell

Open the browser terminal:

csh browser

Inspect the resolved deployment/operator state:

csh status

Upgrade or remove the installed launcher later with:

csh upgrade
csh uninstall

If you prefer not to install a launcher yet, every command above also works as bin/csh ... from the repo root.

Recommended Use

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.

Repo Layout

  • bin/: public CLI entrypoints
  • src/: interactive server, ContextVM gateway, browser app, client code
  • scripts/: operational wrappers and verification helpers
  • ops/systemd/: example systemd unit for persistent host deployment
  • docs/: plans, process docs, research notes, guides, and transcript

Notes

  • 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 install writes a Bun-backed launcher into ~/.local/bin/csh by default.

For the current verified state and operational details, see handoff.md, docs/README.md, csh-cli-operations.md, and server-setup.md.

About

SSH over Nostr using ContextVM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors