Coding agents talk to nitpin through the nitpin MCP server — wired in by
nitpin init (per repo) or nitpin install (user-global) and started automatically
by the agent. This page is the tool surface, for the curious and for anyone building
their own agent integration.
The server resolves its project from the directory the agent runs in — the repo’s
.nitpin/ store, its nitpin.yaml link, or the app’s active project — so the same
tools work in any wired repo.
The backlog: number, title, state, tags, priority, sub-issue counts, any active claim, split lineage. Filters compose — by state (unresolved, in_progress, resolved, wont_fix, split), hiding claimed issues, or by #word tag.
peek_issues(numbers)
A token-lean, text-only view of specific issues — notes, statuses, anchors — without images. The cheap way to survey.
get_issue(number, image?)
One issue in full: body, sub-issues with anchor geometry and (for Live captures) CSS selectors, the comment thread, and imagery. image is focused (default — a crop per anchored sub-issue plus a downscaled overview), full (the whole clean frame), or none. Pasted reference images ride along, labeled.
get_issue_rendered(number)
The same issue with the whole annotated frame — every badge drawn — for when one view of everything beats crops.
Mark one sub-issue fixed or wont_fix, with a short note for the thread, the commit that carried the fix, a self-rated confidence (high/medium/low), a machine-readable revert hint, and optional model/token receipts. Releases the caller’s claim; returns the issue’s new rolled-up state.
reopen_sub_issue(issue, sub_issue, note?)
Return a reverted sub-issue to the open backlog, clearing its stale fix metadata. The last step of a revert — the code must already be reverted.
add_comment(issue, text, sub_issue?)
Join the discussion thread — the agent’s voice for questions and context (your captured words are never edited).
suggest_issues(issue, suggestions)
File out-of-scope improvements as pending suggested issues against the issue being worked — each with a title, notes, and optional pins/regions on the source capture. Pending until you accept them in the Cockpit.
Hand work back (idempotent; an agent can only release its own claims).
post_progress(issue, sub_issue, text)
The one-line, present-tense status you see live in the Cockpit — overwritten on every call, tied to the claim, gone when the work is done.
Claims renew themselves server-side — agents never heartbeat — and expire on their
own if an agent dies. In a one-at-a-time project, the server grants nothing while
any other agent holds a claim. See Claims & Parallel Agents.
Write a triage pass: the clusters (in priority order), your surviving corrections, and per-sub-issue briefs (size S/M/L/XL + optional code hints). scope limits a partial re-triage that merges instead of replacing.
split_issue(issue, groups)
Split an issue whose sub-issues are unrelated into focused new issues; the original remains as a linked breadcrumb.
propose_kit(suggestions) and record_kit(artifacts, failed?) are the write channel
of the Tune wizard’s analyze and apply passes. They’re bound to
the app’s running Tune session — an agent can only call them when the wizard
dispatched it — so they’re not part of the general agent surface.
The full playbook for a job, served by the server itself so it’s always current: fix (work the backlog), triage (reshape it), revert (undo one landed fix), tune-analyze / tune-apply (the Tune passes). Agents read the guide before acting — it’s the authoritative version of the loops described in this book.