# See docs/development/CONFIGURATION.md for a categorized reference of every # var below (and how it interacts with the shell, CLI, and bg-piece-service). # The canonical schema is packages/toolshed/env.ts. ENV=development PORT=8000 LOG_LEVEL=debug ## OpenTelemetry Configuration # Enable or disable OpenTelemetry tracing OTEL_ENABLED=false # Service name for traces OTEL_SERVICE_NAME=toolshed-dev # OpenTelemetry collector endpoint OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 # Sampling configuration OTEL_TRACES_SAMPLER=always_on OTEL_TRACES_SAMPLER_ARG=1.0 ## /api/ai/llm Provider API keys # Note: toolshed uses the CFTS_AI_LLM_ prefix (not the conventional # ANTHROPIC_API_KEY / OPENAI_API_KEY names). A model is only registered if # its provider's prefixed key is set — see routes/ai/llm/models.ts. Use the # exact variable names below. # CFTS_AI_LLM_ANTHROPIC_API_KEY # CFTS_AI_LLM_GROQ_API_KEY # CFTS_AI_LLM_OPENAI_API_KEY # CFTS_AI_LLM_CEREBRAS_API_KEY # CFTS_AI_LLM_PERPLEXITY_API_KEY # CFTS_AI_LLM_XAI_API_KEY # CFTS_AI_LLM_AWS_ACCESS_KEY_ID # CFTS_AI_LLM_AWS_SECRET_ACCESS_KEY # CFTS_AI_LLM_GOOGLE_APPLICATION_CREDENTIALS # CFTS_AI_LLM_GOOGLE_VERTEX_PROJECT # CFTS_AI_LLM_GOOGLE_VERTEX_LOCATION # CFTS_AI_LLM_PHOENIX_PROJECT # CFTS_AI_LLM_PHOENIX_URL # CFTS_AI_LLM_PHOENIX_API_KEY ## Gateway (Common Tools LLM gateway) # OpenAI-compatible /v1/models endpoint. When set and reachable, toolshed # discovers gateway-hosted models at startup and prefers gateway:claude-sonnet-4-6 # as the default model (falling back to anthropic:claude-sonnet-4-6, then # anthropic:claude-sonnet-4-5). When unreachable, toolshed logs a warning and # continues with the direct-provider models — startup is not blocked. # # Default: https://llm.stage.commontools.dev (Tailscale-only — expected to be # unreachable for external users; that fallback path is supported). # Set to an empty string to opt out entirely and skip the startup probe. # CFTS_AI_GATEWAY_URL= # CFTS_AI_GATEWAY_URL="" # explicitly disable ## AI image generation, voice transcription, and misc AI services # FAL_API_KEY ## Jina AI web reader API key # JINA_API_KEY ## Discord integration details # DISCORD_WEBHOOK_URL ## GitHub OAuth # GITHUB_CLIENT_ID= # GITHUB_CLIENT_SECRET= ## Notion OAuth # NOTION_CLIENT_ID= # NOTION_CLIENT_SECRET= ## Linear OAuth # LINEAR_CLIENT_ID= # LINEAR_CLIENT_SECRET= ## Spotify OAuth # SPOTIFY_CLIENT_ID= # SPOTIFY_CLIENT_SECRET= ## Discord OAuth # DISCORD_CLIENT_ID= # DISCORD_CLIENT_SECRET= ## Strava OAuth # STRAVA_CLIENT_ID= # STRAVA_CLIENT_SECRET=