@sitra-dev/cli
v0.1.0
Published
Sitra CLI — orchestrates Claude agents to ship Next.js apps from a one-sentence brief.
Downloads
146
Maintainers
Readme
@sitra-dev/cli
The Sitra CLI — orchestrates Claude agents to ship Next.js apps from a
one-sentence brief. Binary is sitra. Internally the package directory
is packages/covenant/; the cult vocabulary (Abbot, Scribe, Tribunal,
rite, doctrine) lives there.
⚠ v0.1.0 precondition: pnpm monorepo
v0.1.0 of the CLI orchestrates rites that scaffold Next.js apps under
apps/<slug>/ and deploys them via pnpm turbo build --filter=....
It currently requires that you run it from inside a pnpm workspace
laid out like the Sitra repo itself:
pnpm-workspace.yamldeclaringapps/*(and ideallypackages/*)turbo.jsonat the repo root- A root
package.jsonwithpnpmas the package manager - At least one git commit (rites use
git worktree add HEAD) pnpm-lock.yaml(preflight requires it)
If you don't have one of those, the easiest path is to fork
KyleKilbride/sitra and treat
that as your starter — the CLI is published to the same monorepo it
was built in. A sitra init --bootstrap-monorepo flag that scaffolds
all of this is on the v0.2.0 roadmap; until then, bare npm install -g
into a flat project will not work end-to-end.
Install
npm install -g @sitra-dev/cli
# or: pnpm add -g @sitra-dev/cli
# or: yarn global add @sitra-dev/cliRequires Node ≥ 20.11. ANTHROPIC_API_KEY is required for any rite to
run; VERCEL_TOKEN is required for auto-deploy.
Quick start
Inside a Sitra-style pnpm monorepo (see precondition above):
sitra init # interactive: writes sitra.config.json + .env.local
sitra preflight # validate keys, DNS, git, lockfile
sitra invoke "build a URL shortener with click analytics"CLI
sitra invoke "<brief>" # summon a rite
sitra invoke "<brief>" --app <slug> # iterate on an existing app
sitra invoke "<brief>" --budget-usd 3 # cap spend
sitra invoke "<brief>" --plan-only # stop after the Doctrine
sitra invoke "<brief>" --max-iterations 90 # raise Scribe tool-loop cap
sitra preflight # gate before any rite
sitra init # interactive workspace bootstrap
sitra ledger # cumulative spend
sitra codex # append-only memory
sitra recant <rite-id> # abort + preserve artifactsPrimitives (programmatic API)
| Primitive | Role | Model |
|---|---|---|
| abbotOrdain | Plans a rite; decomposes brief into tasks; replans on retry with AbbotFeedback | Opus 4.7 |
| scribeToil | Implements one task in a git worktree, TDD, bash tool loop | Sonnet 4.6 |
| tribunalJudge | Three-persona review, unanimous approve | Sonnet 4.6 ×3 |
| integrate | Merge worktree diffs (passthrough for N=1; multi-scribe merge with branch restoration) | — |
| ascend | ensureProjectAndDomain → git push → triggerAndVerify | — |
| orchestrate | Wraps the whole pipeline with preflight gate, budget gate, retry loop (≤3 cycles), worktree cleanup | — |
Utilities: appendCodex, appendLedger, newRiteId, writeArtifact
(cycle-aware), validateVercelToken, readScripture.
Customizing agents
Each agent's system prompt is a markdown file under scriptures/,
bundled with the package. To customize an agent in your workspace, place
your own version at ./scriptures/<name>.md (e.g. ./scriptures/abbot.md).
The CLI logs ◇ scripture override in use: scriptures/<name>.md once per
rite so the customization is visible.
Security
The Scribe runs bash on your machine. Source files in iterated apps and
tool output stream to Anthropic. Read SECURITY.md
before your first rite. sitra init walks you through the operator
obligations and requires explicit acknowledgment.
Status
v0.1.x — pre-1.0. Working end-to-end against Anthropic + Vercel. APIs and CLI flags may break between minor versions; no deprecation window is promised until v1.0.
License
MIT.
