indifferentketchup 04673eaf59 v2.1.1: roadmap cleanup + README update + openspec archive
- Archive all 10 shipped openspec changes to openspec/changes/archived/
- Update boocode_roadmap.md: date, shipped status for v1.14/v1.15/v2.0, add v2.1.0 section
- Update README.md: 3-app monorepo, add services table, add What's shipped section
- Remove stale active openspec folders (all work shipped)
2026-05-25 20:23:22 +00:00
2026-05-14 19:24:50 +00:00
2026-05-14 19:24:50 +00:00

boocode

Self-hosted single-user developer chat app. 3-app monorepo: BooChat (read-only chat), BooCoder (write tools + agent dispatch), BooTerm (PTY terminals).

Stack

  • Node 20, Fastify, postgres (porsager/postgres), ws, zod
  • React 18, Vite, TypeScript, Tailwind v4, shadcn/ui
  • Postgres 16
  • pnpm workspaces

Layout

  • apps/server — Fastify API + WebSocket + inference loop + file-read tools
  • apps/web — React frontend; served by Fastify in production, Vite in dev
  • apps/booterm — Fastify + node-pty + tmux for in-browser terminal panes
  • apps/coder — Fastify write tools + ACP/PTY dispatcher + MCP server (BooCoder)

Local dev

Requires Node 20, pnpm, Docker (for Postgres), and ripgrep.

# install
pnpm install

# bring up postgres only
cp .env.example .env
# edit POSTGRES_PASSWORD if you like; default DATABASE_URL points at the container
docker compose up -d boocode_db

# run server (port 3000) and web (port 5173) in two shells
DATABASE_URL=postgres://boocode:devpass@127.0.0.1:5500/boocode \
LLAMA_SWAP_URL=http://100.101.41.16:8401 \
pnpm dev:server

pnpm dev:web

The Vite dev server proxies /api and /api/ws/* to the Fastify backend with a synthetic Remote-User: sam header so the Authelia auth layer can be skipped during development.

Production

cd /opt/boocode
docker compose up --build -d

Binds to 100.114.205.53:9500 (Tailscale). Authelia is expected to gate the upstream and inject Remote-User. Postgres binds loopback only.

Services

Service Port Description
BooChat 100.114.205.53:9500 Read-only chat + SPA
BooTerm 100.114.205.53:9501 PTY/tmux terminal panes
BooCoder host:9502 Write tools + agent dispatch + MCP server (systemd service, not Docker)
Postgres 127.0.0.1:5500 Shared database (boochat_db)
codecontext :8765 (internal) MCP server for architect tools

What's shipped

  • BooChat: streaming chat, file-read tools, compaction, reasoning support, HTML/Markdown artifact panes, cross-repo read grants, MCP client (Context7 + multi-server), tool-cost tracking, skills system, agent registry, provider picker with model discovery
  • BooTerm: in-browser terminal panes via tmux + xterm.js, per-session tmux sessions, SSH-out support
  • BooCoder: write tools (edit_file, create_file, delete_file, apply_pending, rewind), pending-changes queue with diff UI, ACP/PTY dual-path agent dispatch, MCP server (6 tools, stdio), CLI client, human inbox, Boomerang orchestration, path-guard fuzz suite
Description
No description provided
Readme AGPL-3.0 6.9 MiB
Languages
TypeScript 94.1%
CSS 2%
JavaScript 1.2%
Shell 0.9%
Go 0.7%
Other 1.1%