Multi-agent template package manager and CLI. Install and publish aikit.toml template packages from GitHub or a local directory, map them into many coding-assistant layouts, scaffold projects with aikit init, and run supported agent CLIs with aikit run. Use aikit check to see which tools and agents are available.
Programmatic gateway: aikit-sdk (Rust) and aikit-py (Python) expose the same agent catalog, path rules, deploy APIs, availability checks, and run/event APIs for your own tools and automation.
curl -L https://github.com/goaikit/aikit/releases/latest/download/aikit-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv aikit /usr/local/bin/curl -L https://github.com/goaikit/aikit/releases/latest/download/aikit-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv aikit /usr/local/bin/brew install goaikit/cli/aikitscoop bucket add goaikit https://github.com/goaikit/scoop-bucket
scoop install aikitDownload from GitHub Releases and add to PATH.
# Install Newton template from GitHub or local path
aikit install gonewton/newton-templates --ai newton --yes
# This creates .newton/ with:
# .newton/README.md - Template documentation
# .newton/scripts/advisor.sh - Planning advisor
# .newton/scripts/evaluator.sh - Progress evaluator
# .newton/scripts/post-success.sh - Post-success hook
# .newton/scripts/post-failure.sh - Post-failure hook# 1. Create a new package (defines aikit.toml and template layout)
aikit package init my-tools --description "My AI commands"
# 2. Enter the package and add your templates (rules, skills, prompts)
cd my-tools
# Edit aikit.toml and add files under templates/ as needed
# 3. Build the package (produces dist/ or agent-specific zips)
aikit package build
# 4. Publish to GitHub (creates release and uploads assets)
aikit package publish username/my-tools
# Or: push repo first, then aikit release v1.0.0
# 5. Install the package for Cursor (in a project that uses Cursor)
cd /path/to/your-project
aikit install username/my-tools --ai cursor
# 6. Install the same package for Claude (e.g. in another project or --ai claude)
aikit install username/my-tools --ai claude
# 7. Verify: list installed packages and check available agents
aikit list
aikit check# Create a new Spec-Driven Development project with Claude templates
aikit init my-project --ai claude
# Or set up in the current directory for Cursor
aikit init --here --ai cursor
# Install a community package
aikit install username/package-name
aikit list| Command | Description |
|---|---|
aikit init [name] |
Initialize a Spec-Driven Development project with AI assistant templates |
aikit install <source> |
Install packages from GitHub (owner/repo) or local directory (use --ai <agent> to specify agent) |
aikit list |
Show installed packages (optional: --author, --detailed) |
aikit update <pkg> |
Update a package to latest version (optional: --breaking) |
aikit remove <pkg> |
Uninstall a package (optional: --force) |
aikit check |
Check git, VS Code, and AI agent CLIs availability |
aikit run |
Run a coding agent with a prompt |
aikit version |
Show version |
aikit package init <name> |
Create a new package with aikit.toml |
aikit package build |
Build distributable package (output: dist/ or .genreleases/) |
aikit package publish <owner/repo> |
Publish package to GitHub (release and assets) |
aikit release <version> |
Create GitHub release from .genreleases/ (e.g. v1.0.0) |
# Create package
aikit package init my-tools --description "AI dev tools" --package-version 0.1.0
# Add templates and edit aikit.toml, then build
aikit package build
# Publish (creates GitHub release and uploads)
aikit package publish username/my-tools
# If you use a flow that produces zips in .genreleases/, create the release with:
# aikit release v1.0.0 --notes-file release_notes.md- GitHub auth: Set
GITHUB_TOKENorGH_TOKENin.envor use--token/--github-tokenon install, init, or release. - Package manifest: Each package has an
aikit.toml(name, version, description). Required for local installs and for publish.
Example .env:
GITHUB_TOKEN=your_github_token_hereThe aikit run command allows you to execute AI coding agents directly. It can replace agent CLI wrappers like coder.sh in workflows like Newton.
# Run an agent with a prompt
aikit run --agent opencode -p "Help me refactor this code"
# Read prompt from stdin
echo "Add error handling" | aikit run --agent claude
# Emit structured NDJSON events to stdout (one JSON object per line)
aikit run --agent claude --events -p "Summarize the project"
# Combine --events with --stream for streaming-aware JSON output
aikit run --agent claude --events --stream -p "Refactor this module"Supported agents: codex, claude, gemini, opencode, agent
Options:
| Flag | Short | Description | Default |
|---|---|---|---|
--agent |
-a |
Runnable agent key (codex, claude, gemini, opencode, agent) |
Required |
--model |
-m |
Model passed to the agent | Omitted unless -m is set; no CLI default (agent binary decides) |
--prompt |
-p |
Prompt to run | Reads from stdin if omitted |
--yolo |
Auto-confirm, skip checks | false |
|
--stream |
Enable agent-native streaming output flags | false |
|
--events |
Emit NDJSON event stream to stdout | false |
aikit run also accepts the root --debug flag (global on the aikit CLI; it appears in aikit run --help).
Agent selection is CLI-only: -a / --agent is required. aikit run does not read CODING_AGENT or CODING_AGENT_MODEL. When -m is omitted, no model flag is passed to the agent; the spawned agent applies its own defaults or errors if it requires an explicit model.
--stream vs --events:
--stream: Tunes agent-native partial output flags (e.g.--stream-partial-output,stream-json). Passed through to the agent argv builder.--events: Switches the CLI to emit one JSON object per line (NDJSON) to stdout. Process exit code matches the child agent's exit code.- Both flags can be combined:
--events --streamuses events-mode JSON output AND adds stream-partial flags for supported agents.
NDJSON event format (when using --events): each line is one JSON object with agent_key, seq, stream (stdout | stderr), and payload. The payload is one of:
json_line: parsed JSON object from the agentraw_line: UTF-8 text line that is not JSONraw_bytes: non-UTF-8 data as a byte array in JSONtoken_usage_line: normalized token counts extracted from a precedingjson_line(fields:usage,source,raw_agent_line_seq)
Example lines:
{"agent_key":"claude","seq":1,"stream":"stdout","payload":{"json_line":{"type":"progress","message":"Starting..."}}}
{"agent_key":"claude","seq":2,"stream":"stdout","payload":{"token_usage_line":{"usage":{"input_tokens":100,"output_tokens":50,"total_tokens":150,"cache_read_tokens":null,"cache_creation_tokens":null,"reasoning_tokens":null},"source":"Claude","raw_agent_line_seq":1}}}On Windows, the Cursor agent is often agent.cmd. If spawn fails, set AIKIT_CURSOR_AGENT to the full path (see aikit-sdk README: Windows Configuration).
Run aikit run --help for the authoritative option reference.
Programmatic use (gateway libraries):
- Rust (aikit-sdk): Add
aikit-sdktoCargo.toml. Use catalog/path/deploy APIs,run_agentfor buffered stdout/stderr, orrun_agent_eventsfor the same event stream shape asaikit run --events(including optionaltoken_usage_lineevents). ReturnsResult<RunResult, RunError>. - Python (aikit-py):
pip install aikit-py. Same surface area from Python: catalog, deploy,run_agent, andrun_agent_events_py(..., on_event, ...)for per-event callbacks (schema matches CLI NDJSON).
The catalog covers 18 coding assistants (install/template mapping). Runnable via aikit run are only: codex, claude, gemini, opencode, agent.
CLI-based: Claude, Gemini, Qwen, OpenCode, Codex, Auggie, CodeBuddy, Qoder, Q, Amp, Shai
IDE-based: GitHub Copilot, Cursor, Windsurf, KiloCode, Roo, Bob
Run aikit check to see which are installed on your system (git and VS Code are also checked).
Apache License 2.0 - See LICENSE
Need help? Open an issue