This guide follows the primary spec experience: run the interactive TUI,
complete onboarding, and work from the dashboard. You only need a terminal,
Git, and access to your team's specs repository.
If you administer the team repository or integrations, use the Configuration reference after this guide.
# Homebrew
brew install aaronl1011/tap/spec
# Or Go 1.25.8+
go install github.com/aaronl1011/spec@latestCheck the binary:
spec versionAsk your team for the specs repository reference. It may look like:
acme/specs
github.com/acme/specs
gitlab.com/acme/specs
https://bitbucket.org/acme/specs
Export the matching access token before starting. It needs read/write access
because spec commits workflow changes back to this repository.
export SPEC_GITHUB_TOKEN="..."
# or SPEC_GITLAB_TOKEN / SPEC_BITBUCKET_TOKENYou can also paste the token into onboarding's password field.
specOn a new machine, the interactive wizard appears automatically.
Enter:
- name — shown in activity and decisions;
- role —
pm,tl,designer,qa, orengineer; - spec handle — a stable local identity such as
ada(optional during onboarding, editable later in Settings).
Your personal config is written to ~/.spec/config.yaml. It is local and must
not be committed.
Choose Join an existing specs repo, then enter:
- the repository reference;
- its branch (defaults to
main); - an access token, or leave the field blank to use the exported variable.
spec clones and validates the repository at
~/.spec/repos/<owner>/<repo>/, then opens the dashboard without restarting.
Creating a team? Choose Create a new team. The wizard hands you to the advanced setup path; run
spec config initin the repository that will ownspec.config.yaml. Continue with Create a team.
The TUI has six persistent views:
| Key | View | Purpose |
|---|---|---|
1 |
Dashboard | Your DO, REVIEW, INCOMING, and BLOCKED queues |
2 |
Pipeline | Every active spec grouped by stage |
3 |
Specs | Active and archived spec browser |
4 |
Triage | Lightweight incoming work |
5 |
Reviews | Pull requests awaiting review |
6 |
Settings | Personal identity, theme, refresh, mouse, editor |
Common controls:
j / k or arrows move
enter open or select
tab / shift+tab cycle views
? contextual help
/ search all specs
r refresh
esc back; press twice at top level to exit
ctrl+c exit immediately
Open ? whenever a screen feels unfamiliar. Help changes with the current
view and with reader modes such as thread focus, composing, and anchor picking.
- Press
3for Specs. - Move to a spec and press
enter. - Read the overview: metadata, stage, ownership, progress, and sections.
- Press
oto open the reader.
Reader navigation:
| Key | Action |
|---|---|
[ / ] |
Previous / next section |
1–9 |
Jump to a section |
g / G |
Top / bottom of the section |
n / p |
Next / previous matching thread across the document |
t |
Show or hide the thread pane |
T |
Cycle pane size: peek, review, conversation |
tab |
Focus prose or thread pane |
o / esc |
Return to overview |
The section list shows open-thread counts. Gutter markers connect discussions to their paragraph, list item, table row, or code block.
Press a, type the question, then ctrl+s to send. Enter inserts a newline;
esc cancels.
- Press
A. - Move block by block with
j/kor the arrows. - Press
enterto choose the highlighted block. - Type the question and press
ctrl+s.
Press s in pick mode to ask on the whole section instead, or esc to cancel.
With a thread selected:
rreplies;xresolves;utoggles read/unread;fcyclesopen,all,mine, andunreadfilters.
Unread state is personal to your identity on this machine. It is not committed to Git.
From any top-level view:
Press i to open the triage form. Fill in title, priority, and optional source.
Use tab to move fields; enter advances from title, cycles priority, and
submits from the final source field. Press esc to cancel.
Triage is for work that still needs classification. In the Triage view,
press enter or space to inspect an item. Depending on your role you can add
a note (n), edit (e), close (c), escalate (x), or promote it (p).
Press n, enter a title, and confirm. spec assigns the next ID, scaffolds the
standard template, commits it, and refreshes the views.
Use this when the work is already understood well enough to enter the team pipeline.
Select a spec in Dashboard, Pipeline, or Specs. The main lifecycle keys are:
| Key | Action |
|---|---|
g c |
Claim or assign |
f |
Focus / unfocus |
e |
Edit in your configured editor |
a |
Advance after validating gates |
v |
Revert to an earlier stage with a reason |
x |
Block with a reason |
u |
Resume a blocked spec |
c |
Record a decision |
b |
Start or resume an agent build |
d |
Draft an empty section, then accept / retry / edit / skip |
p |
Push local spec changes |
s |
Publish/sync through the docs integration |
g a / g r |
Archive / restore |
Actions that move or remove work ask for confirmation. Errors appear in the
status bar; press E to expand a long error.
Press f on a spec to make it your working context. Shell commands then infer
the ID:
spec status
spec validate
spec build --check
spec doFocus persists across TUI sessions.
The TUI starts and resumes builds, while the detailed plan editor remains a command workflow.
spec focus SPEC-042
spec plan add "Add token-bucket limiter" --repo api-service
spec plan add "Add integration tests" --repo api-service
spec plan ready
spec build --checkspec build --check validates the plan, workspace paths, routed skills, agent
capabilities, and completion strategy without launching an agent.
Back in the TUI, select the spec and press b. The confirmation tells you which
agent will launch. spec build assigns the spec to you when appropriate,
provisions isolated worktrees, records durable progress, and can resume later:
spec doFor agent-harness authors, the MCP contract is documented in Agent integration.
Press 6 for Settings. Select a field and press enter to edit:
- name, role, and spec handle;
- theme (previewed live);
- refresh interval;
- mouse support;
- editor.
For enums use space, l, and h; press enter to save or esc to cancel.
Changes apply immediately and write to ~/.spec/config.yaml.
The integration rows and config paths are read-only. Team integrations and
pipeline behavior are shared configuration; an administrator changes those in
spec.config.yaml and validates with spec config lint.
Stay in the TUI for ordinary human work. Reach for a command when you need:
- exact flags or automation;
- detailed build-plan editing;
- CI or JSON output;
- team configuration and integration diagnostics;
- MCP or headless agent integration.
Useful checks:
spec whoami # resolved identity, team, and config paths
spec config lint # structural and semantic config diagnostics
spec config test # show which config and integration categories are present
spec config check # live PM/Jira preflight and workflow statuses
spec pipeline presets # inspect built-in pipelines
spec --static # non-interactive dashboard renderEvery command has targeted help:
spec --help
spec build --help
spec sync --helpIt requires an interactive terminal. Run plain spec without piping or
redirecting output. In CI or a pipe, spec renders a static dashboard instead.
Manual fallbacks:
spec config init --user
spec join acme/specsExport the provider-specific variable or paste the token into onboarding:
export SPEC_GITHUB_TOKEN="..."Legacy variables such as GITHUB_TOKEN still work with a deprecation warning.
Run spec and join the team, or use spec join <repo>. A valid team repository
must contain spec.config.yaml at its root.
The stage's gates are not satisfied. Select the spec and press a to see the
error, or inspect all gates explicitly:
spec validate
spec pipeline --verbosespec config test reports configured categories; it does not call remote APIs.
Run spec config check for the implemented live PM/Jira preflight and inspect
provider warnings when spec starts. See Configuration.
Check your role, handle, and provider identities:
spec whoamiEdit name, role, and handle in Settings. Provider-specific identities and
advanced preferences live in ~/.spec/config.yaml.
- TUI guide — complete keyboard and workflow guide
- Configuration — create a team, integrations, pipelines
- Team contract — collaboration conventions