nrepo push
nrepo push <title> [options]Creates an idea with source: cli. The title is the only required argument.
Options
Section titled “Options”| Flag | Type | Default | Description |
|---|---|---|---|
--body <text> | string | (none) | Body text. Markdown is preserved as written. |
--tag <tag> | string | (none) | Add a tag. Repeat the flag for multiple tags. |
--status <status> | string | captured | One of captured, exploring, building, shipped, shelved. |
--json | boolean | false | Output the created idea as JSON. |
--human | boolean | — | Force human-readable output. Wins over --json. |
Examples
Section titled “Examples”# Title onlynrepo push "Add dark mode to dashboard"
# With a body, two tags, and a starting statusnrepo push "Rewrite auth flow" \ --body "Switch from session cookies to JWT tokens" \ --tag auth --tag security \ --status exploring
# A multi-line body, quotednrepo push "Design notes for v2" --body "$(cat design-notes.md)"Output
Section titled “Output”✓ Idea captured#42 captured ⬡ Rewrite auth flow [auth, security]
Processing: embeddings, dedup, and auto-tagging queuedThe row is the CLI’s standard idea line: #number, status padded to ten characters, a glyph for
the capture source (⬡ is cli), the title, and tags in brackets. The processing line means the
idea is already saved — the embedding, duplicate check, and auto-tagging run afterwards on a
queue and take a few seconds.
nrepo push "Rewrite auth flow" --tag auth --json{ "id": 391, "number": 42, "title": "Rewrite auth flow", "body": null, "status": "captured", "source": "cli", "source_url": null, "vectorize_id": null, "tags": ["auth"], "is_archived": 0, "created_at": "2026-07-24 10:00:00", "updated_at": "2026-07-24 10:00:00", "processing": true}Capture the ID for a follow-up command like this:
ID=$(nrepo push "Rewrite auth flow" --json | jq -r '.id')nrepo tag "$ID" auth securityLimits
Section titled “Limits”| Limit | Value | What happens past it |
|---|---|---|
| Title length | 200 characters | 400 with a field error |
| Body length | 50,000 characters | 400 with a field error |
| Tags per idea | 20 | 400 with a field error |
| Tag name length | 50 characters | 400 with a field error |
| Active ideas, free plan | 50 | 403 — “You’ve captured 50 ideas on the free plan.” |
Archiving an idea with nrepo rm frees a slot against the free-plan cap.
Next Steps
Section titled “Next Steps” nrepo show Read back the idea you just created, including its links and relations.
nrepo tag Add tags after the fact, to one idea or to fifty.
nrepo branch Fork an idea into a variant instead of pushing a near-duplicate.
Duplicate Detection What the queued dedup pass does with the idea seconds after you push it.