Back to OneCue

Docs.
Install, and every command.

No account, no cloud, Node 20+. Everything below is copy-paste runnable.

Install

CLI 0.4.0 on npm. One command. No account, no cloud. Requires Node 20+.

curl -fsSL https://onecue.sh/install.sh | sh

Or with npm, then wire it into the repo:

npm i -g onecue-cli
cd your-repo && onecue install

Skill only, for any agent:

npx skills add onecueai/onecue-skill

Commands

onecue init
Create the git-visible .onecue/decisions/ store
onecue install
Install skill + hooks for detected agents [--harness claude,devin,cursor,codex]
onecue uninstall
Remove only OneCue's hooks (decisions are kept)
onecue status
Initialization, hooks, and decision counts
onecue statusline
One-line status for the agent status bar (decisions, cues this session, local)
onecue doctor
Diagnose the setup, decision graph, and spend report [--json]
onecue bench
Run the decision-selection benchmark [--json]
onecue remember <text>
Record a decision [--kind …] [--reason …] [--files a,b] [--rejected] [--rules-out a,b] [--supersedes <id>] [--conflicts-with <id>]
onecue recall <context>
Print the cue this context would surface [--json]
onecue list
List decisions [--kind <k>] [--json]
onecue show <id>
Show one decision (id or prefix)
onecue forget <id>
Tombstone one decision (file kept, excluded from recall)
onecue hook <event>
Invoked by the agent harness, not by hand

A decision file

Plain Markdown under .onecue/decisions/, committed with your repo. Named <ISO-timestamp>-<kind>-<uuid8>.md. Session logs stay out of git under ~/.onecue/projects/<fingerprint>/.

---
kind: "decision"
outcome: "rejected"
reason: "Redelivered webhooks double-charged a customer."
files: ["src/webhooks/stripe.ts"]
---

Claim the Stripe event id in processed_events before
applying a payment. Retries redeliver the same event.

The decision guard

Recall reminds. The guard enforces. Before a tool writes code that re-introduces a rejected approach, OneCue asks — with the decision and its reason. Silent on every unrelated edit.

▲ OneCue — this change re-introduces "redis", which
  this project rejected. "Keep Postgres SKIP LOCKED for
  the queue; Redis reconnects duplicated jobs."
  Proceed only if you are explicitly revisiting it.

Decision kinds

decision
a choice with the reason it was made, and what it rules out
insight
a non-obvious lesson or root cause
open_loop
unfinished work or a pending constraint
discovery
an undocumented fact about the repo or system
reference
an external pointer with a known future use

Prefer a guided walkthrough?

Start guide