githubEdit

AI Coding Tools

spuff installs AI coding tools on provisioned VMs so you can use them directly in your cloud dev environment. Most tools are installed via npm and available globally. Some tools (like aider) are installed via pip.

Available Tools

Tool
Package
Binary
Auth

claude-code

@anthropic-ai/claude-code

claude

ANTHROPIC_API_KEY

codex

@openai/codex

codex

OPENAI_API_KEY

opencode

opencode-ai

opencode

Multiple providers

copilot

@github/copilot

copilot

GitHub subscription + GH_TOKEN

cursor

@anthropics/cursor-cli

cursor

CURSOR_API_KEY

cody

@sourcegraph/cody

cody

SRC_ACCESS_TOKEN

aider

aider-chat (pip)

aider

OPENAI_API_KEY or ANTHROPIC_API_KEY

gemini

@anthropics/gemini-cli

gemini

GOOGLE_API_KEY

Configuration

Project config (spuff.yaml)

# Install all tools (default)
ai_tools: all

# Disable all AI tools
ai_tools: none

# Install specific tools only
ai_tools:
  - claude-code
  - aider
  - cody

Global config (~/.spuff/config.yaml)

CLI flag

Precedence

  1. CLI --ai-tools flag (highest)

  2. Project config (spuff.yaml)

  3. Global config (~/.spuff/config.yaml)

  4. Default: all

CLI Commands

spuff ai list

Shows all available tools with their current enabled/disabled state based on your config:

spuff ai status

Queries the remote agent to show real-time installation status:

spuff ai install <tool>

Installs a specific tool on a running instance without reprovisioning:

Authentication

Each tool requires its own authentication. Pass credentials via environment variables in your spuff.yaml:

Or use spuff.secrets.yaml (not committed to git):

Claude Code

Requires ANTHROPIC_API_KEY environment variable.

Documentation: https://docs.anthropic.com/claude-code

Codex CLI

Requires OPENAI_API_KEY environment variable.

Documentation: https://github.com/openai/codex-cli

OpenCode

Supports multiple AI providers. Configure via its own config file or environment variables.

Documentation: https://opencode.ai

GitHub Copilot CLI

Requires an active GitHub Copilot subscription. Authenticate via:

  1. Environment variable: Set GH_TOKEN or GITHUB_TOKEN with a fine-grained PAT that has "Copilot Requests" permission

  2. Interactive login: Run copilot then use /login

Documentation: https://github.com/github/copilot-cli

Cursor CLI

Requires Cursor account and API key.

Documentation: https://cursor.sh/docs

Sourcegraph Cody

Requires Sourcegraph account. Set SRC_ACCESS_TOKEN and optionally SRC_ENDPOINT for enterprise instances.

Documentation: https://sourcegraph.com/docs/cody

Aider

AI pair programming tool with excellent git integration. Works with multiple AI providers.

Key features:

  • Automatic git commits for changes

  • Works with any git repository

  • Supports multiple AI providers

  • Excellent for pair programming workflows

Documentation: https://aider.chat

Google Gemini CLI

Requires Google AI API key.

Documentation: https://ai.google.dev/docs

Installation Flow

  1. During spuff up, the AI tools config is embedded in the cloud-init template

  2. After the VM boots, the spuff-agent reads the config from /opt/spuff/devtools.json

  3. Node.js is installed first (prerequisite for most AI tools)

  4. Python/pipx is available for aider installation

  5. Each enabled AI tool is installed via npm install -g <package> or pipx install <package>

  6. Installation happens asynchronously — SSH is available before tools finish installing

  7. Use spuff ai status to track progress

Disabling AI Tools

If you don't need AI tools and want faster provisioning:

Or via CLI:

For Claude/Anthropic users

For OpenAI users

For enterprise/Sourcegraph users

Minimal setup (just one tool)

Last updated

Was this helpful?