doctl-axi

August 21, 2026 ยท View on GitHub

๐Ÿงช Proof of Concept - AXI Experiment built with AI

This is an experimental proof-of-concept AXI (Agent Experience Interface) - an AI-built wrapper around doctl as an alternative to 21 fragmented MCP services. Not production-hardened; expect sharp edges, token truncation at 8k, and 10 MB maxBuffer limits. Use for evaluation and feedback, not critical deploys.

doctl-axi

Agent-ergonomic CLI for DigitalOcean - one AXI wrapping doctl --output json โ†’ TOON.

Replaces 21 fragmented MCP services (*.mcp.digitalocean.com) with a single doctl-axi <noun> <verb> surface. No global install required - the skill is the primary entry point.

Quick start - skill is the intended usage

Requires doctl authenticated (doctl auth init or DIGITALOCEAN_ACCESS_TOKEN).

You don't need doctl-axi installed globally. The agent discovers it via its skill:

npx skills add doctl-axi --skill doctl-axi   # one-time: registers the skill (hermes devops, user-invocable: false)

Then just mention DigitalOcean jargon - droplet, Kubernetes/k8s, App Platform, database, registry, network/VPC, Spaces, docs - the agent auto-loads skills/doctl-axi/SKILL.md on keyword match and runs:

npx -y doctl-axi droplet list
npx -y doctl-axi droplet list --fields id,name
npx -y doctl-axi kubernetes cluster list
npx -y doctl-axi app list
npx -y doctl-axi database list
npx -y doctl-axi network domain list
npx -y doctl-axi docs search "droplet resize"
npx -y doctl-axi --help
npx -y doctl-axi droplet list --help

Bare npx -y doctl-axi (no args) prints the TOON dashboard - account, balance, and counts - on demand only. No per-session pre-fetch.

Install alternatives (optional)

# ad-hoc, zero install - what the skill does under the hood
npx -y doctl-axi droplet list

# global, if you prefer a bare binary
npm i -g doctl-axi        # or pnpm add -g doctl-axi
doctl-axi droplet list

Setup hooks - opt-in with performance penalty

By default nothing runs at SessionStart - clean sessions have zero overhead (skill stays on-demand via keyword).

If you want ambient inventory before the first turn, opt in explicitly:

doctl-axi setup hooks          # writes ~/.claude/settings.json + ~/.codex/hooks.json+config.toml + ~/.config/opencode/plugins/axi-doctl-axi.js
doctl-axi setup hooks --check  # TOON OK vs DRIFT

Penalty: every new Claude/Codex/OpenCode SessionStart spawns doctl-axi (bare dashboard โ†’ 8 parallel doctl --output json for account, balance, and counts for droplets, apps, databases, Kubernetes clusters, registry, domains). Typically 1โ€“3s depending on fleet size (10s timeout, degrades to โ€” on failure). Skip it and the skill remains keyword-discoverable with no per-session cost.

See skills/doctl-axi/SKILL.md for the agent-facing workflow (When to use โ†’ Workflow โ†’ Commands โ†’ Tips).

Development

pnpm build        # tsc + tsx scripts/build-skill.ts โ†’ dist/ + dist/skills
pnpm test         # pnpm build && vitest run - 131 CLI-seam tests (fake doctl on PATH)

Node >=20 required.

License

MIT