Install
The script detects your platform, verifies a SHA-256 checksum against the release, installs
to ~/.dpai/bin, and adds that directory to your shell profile.
curl -fsSL https://install.dpai.sh | bash
Supported platforms are macOS on Apple Silicon, Linux x64, and Windows x64 through Git Bash or WSL. Pin a version or skip the profile edit if you prefer:
# pin a version
curl -fsSL https://install.dpai.sh | bash -s -- --version 1.0.0
# leave shell config alone
curl -fsSL https://install.dpai.sh | bash -s -- --no-modify-path
If you would rather read before you run — and you should — the script is here.
With Bun already on PATH, the package works too:
bun add -g dpai-cli
API key
DPAI needs a key for the Dual Path Intelligence gateway. Get one from the dashboard. Pick whichever of these fits how you work:
# environment — good for CI
export DPAI_API_KEY=your_key_here
# once, on the command line
dpai -k your_key_here
Or save it in ~/.dpai/user-settings.json as
{ "apiKey": "your_key_here" }. A project .env is read too.
Optional: DPAI_BASE_URL, DPAI_MODEL,
DPAI_MAX_TOKENS. A brand that locks its gateway ignores
DPAI_BASE_URL.
Running it
dpai # interactive TUI
dpai -d /path/to/repo # choose the project directory
dpai fix the flaky test in foo.test.ts # open with a message
Headless runs take one prompt and exit — for scripts, CI, and schedules:
dpai -p "run the test suite and summarize failures"
dpai -p "summarize the repo state" --format json # NDJSON event stream
dpai -p "review the repo overnight" --batch-api # cheaper, delayed
dpai -p "refactor X" --max-tool-rounds 30
--format json emits step-level records — step_start,
text, tool_use, step_finish,
error — rather than prose.
Sessions persist, in both modes:
dpai --session latest
dpai -s
Other things worth knowing early: dpai models lists what your key can actually
reach with pricing hints, and --verify builds your app, boots it, and runs
browser smoke checks in a sandbox with screenshots and video as evidence.
Terminals
The interactive UI is OpenTUI, and it expects a modern terminal. These are the ones tested and recommended:
- WezTerm — cross-platform
- Alacritty — cross-platform
- Ghostty — macOS and Linux
- Kitty — macOS and Linux
Others may work. Headless --prompt mode has no terminal requirements at all.
computer sub-agent drives your desktop, which needs
Accessibility permission for your terminal app under System Settings → Privacy &
Security. Nothing else requires it.
Settings
| File | Scope | Holds |
|---|---|---|
~/.dpai/user-settings.json |
You | API key, custom sub-agents, hooks, Telegram, sandbox defaults |
.dpai/settings.json |
Project | Model for this project, MCP servers |
AGENTS.md |
Directory | Instructions, merged from the git root down. AGENTS.override.md wins per directory |
Custom sub-agents go under subAgents in user settings, each needing a
name, model, and instruction. The names
general, explore, vision, verify, and
computer are reserved for the built-ins.
Hooks run shell commands on agent lifecycle events and can block an action outright by
exiting 2. Skills live in .agents/skills/.
MCP servers are configured from /mcps in the TUI.
Updating and removing
To move to a newer version, re-run the install command:
curl -fsSL https://install.dpai.sh | bash
dpai update exists in the CLI but does nothing on this distribution — it
expects a GitHub release feed, and DPAI publishes to object storage instead. Re-running
the installer is the supported path. dpai uninstall works normally, and
takes --dry-run and --keep-config.