Quick Start
Zero to a running agent in a few minutes. The short version: init, add, launch.
1. Initialize a manifest
From your project directory:
agentpack init
This writes a minimal agentpack.toml (identity is two top-level keys, not a [package] table) and an empty v2 pack.lock:
name = "my-project"
version = "0.0.1"
[dependencies]
init fails if agentpack.toml already exists, so it never clobbers your manifest.
2. Add a dependency
add takes a package spec. The most explicit form is a Go-style module ID, but owner/repo/path shorthand and GitHub tree/blob URLs work too:
agentpack add anthropics/skills/skills/canvas-design
agentpack resolves the spec, appends it under [dependencies], refreshes pack.lock, and runs a sync — all in one command:
[dependencies]
"github.com/anthropics/skills/skills/canvas-design" = {}
To pin a constraint, attach a @ref to the spec or edit the entry into table form ({ version = "^1.0.0" }, { branch = "main" }, { tag = "v2.1.0" }). See Your First Manifest. To stage nothing yet, pass --no-sync.
3. Lock and sync explicitly (optional)
add already locked and synced. You only run these by hand for CI, or after editing the manifest directly:
agentpack lock # re-resolve agentpack.toml → pack.lock (network)
agentpack sync # fetch into the cache and rebuild every harness's staging
Commit both agentpack.toml and pack.lock. The first sync downloads everything; later syncs reuse the cache, after checking it against the lock, and are fast.
4. Launch an agent
Each launcher syncs (fast path when nothing changed), stages for that harness, and execs the real binary:
agentpack claude # Claude Code
agentpack agent # Cursor Agent (alias: cursor-agent)
agentpack opencode # OpenCode
agentpack codex # Codex
agentpack grok # Grok
agentpack agy # Antigravity
Anything after the subcommand is forwarded to the underlying binary:
agentpack codex --model gpt-5-codex
Next steps
- Your First Manifest — version constraints, branches, local paths
- Dependency Resolution — how a constraint becomes a pinned commit
- Modes — enable or disable subsets of your packages per task
- Harness guides — what each launcher actually does