Overview
Kickstart is a Deno application that completes GitHub issues using opencode directly on the host machine, without Docker or containerization. opencode and Deno provide sandboxing for both the agent and the orchestrator: you point an agent at a GitHub issue and have it implement the work on your machine with reasonable sandboxing.
CLI usage
Section titled “CLI usage”Kickstart is available as part of the dn CLI:
# Full workflowdn kickstart <issue_url_or_number>
# Plan phase onlydn prep <issue_url_or_number>
# Loop phase only (requires plan file from prep)dn loop --plan-file plans/<name>.plan.mdYou can pass a full GitHub issue URL or an issue number for the current
repository (e.g. 123 or #123). If the issue URL points to a different
repository than the current workspace, kickstart and prep exit with an error.
See dn CLI Subcommands for full CLI documentation.
Two modes
Section titled “Two modes”- Default mode — Applies changes locally to your workspace. You handle
branches, commits, and PRs manually. Uses
plans/.last.plan.mdfor iterative development unless you use--save-planor--saved-plan. - AWP mode — Full guided workflow: creates branches, commits changes, and
opens a PR automatically. Always uses named plan files
(
plans/[name].plan.md).
How it works
Section titled “How it works”Kickstart orchestrates a two-phase workflow (Plan → Implement) with:
- Completion detection — Automatically checks acceptance criteria checklists after implementation
- Continuation prompts — Generates prompts for incomplete work (e.g.
plans/[name].continuation.plan.md) - Plan merging — For named plans, combines plan and continuation files into one
- Artifact generation — Updates AGENTS.md and can create Cursor rules (see Artifacts & Cursor)
Plan files live in the workspace plans/ directory and can be continued across
multiple runs.
Default mode flow (summary)
Section titled “Default mode flow (summary)”- Resolve issue context (fetch from GitHub or load file)
- Ensure
plans/exists; resolve plan path (plans/.last.plan.mdor named) - If a plan file exists, prompt: continue existing plan?
- Plan phase — Read-only analysis; creates/updates
plans/[name].plan.md - Validate plan file
- Implement phase — Apply code changes; update acceptance criteria
- Check completion (parse acceptance criteria)
- If incomplete: prompt to name plan (for continuation) and generate continuation prompt; optionally merge plan + continuation
- Run linting (non-blocking)
- Generate artifacts (AGENTS.md, Cursor rules if
--cursor) - Validate changes — user handles Git/PR manually
AWP mode flow (summary)
Section titled “AWP mode flow (summary)”- Resolve issue context
- Detect VCS (Git or Sapling); prompt: use current branch or create new?
- If new: prompt for branch name (suggested:
kickstart/issue_N_slug); create branch/bookmark - Ensure
plans/; prompt for plan name (suggest branch name) - Plan phase — Creates
plans/[name].plan.md - Validate → Implement phase → Check completion
- If incomplete: generate continuation; optionally merge
- Lint → Artifacts → Validate changes
- Commit and push (message:
#N Title) - Create PR (title:
#N Title, body:Closes #N)
Key differences
Section titled “Key differences”Default mode: Uses plans/.last.plan.md unless you pass --save-plan or
--saved-plan. Prompts to continue an existing plan if found. No VCS required.
You handle git/PR manually.
AWP mode: Always prompts for plan name (suggests branch name). Creates named plans; plan files are included in commits and PRs. Requires Git or Sapling. Automatically creates branch, commit, and PR.
Dependencies
Section titled “Dependencies”- Deno and opencode in PATH
- GitHub authentication: GitHub CLI
(
gh auth login), ordn auth, orGITHUB_TOKEN(see Authentication) - Git or Sapling (for AWP mode)