Documentation
CLICommands

ox plan

Work with SageOx-enriched plans: design, GTM, rollout, engineering, any plan your team executes against. Enrich, render, review, and save. ox computes team-context signals (collision, prior-art, expert-routing) locally, with no LLM or network call.

Lifecycle verbs (approve, work, realize, abandon, supersede) are thin sugar over one event-log engine. Each accepts --json and is idempotent: re-running an already-applied verb is a safe no-op.

Usage

terminal
$

Subcommands

CommandDescription
ox plan enrichEnrich a plan with SageOx team context (JSON by default)
ox plan renderRender a plan to a self-contained HTML page
ox plan reviewOpen a live review loop for a saved plan (serve, collect, auto-reload, approve)
ox plan review awaitBlock until reviewers submit feedback, then print open items as JSON (agent loop)
ox plan saveSave a plan, mockup, or review page to the Ledger and share it
ox plan listBrowse saved Ledger plans
ox plan viewRead a saved plan in the terminal
ox plan statusShow a saved plan's lifecycle timeline and current status
ox plan approveMark a saved plan approved
ox plan workRecord that a coding session worked on a saved plan
ox plan realizeMark a saved plan realized (its intent was carried out)
ox plan abandonMark a saved plan abandoned
ox plan supersedeMark a saved plan superseded by a successor plan

Examples

terminal
$

Consult team context before drafting a plan. Returns JSON badges (collision, prior-art, expert-routing) at zero LLM and network cost. Add --text for a human-readable summary.

terminal
$

Enrich an existing plan document (or pipe one on stdin). With no input, ox auto-discovers the newest ~/.claude/plans/*.md.

terminal
$

Render a plan to a self-contained HTML page and open it in your browser. On a saved plan, --open launches the live review loop, pass --static for a read-only page instead.

terminal
$

Serve a saved plan on a short-lived localhost server and stay up across review rounds. Reviewers mark up sections, risks, and decisions; each round writes to the Ledger and prints a digest for the agent.

terminal
$

The agent side of the review loop: it blocks until any reviewer leaves open feedback, prints the open items as JSON, and exits. It exits with status timeout when nothing arrives within --timeout, or approved once a reviewer approves the plan. Because it blocks, confirm with the user before an AI coworker enters the loop.

terminal
$

Save a plan to the Ledger, push it, and print its share link. Prefer an authored self-contained HTML page as the plan of record; a .md file works for quick plans. Re-saving a slug that names an existing open plan records a new revision with the same ID and link.

terminal
$

List every saved plan, newest first, whatever its status. Narrow the list with --limit N, --since, and --until, which accept a duration (30m, 2h, 7d, 1w), an RFC3339 instant, or a date (2026-10-01).

Flags

ox plan save

FlagDescription
--file stringThe plan of record: an authored self-contained .html page (preferred) or a .md quick plan
--slug stringSave as this plan slug; an existing open plan with this slug gets a new revision
--kind stringWhat the artifact is: plan (default), mockup, review, or evidence
--annotations stringMerged annotations.json; optional with --file, which self-enriches
--jsonEmit the saved plan's ID, URL, revision, and share status as JSON

ox plan save always saves, whatever the plan.save config says. When the plan saves locally but is not pushed, it says so on stderr (and under share with --json) and prints the command that fixes it.

ox plan list

FlagDescription
--limit intShow at most N plans, newest first (0 = no limit)
--since stringOnly plans saved at or after this time
--until stringOnly plans saved before this time; a bare date includes that whole day
--jsonEmit the plan list as JSON

What's next

  • ox pr - Emit a PR header that links the plans a change produced
  • ox viz - Author the visualizations a rendered plan can embed
  • ox session - Sessions record which plan they worked on