Skip to main content

Provider credentials

Set up API keys for model providers, web search, and tracing

OpsCode needs an API key for each model provider you want to use. The easiest way is the interactive /auth manager inside a session. For CI/CD, set environment variables instead.


Open the credential manager from any interactive session:

/auth

The manager shows all available providers and whether a key is configured. Select a provider to add or replace its key. Keys are saved to ~/.opscode/.env and persist across sessions.

Each row shows the provider name with a status label:

LabelMeaning
[stored]Key saved via /auth
[env: VARNAME]Key loaded from an environment variable
[missing]No key found — select the row to add one

You can also set a custom base URL for private gateways, proxies, or enterprise endpoints. Leave it blank to use the provider's default.


Supported providers

OpsCode works with 20 providers out of the box:

ProviderAPI Key VariableBase URL Variable
AnthropicANTHROPIC_API_KEYANTHROPIC_BASE_URL
OpenAIOPENAI_API_KEYOPENAI_BASE_URL
Google GenAIGOOGLE_API_KEYGOOGLE_GEMINI_BASE_URL
Google Vertex AIGOOGLE_CLOUD_PROJECT(uses Application Default Credentials)
Azure OpenAIAZURE_OPENAI_API_KEYAZURE_OPENAI_ENDPOINT
GroqGROQ_API_KEYGROQ_BASE_URL
DeepSeekDEEPSEEK_API_KEYDEEPSEEK_API_BASE
TogetherTOGETHER_API_KEYTOGETHER_API_BASE
FireworksFIREWORKS_API_KEYFIREWORKS_BASE_URL
OpenRouterOPENROUTER_API_KEYOPENROUTER_API_BASE
Mistral AIMISTRAL_API_KEYMISTRAL_BASE_URL
NVIDIANVIDIA_API_KEYNVIDIA_BASE_URL
PerplexityPPLX_API_KEYPERPLEXITY_BASE_URL
CohereCOHERE_API_KEYCO_API_URL
IBM watsonxWATSONX_APIKEYWATSONX_URL
HuggingFaceHUGGINGFACEHUB_API_TOKENHF_INFERENCE_ENDPOINT
LiteLLMLITELLM_API_KEY
xAIXAI_API_KEYXAI_API_BASE
BasetenBASETEN_API_KEYBASETEN_BASE_URL
Ollama(optional) OLLAMA_API_KEY(runs locally)
Special cases
  • Vertex AI uses Google Cloud Application Default Credentials — no API key needed, just set GOOGLE_CLOUD_PROJECT.
  • Ollama runs locally and doesn't require a key by default.

Key resolution order

When multiple sources have the same key, OpsCode uses the first match:

  1. OPSCODE_{KEY} — Prefixed env var (e.g., OPSCODE_OPENAI_API_KEY) — always wins
  2. Standard env var — e.g., OPENAI_API_KEY
  3. ~/.opscode/.env — Global dotenv file
  4. /auth stored key — Credential saved via the auth manager

The OPSCODE_ prefix lets you override any key from your shell without modifying files.


Manage credentials from the command line

Use ops auth for scripted workflows:

# List configured credentials
ops auth list

# Set a credential
ops auth set openai

# Remove a credential
ops auth remove openai

Environment variables (CI/CD)

For non-interactive environments, export credentials directly:

export OPENAI_API_KEY="sk-..."
ops -n "Validate the Terraform modules" --quiet

Or maintain a ~/.opscode/.env file:

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
TAVILY_API_KEY=tvly-...
LANGSMITH_API_KEY=ls-...

OpsCode blocks sensitive system variables (PATH, HOME, PYTHONPATH) from being set via .env files to prevent environment tampering.


OpsCode uses Tavily for web search. Add a key via /auth or:

export TAVILY_API_KEY="tvly-..."

LangSmith tracing

Add your LangSmith key via /auth or:

export LANGSMITH_API_KEY="ls-..."
export LANGSMITH_PROJECT="opscode" # optional, defaults to "opscode"

Tracing starts automatically on the next launch when a LangSmith key is detected.