Subcommands
dn kickstart — full workflow
Section titled “dn kickstart — full workflow”Runs the complete kickstart workflow (plan + implement phases):
# Default mode: Apply changes locallydn kickstart https://github.com/owner/repo/issues/123
# Issue number shorthand (infers URL from current repo remote)dn kickstart 123
# AWP mode: Full workflow with branches and PRdn kickstart --awp https://github.com/owner/repo/issues/123
# With Cursor integrationdn kickstart --cursor https://github.com/owner/repo/issues/123
# Save a named plan filedn kickstart --save-plan 123
# Use a specific plan namedn kickstart --saved-plan my-feature 123
# Via environment variableISSUE=https://github.com/owner/repo/issues/123 dn kickstartThe issue argument may be a full GitHub issue URL or an issue number for the
current repository. If the URL points to a different repository than the current
workspace, kickstart exits with an error. See dn kickstart --help for all
options. For full kickstart documentation, see
Kickstart overview.
Options:
| Option | Description |
|---|---|
--awp | Enable AWP mode (branches, commits, PRs) |
--cursor, -c | Enable Cursor IDE integration |
--save-plan | Force a named plan to be saved |
--saved-plan <name> | Use a specific plan name |
--workspace-root <path> | Workspace root directory |
dn auth — sign in to GitHub
Section titled “dn auth — sign in to GitHub”Sign in to GitHub in the browser (device flow). The token is cached so
dn kickstart, glance, etc. can use it without re-prompting:
dn authRequires DN_GITHUB_DEVICE_CLIENT_ID (or GITHUB_DEVICE_CLIENT_ID) set to your
GitHub OAuth App client ID. See Authentication.
dn issue — manage GitHub issues
Section titled “dn issue — manage GitHub issues”Manage GitHub issues from the command line. Supports listing, viewing, creating, editing, closing, reopening, and commenting on issues.
dn issue list
Section titled “dn issue list”List issues in the current repository:
# List open issues (default)dn issue list
# List closed issuesdn issue list --state closed
# List all issues (open and closed)dn issue list --state all
# Limit resultsdn issue list --limit 10
# Filter by label (repeatable)dn issue list --label bugdn issue list --label bug --label "help wanted"
# Output as JSONdn issue list --jsondn issue show
Section titled “dn issue show”Show details for a specific issue:
# By issue numberdn issue show 123
# By full URLdn issue show https://github.com/owner/repo/issues/123
# Output as JSONdn issue show 123 --json
# Hide commentsdn issue show 123 --no-commentsdn issue create
Section titled “dn issue create”Create a new issue:
# Basic issuedn issue create --title "Bug report"
# With body textdn issue create --title "Feature request" --body "Please add..."
# Read body from filedn issue create --title "RFC: New Feature" --body-file rfc.md
# With labels (repeatable)dn issue create --title "Fix needed" --label bug --label urgent
# Output as JSONdn issue create --title "Bug" --jsondn issue edit
Section titled “dn issue edit”Edit an existing issue:
# Update titledn issue edit 123 --title "Updated title"
# Update bodydn issue edit 123 --body "New description"
# Read body from filedn issue edit 123 --body-file updated.md
# Add labels (repeatable)dn issue edit 123 --add-label bugdn issue close
Section titled “dn issue close”Close an issue:
# Close an issuedn issue close 123
# Close with a commentdn issue close 123 --comment "Fixed in #456"
# Close as not planneddn issue close 123 --reason not_planned
# Close as completed (default)dn issue close 123 --reason completeddn issue reopen
Section titled “dn issue reopen”Reopen a closed issue:
# Reopen an issuedn issue reopen 123
# Reopen with a commentdn issue reopen 123 --comment "Reopening for further discussion"dn issue comment
Section titled “dn issue comment”Add a comment to an issue:
# Add a commentdn issue comment 123 --body "Thanks for the report!"
# Read comment from filedn issue comment 123 --body-file response.mddn prep — plan phase only
Section titled “dn prep — plan phase only”Runs only the plan phase (Steps 1–3: resolve issue, VCS prep, plan phase):
# Create a plan filedn prep https://github.com/owner/repo/issues/123
# Issue number shorthand (infers URL from current repo remote)dn prep 123
# With a specific plan namedn prep --plan-name my-feature 123
# Force save a named plandn prep --save-plan 123
# Via environment variableISSUE=https://github.com/owner/repo/issues/123 dn prepThe issue argument may be a full GitHub issue URL or an issue number for the
current repository. If the URL points to a different repository than the current
workspace, prep exits with an error. The plan file path is output for use with
dn loop.
dn loop — loop phase only
Section titled “dn loop — loop phase only”Runs only the loop phase (Steps 4–7: implement, completion, lint, artifacts, validate):
# Requires plan file from prepdn loop --plan-file plans/my-feature.plan.md
# With Cursor integrationdn loop --plan-file plans/my-feature.plan.md --cursor
# Via environment variablePLAN=plans/my-feature.plan.md dn loopNote: dn loop requires a plan file created by dn prep.
dn fixup — address PR feedback
Section titled “dn fixup — address PR feedback”Fetches PR comments and implements requested changes locally. Useful for addressing reviewer feedback without leaving your terminal:
# Fetch PR comments and implement fixesdn fixup https://github.com/owner/repo/pull/123
# With Cursor integrationdn fixup --cursor https://github.com/owner/repo/pull/123
# Via environment variablePR_URL=https://github.com/owner/repo/pull/123 dn fixupBehavior:
- If already on the correct branch, no git/sl commands are executed
- If on a different branch, the PR branch will be checked out
- After fixup, changes remain uncommitted for your review
dn meld — merge and trim markdown sources
Section titled “dn meld — merge and trim markdown sources”Merges multiple markdown sources (local files and/or GitHub issue URLs) into a single DRY document with an Acceptance Criteria section:
# Merge files to stdoutdn meld a.md b.md
# From a newline-separated list, write to filedn meld -l sources.txt -o plans/merged.plan.md
# Cursor mode: add YAML frontmatter (name, overview, todos, isProject)dn meld a.md https://github.com/owner/repo/issues/123 --cursor
# Mix local files and GitHub issuesdn meld spec.md https://github.com/owner/repo/issues/45
# Opencode mode (default): no frontmatterdn meld a.md b.md --opencodeOptions:
| Option | Description |
|---|---|
--list, -l <path> | Newline-separated list of sources |
--output, -o <path> | Write merged markdown to file (default: stdout) |
--cursor, -c | Cursor mode: add YAML frontmatter |
--opencode | Opencode mode (default): no frontmatter |
dn archive — derive commit message from a plan file
Section titled “dn archive — derive commit message from a plan file”Reads a plan file and prints a commit message (summary + body). With --yolo,
commits staged files with that message and deletes the plan file:
# Print derived commit messagedn archive plans/my-feature.plan.md
# Commit staged files with derived message, then delete the plan filedn archive plans/my-feature.plan.md --yoloUsage examples
Section titled “Usage examples”# Full workflow: implement a GitHub issue end-to-enddn kickstart --awp https://github.com/owner/repo/issues/123
# Quick issue triage from the terminaldn issue list --label bug --limit 5dn issue show 123
# Sequential workflow: plan first, then implementdn prep --plan-name my-feature 123# Review the plan file, then continuedn loop --plan-file plans/my-feature.plan.md
# Address PR feedbackdn fixup https://github.com/owner/repo/pull/456
# Create an issue and immediately start workdn issue create --title "Fix login bug" --label bugdn kickstart 124 # assuming 124 is the new issue number
# Merge specs and issues into a unified plandn meld spec.md https://github.com/owner/repo/issues/123 -o plans/unified.plan.md
# After completing work, commit with derived messagegit add -Adn archive plans/my-feature.plan.md --yolo
# Close issue with comment after merging PRdn issue close 123 --comment "Fixed in #456"