From anthropic-pack
Configures Anthropic Claude API for dev, staging, production with isolated keys from Workspaces, per-env models, and spend controls using Python dataclasses and client factory.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin anthropic-packThis skill is limited to using the following tools:
Configure isolated Claude API environments with per-env API keys, model selection, and spend controls using Anthropic Workspaces.
Sets up local dev workflow for Anthropic Claude API projects with singleton client, request logging, cost tracking, mocks, and hot reload.
Configures Cohere API for dev, staging, prod with per-env models, API keys from AWS/GCP/Vault secrets, tokens, caching, and retries using TypeScript.
Sets up Mistral AI configs for dev, staging, production with per-env API keys, models, rate limits, caching via GCP/AWS/Vault secrets.
Share bugs, ideas, or general feedback.
Configure isolated Claude API environments with per-env API keys, model selection, and spend controls using Anthropic Workspaces.
# config.py
import os
from dataclasses import dataclass
@dataclass
class ClaudeConfig:
api_key: str
model: str
max_tokens: int
max_retries: int
timeout: float
monthly_budget_usd: float
CONFIGS = {
"development": ClaudeConfig(
api_key=os.environ["ANTHROPIC_API_KEY_DEV"],
model="claude-haiku-4-20250514", # Cheap for dev
max_tokens=256,
max_retries=1,
timeout=15.0,
monthly_budget_usd=10.0,
),
"staging": ClaudeConfig(
api_key=os.environ["ANTHROPIC_API_KEY_STAGING"],
model="claude-sonnet-4-20250514",
max_tokens=1024,
max_retries=2,
timeout=30.0,
monthly_budget_usd=50.0,
),
"production": ClaudeConfig(
api_key=os.environ["ANTHROPIC_API_KEY_PROD"],
model="claude-sonnet-4-20250514",
max_tokens=4096,
max_retries=5,
timeout=120.0,
monthly_budget_usd=5000.0,
),
}
def get_config() -> ClaudeConfig:
env = os.getenv("APP_ENV", "development")
return CONFIGS[env]
Create separate Workspaces in console.anthropic.com:
| Workspace | Purpose | Rate Limit Tier |
|---|---|---|
dev | Development & testing | Tier 1 |
staging | Pre-production validation | Tier 2 |
production | Live traffic | Tier 3+ |
Each workspace has independent API keys, usage tracking, and rate limits.
# .env.development
ANTHROPIC_API_KEY_DEV=sk-ant-api03-dev-...
APP_ENV=development
# .env.staging
ANTHROPIC_API_KEY_STAGING=sk-ant-api03-stg-...
APP_ENV=staging
# .env.production (stored in secret manager, not files)
ANTHROPIC_API_KEY_PROD=sk-ant-api03-prd-...
APP_ENV=production
import anthropic
def create_client() -> anthropic.Anthropic:
config = get_config()
return anthropic.Anthropic(
api_key=config.api_key,
max_retries=config.max_retries,
timeout=config.timeout,
)
# Development: always use Haiku (cheapest)
# Staging: use production model for accuracy testing
# Production: use configured model
def get_model(override: str | None = None) -> str:
if override:
return override
return get_config().model
| Issue | Cause | Fix |
|---|---|---|
| Dev key used in prod | Wrong env loaded | Validate key prefix matches environment |
| Staging rate limited | Low tier workspace | Upgrade staging workspace tier |
| Cost overrun in dev | No budget guard | Add per-env spend limits |
For monitoring, see anth-observability.