Minimal terminal coding agent + multi-provider LLM toolkit. TypeScript monorepo.
| Package | CLI | Purpose |
|---|---|---|
| v2 core (load-bearing): | ||
packages/coding-agent |
caveman |
Coding agent: sessions, extensions, skills, themes, slash commands, subagents |
packages/ai |
pi-ai |
Unified LLM API: OpenAI, Anthropic, Google, more |
packages/agent |
— | Agent runtime: tool calling, loop, state, system-prompt/toolFilter/maxTurns |
packages/tui |
— | Terminal UI: differential rendering, chord input, notifications |
packages/sdk |
— | @juliusbrussee/caveman-sdk — TS client for caveman-code daemon HTTP+WS API (openapi-generated) |
packages/markdown-preview |
— | Markdown renderer used by TUI |
Out of scope for v2 (separate product surfaces, kept independent):
| packages/web-ui | — | Web components for AI chat |
| packages/mom | mom | Slack bot → delegates to coding agent |
| packages/pods | cave-pods | vLLM deployment on GPU pods |
npm install # install all deps
npm run build # build all packages
npm run lint # biome lint
npm run format # biome formatSee context/CLAUDE.md. The active plan is context/plans/cave-v2-best-in-class.md.
Legacy CaveKit kits/plans/impl have been moved to context/archive/.
- Biome for lint/format (not ESLint/Prettier). Config:
biome.json. - TypeScript strict. Shared tsconfig:
tsconfig.base.json. - Package scope:
@juliusbrussee/caveman-*(all packages on npm). Main CLI package:@juliusbrussee/caveman-code. Bin registerscavemanANDcaveman-codealiases. - Node.js 20+.
- No permission system. Sandbox/permissions/approval-prompts stripped on
branch
strip/permissions. Caveman Code runs autopilot. Don't reintroduce. See memoryfeedback_no_permissions. - Plan mode wired.
/planenters read-only chat mode (no edits, no shell writes);/actexits. Slash command atpackages/coding-agent/src/core/slash-commands/plan.ts. Plan-mode gating also enforced inside the Task tool for spawned subagents. - Subagents. Registry +
SendMessagetool in coding-agent. Subagent isolation honored by Task tool. Agent definitions usetoolconstraints instead of removedpermissionModefrontmatter. - AgentSession features: checkpoints, repomap, chat mode, soft compaction,
hooks, MCP, skills, recipes,
/clear,/quick-open,/task-list. - Goal loop (in-flight, untracked):
packages/coding-agent/src/core/goal-loop/—goal-runner,goal-state,goal-prompts. Not yet committed; dev work onstrip/permissions. - Walkthrough doc:
context/notes/agent-loop-walkthrough.mdtraces the full path fromcavemanboot →interactive-modedispatch →session.prompt→agent-loop.runLoop. Read this first when touching the loop.
- Read package-specific CLAUDE.md before touching that package.
- Before building from scratch, run the pi-check: search
pi-codeupstream, thepi-*npm scope, and pi extensions for an existing module. Vendor or wrap if found. Note "borrowed from pi: " in the deliverable. See plan §0. - CaveKit (
@juliusbrussee/caveman-cavekit) has been removed; replaced by plan mode (read-only exploration), markdown skills, and recipes. - Don't add per-file "inspired by hermes-agent" attribution comments even when
a plan/kit suggests it (memory
feedback_no_hermes_inspired_comment).