Deterministic, LLM-free task tracker CLI — the record layer coding agents and humans write to.
quest
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
> A deterministic, LLM-free task tracker CLI — the record layer coding agents
> and humans write to, and that tools like lore couple to over JSON.
quest is the tracker of record for repository-resident work: tasks, drafts,
decisions, and milestones live as plain JSON under .quest/, committed to Git
alongside the code they describe. There is no server, no database, and no LLM
in quest's core — every command is deterministic, reproducible, and
CI/agent-safe (non-interactive by default, stable semantic exit codes,
machine-readable --json).
- Built on **Bun + TypeScript** with an exact-pinned **Commander** parser; a
versioned capability manifest (quest manifest --json) is the live,
authoritative description of the command surface.
- Published on npm as **@opum-ai/quest** (bin quest) with six
exact-pinned platform packages, including Windows ARM64.
- The agent bridge is a generated managed block in **CLAUDE.md**,
**AGENTS.md**, or **GEMINI.md** (Claude Code, Codex/OpenCode/pi/etc., and
Google Antigravity/Gemini CLI respectively) plus quest instructions for
just-in-time, task-shaped guidance.
> **Status: released.** The release tag, the qualified workflow artifacts, all
> seven public @opum-ai/quest* npm packages, and a clean registry install
> agree on one published version. This file deliberately does not restate that
> number, and bun run check:packages fails the release if it reappears: a
> version hand-maintained here goes stale the moment the next release lands,
> and because README.md ships inside the tarball, the npm page then
> advertises the wrong one permanently -- version pages are immutable. npm and
> the repository's tags both show the current version already. Releases are
> qualified in lockstep with @opum-ai/lore. See
> docs/reference/quest-cli-release-truth.md.
---
The headline: every write declares who made it
quest never accepts an anonymous write. Every command that mutates a
record — task create, task edit, task complete, and the rest — requires
an explicit actor declaration:
or, when the actor performing the write is an agent rather than the human it
answers to:
A missing --actor-kind is rejected outright ("Tracker writes require an
explicit actor declaration"); an invalid value names itself and lists the
valid kinds. This is deliberate, load-bearing provenance, not an
afterthought — it is what lets a record say not just *what* changed but *who*
is accountable for it, which matters most exactly when the actor is an
autonomous agent.
Tools couple to quest the same way quest couples to Git: by reading its
deterministic JSON, never by parsing prose or editing .quest/ files
directly. lore is the reference consumer — see
Lore dependency and adapter contract evidence.
---
Install
The package and bin are @opum-ai/quest and quest:
The launcher installs only the matching script-free platform package for your
OS/architecture, so a current install requires no install-script approval
exception. There is no native addon and nothing to compile locally.
Or add it to a project:
The npm package is a dual artifact: a tiny Node .cjs launcher plus a
per-platform compiled binary (built with bun build --compile), delivered as
optionalDependencies — macOS, Linux, and Windows, each on x64 and arm64.