Environment variables provide credentials for automation and server deployment scenarios.
Supported Variables
CRAFT_ANTHROPIC_API_KEY
Provide an Anthropic API key without storing it locally. This takes precedence over the standard variable.
export CRAFT_ANTHROPIC_API_KEY="sk-ant-api03-..."
craft -p "Check my tasks"
ANTHROPIC_API_KEY
Standard Anthropic API key variable. Used as fallback if CRAFT_ANTHROPIC_API_KEY is not set.
export ANTHROPIC_API_KEY="sk-ant-api03-..."
craft -p "Check my tasks"
CRAFT_CLAUDE_OAUTH_TOKEN
Provide a Claude OAuth token directly for Claude Pro/Max authentication.
export CRAFT_CLAUDE_OAUTH_TOKEN="token..."
Precedence
For API credentials, the lookup order is:
CRAFT_ANTHROPIC_API_KEY environment variable
ANTHROPIC_API_KEY environment variable
- Stored credential in
~/.craft-agent/credentials.enc
- Interactive prompt (if running interactively)
Usage Examples
CI/CD Pipeline
#!/bin/bash
export CRAFT_ANTHROPIC_API_KEY="${SECRETS_ANTHROPIC_KEY}"
craft -w "Work" -p "Generate release notes from recent commits"
Docker Container
ENV CRAFT_ANTHROPIC_API_KEY=${CRAFT_ANTHROPIC_API_KEY}
CMD ["craft", "-w", "default", "-p", "..."]
Temporary Override
Use a different API key for one command:
CRAFT_ANTHROPIC_API_KEY="sk-ant-different-key" craft -p "Quick check"
Security Notes
Avoid putting API keys directly in shell history or scripts. Use secret managers or secure environment injection.
Secure alternatives:
# Read from file
export CRAFT_ANTHROPIC_API_KEY=$(cat ~/.secrets/anthropic-key)
# Read from secret manager
export CRAFT_ANTHROPIC_API_KEY=$(aws secretsmanager get-secret-value --secret-id anthropic-key --query SecretString --output text)
# Use .env file (not committed to git)
source .env && craft -p "..."