Documentation Index
Fetch the complete documentation index at: https://docs.aitmpl.com/llms.txt
Use this file to discover all available pages before exploring further.
Environment Variables
Configure the Claude Code Templates CLI and Claude Code using environment variables for authentication, API keys, and runtime settings.
Authentication Variables
ANTHROPIC_API_KEY
Anthropic API key for Claude Code authentication
Usage:
export ANTHROPIC_API_KEY=sk-ant-xxx
Purpose:
- Authenticate Claude Code CLI
- Enable API-based authentication
- Alternative to OAuth authentication
Obtain Key:
- Visit https://console.anthropic.com/
- Navigate to API Keys section
- Create new API key
- Copy and set as environment variable
Priority: Environment variable takes precedence over ~/.claude.json API key.
Security:
- Never commit to git
- Use
.env files with .gitignore
- Rotate keys regularly
- Use different keys for dev/prod
Example .env file:
# .env
ANTHROPIC_API_KEY=sk-ant-api03-xxx
Load in shell:
# Bash/Zsh
export $(cat .env | xargs)
# Or use dotenv
source .env
ANTHROPIC_AUTH_TOKEN
Alternative authentication token (if using OAuth)
Usage:
export ANTHROPIC_AUTH_TOKEN=your-token
Purpose: Alternative authentication method for enterprise setups.
Sandbox Variables
E2B_API_KEY
E2B API key for sandbox execution
Usage:
export E2B_API_KEY=e2b_xxx
Purpose:
- Enable E2B sandbox execution
- Required for
--sandbox e2b flag
Obtain Key:
- Visit https://e2b.dev/
- Sign up for account
- Create API key
- Set as environment variable
Example:
export E2B_API_KEY=e2b_xxx
cct --sandbox e2b --prompt "Create a React app"
Alternative: Use --e2b-api-key flag:
cct --sandbox e2b --e2b-api-key e2b_xxx --prompt "Create app"
CLOUDFLARE_TUNNEL_TOKEN
Cloudflare Tunnel token for remote access (optional)
Usage:
export CLOUDFLARE_TUNNEL_TOKEN=your-token
Purpose:
- Use custom Cloudflare Tunnel
- Persistent tunnel URLs
- Team access to dashboards
Obtain Token:
- Create Cloudflare account
- Install
cloudflared
- Create tunnel:
cloudflared tunnel create my-tunnel
- Get token from tunnel config
Note: The CLI uses temporary tunnels by default. This is only needed for persistent URLs.
Runtime Configuration
PORT
Port for analytics dashboard and web interfaces
Usage:
export PORT=8080
cct --analytics
Default: 3333
Purpose:
- Change default port if 3333 is in use
- Run multiple dashboards simultaneously
Example:
# Terminal 1
PORT=3333 cct --analytics
# Terminal 2
PORT=4444 cct --chats
NODE_ENV
Node.js environment (development, production, test)
Usage:
export NODE_ENV=development
Values:
development - Development mode (verbose logging)
production - Production mode (minimal logging)
test - Testing mode
Purpose:
- Control logging verbosity
- Enable debug features
- Configure behavior
DEBUG
Enable debug logging for specific modules
Usage:
export DEBUG=*
export DEBUG=claude:*
export DEBUG=analytics:*
Purpose:
- Detailed debugging output
- Module-specific logs
- Troubleshooting
Examples:
# All debug output
DEBUG=* cct --analytics
# Specific module
DEBUG=claude:* cct --agent frontend-developer
CCT_DEBUG
Enable Claude Code Templates debug logging
Usage:
Purpose:
- Show tracking debug messages
- Display non-critical errors
- Troubleshoot analytics issues
Example:
CCT_DEBUG=true npx claude-code-templates --agent frontend-developer
CCT_NO_TRACKING
Disable usage tracking and analytics
Usage:
export CCT_NO_TRACKING=true
Purpose:
- Opt out of anonymous usage analytics
- Disable component download tracking
- Privacy-focused installations
Example:
CCT_NO_TRACKING=true npx claude-code-templates --agent security-auditor
CCT_NO_ANALYTICS
Alias for CCT_NO_TRACKING (disables analytics)
Usage:
export CCT_NO_ANALYTICS=true
Purpose:
- Same as CCT_NO_TRACKING
- Alternative environment variable name
- Disables all telemetry
Note: Setting either CCT_NO_TRACKING or CCT_NO_ANALYTICS to true will disable tracking.
Shell Configuration
PATH
System PATH for global agent executables
Usage:
export PATH="$HOME/.claude-code-templates/bin:$PATH"
Purpose:
- Make global agents accessible
- Enable command-line execution
- Required for user-directory installations
Add to Shell Config:
Bash (~/.bashrc or ~/.bash_profile):
# Claude Code Templates - Global Agents
export PATH="$HOME/.claude-code-templates/bin:$PATH"
Zsh (~/.zshrc):
# Claude Code Templates - Global Agents
export PATH="$HOME/.claude-code-templates/bin:$PATH"
Fish (~/.config/fish/config.fish):
# Claude Code Templates - Global Agents
set -gx PATH $HOME/.claude-code-templates/bin $PATH
Apply Changes:
source ~/.bashrc # Or ~/.zshrc, ~/.config/fish/config.fish
SHELL
Current shell (automatically set by system)
Values:
/bin/bash
/bin/zsh
/usr/bin/fish
Purpose:
- Detect shell for PATH configuration
- Shell-specific features
- Autocompletion setup
Continuous Integration environment indicator
Values:
true - Running in CI environment
- Unset - Local development
Purpose:
- Automatically disables tracking in CI/CD
- Prevents analytics in automated environments
- Skips interactive prompts
Set by: GitHub Actions, GitLab CI, CircleCI, Jenkins, and other CI platforms automatically set this variable.
Manual Override:
# Force CI mode locally
CI=true npx claude-code-templates --agent frontend-developer
Project-Specific Variables
These can be set in .claude/settings.json under the env field:
{
"env": {
"NODE_ENV": "development",
"DEBUG": "true",
"API_URL": "http://localhost:3000",
"DATABASE_URL": "${DATABASE_URL}"
}
}
Variable Expansion: Use ${VAR_NAME} to reference system environment variables.
Environment Variable Precedence
When multiple sources define the same variable:
- Command-line flags (highest priority)
- Environment variables
- Local settings (
.claude/settings.local.json)
- Project settings (
.claude/settings.json)
- User settings (
~/.claude/settings.json) (lowest priority)
Example:
# Environment variable
export ANTHROPIC_API_KEY=sk-ant-111
# CLI flag (takes precedence)
cct --anthropic-api-key sk-ant-222 --prompt "test"
# Uses sk-ant-222
.env Files
Project .env
Store environment variables in .env file:
# .env
ANTHROPIC_API_KEY=sk-ant-xxx
E2B_API_KEY=e2b_xxx
GITHUB_TOKEN=ghp_xxx
DATABASE_URL=postgresql://localhost/mydb
API_URL=http://localhost:3000
Load with dotenv:
# Install dotenv-cli
npm install -g dotenv-cli
# Run with .env
dotenv cct --analytics
Load in shell:
export $(cat .env | grep -v '^#' | xargs)
.env.example
Create template for team:
# .env.example
ANTHROPIC_API_KEY=sk-ant-your-key-here
E2B_API_KEY=e2b_your-key-here
GITHUB_TOKEN=ghp_your-token-here
DATABASE_URL=postgresql://user:pass@localhost/dbname
Usage:
# Team member copies and fills in
cp .env.example .env
vim .env # Add real values
Gitignore
Always exclude .env from git:
# .gitignore
.env
.env.local
.env.*.local
.claude.json
.claude/settings.local.json
CI/CD Configuration
GitHub Actions
Set secrets in repository settings:
# .github/workflows/claude.yml
name: Claude Code
on: [push, pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '18'
- name: Install CLI
run: npm install -g claude-code-templates
- name: Run Health Check
run: cct --health-check
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
Set Secrets:
- Go to repository Settings > Secrets and variables > Actions
- Add
ANTHROPIC_API_KEY secret
- Reference with
${{ secrets.ANTHROPIC_API_KEY }}
GitLab CI
# .gitlab-ci.yml
review:
image: node:18
script:
- npm install -g claude-code-templates
- cct --health-check
variables:
ANTHROPIC_API_KEY: $ANTHROPIC_API_KEY
Set Variables:
- Go to Settings > CI/CD > Variables
- Add
ANTHROPIC_API_KEY (protected, masked)
Docker Configuration
Dockerfile
FROM node:18
WORKDIR /app
RUN npm install -g claude-code-templates
COPY . .
ENV NODE_ENV=production
CMD ["cct", "--analytics"]
docker-compose.yml
version: '3.8'
services:
claude-analytics:
build: .
ports:
- "3333:3333"
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- NODE_ENV=production
- PORT=3333
env_file:
- .env
Run:
Security Best Practices
1. Never Commit Secrets
# Check for secrets before commit
git diff | grep -i "api.key\|secret\|token\|password"
# Use git-secrets
git secrets --install
git secrets --register-aws
2. Use Separate Keys
- Development: Personal API key
- Staging: Team staging key
- Production: Production key (rotate regularly)
3. Restrict Permissions
# Secure .env file
chmod 600 .env
# Verify
ls -la .env
# -rw------- (only owner can read/write)
4. Rotate Keys Regularly
# Monthly rotation schedule
# 1. Generate new key
# 2. Update environment variables
# 3. Test applications
# 4. Revoke old key
5. Use Key Management Systems
AWS Secrets Manager:
# Fetch secret
export ANTHROPIC_API_KEY=$(aws secretsmanager get-secret-value \
--secret-id anthropic-api-key \
--query SecretString \
--output text)
HashiCorp Vault:
# Read secret
export ANTHROPIC_API_KEY=$(vault kv get -field=api_key secret/claude)
Troubleshooting
Variables Not Loading
Check if variable is set:
echo $ANTHROPIC_API_KEY
env | grep ANTHROPIC
Source shell config:
source ~/.bashrc # or ~/.zshrc
Verify .env file:
cat .env | grep ANTHROPIC_API_KEY
Authentication Fails
Test API key:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'
Check key format:
- Should start with
sk-ant-
- No whitespace or special characters
- Not expired
PATH Not Working
Verify PATH includes bin directory:
echo $PATH | grep claude-code-templates
Add to PATH manually:
export PATH="$HOME/.claude-code-templates/bin:$PATH"
Check executable exists:
ls -la ~/.claude-code-templates/bin/
Permission Denied
Fix file permissions:
chmod 600 .env
chmod 755 ~/.claude-code-templates/bin/*
Next Steps