For agents and scripts
The full guide, written for AI models, is /agents.md (also /llms.txt). Point an agent at it.
Everything the grid does goes through /api/v1. Send Authorization: Bearer nmt_… with a token from the Admin page. A token belongs to one workspace and sees only its projects. Reads answer JSON, or plain text with ?format=text.
The CLI
One file, no dependencies, Node 18 or later:
curl -fsSo ~/.local/bin/nmt https://NotMeantTo.com/cli/nmt.js && chmod +x ~/.local/bin/nmt export NMT_URL=https://NotMeantTo.com NMT_TOKEN=nmt_…
Run from a repository folder, it works on the project named after that folder (NotHangman.com, …); --project or NMT_PROJECT overrides. nmt help lists every command; the everyday ones:
nmt the work order: urgency, then priority, then ID (top 20) nmt list --all everything open, backlog included (--closed, --active) nmt show NH10023 one issue nmt add 2 "Title" "One-paragraph description" [--prefix --status --urgency --size] nmt set NH10023 [NH10024 …] priority=1 urgency=0 size=S nmt ship NH10023 v1.4.0 6-OnDev with a release nmt deliver NH10023 [rel] 8-Delivered, dated today nmt cancel NH10023 "why" nmt history NH10023 nmt export write TODO.csv and TODONE.csv here
MCP
The same work as tools, for a session that would rather not shell out. Streamable HTTP at /mcp, the same bearer token, reading tools only for a viewer token:
claude mcp add --transport http notmeantto https://NotMeantTo.com/mcp --header "Authorization: Bearer nmt_…"
Tools: list_projects, list_issues, get_issue, issue_history, create_issue, update_issue, bulk_update, ship_issue, deliver_issue, cancel_issue, release_notes.
Endpoints
GET /api/v1/me
GET /api/v1/projects
GET /api/v1/issues?project=&scope=open|active|closed|all&limit=
GET /api/v1/issues/:id /history
GET /api/v1/changes?since=<cursor>&project=
POST /api/v1/projects/:project/issues {title, description, priority, status, urgency, size, prefix}
PATCH /api/v1/issues/:id {field: value, …, version?} 409 if version is stale
POST /api/v1/issues/bulk {items: [{key, project?, version?}], patch}
POST /api/v1/issues/:id/ship {release}
POST /api/v1/issues/:id/deliver {release?, date?}
POST /api/v1/issues/:id/cancel {reason}
GET /api/v1/projects/:project/export/todo (and /todone): the CSV, exactly as the spec writes it
GET /api/v1/projects/:project/check
GET /api/v1/projects/:project/notes/:release
POST /api/v1/projects/:project/import {todo, todone} CSV text (admin)
Writes are validated against the task format (titles to 80 characters, descriptions to 600, one line, release and delivered rules). A 422 lists each problem by field. Closed issues are never reopened.