Skip to content

feat: auto-detect provider from common environment variables #108

@dwmkerr

Description

@dwmkerr

Summary

Should terminal-ai auto-detect the provider when common environment variables like OPENAI_API_KEY or ANTHROPIC_API_KEY are set, without requiring explicit configuration?

Research: How Other AI CLI Tools Handle This

Tool Env Vars Default Model Auto-Detect?
llm (Simon Willison) Custom key storage gpt-4o-mini No - plugin-based
shell-gpt OPENAI_API_KEY gpt-4o OpenAI-first
mods (Charm) Standard vars gpt-4o Config-first, then env
aichat Standard vars openai:gpt-4o Yes - prefix-based

Proposed Implementation

Environment variables to auto-detect:

Variable Provider Default Model
OPENAI_API_KEY OpenAI gpt-4o
ANTHROPIC_API_KEY Anthropic claude-sonnet-4-20250514

Priority order:

  1. Explicit config (~/.ai/config.yaml)
  2. AI_* environment variables
  3. Common provider env vars (OPENAI_API_KEY, etc.)

Task List

  • Load .env files from current directory
  • Auto-detect OPENAI_API_KEY and use OpenAI with gpt-4o default
  • Auto-detect ANTHROPIC_API_KEY and use Anthropic with claude-sonnet-4-20250514 default
  • Add --no-dotenv flag to disable .env loading
  • Add --no-env-detect flag to disable auto-detection of common env vars
  • Add AI_NO_DOTENV=1 env var to disable .env loading
  • Add AI_NO_ENV_DETECT=1 env var to disable auto-detection
  • Update docs with new behavior
  • Add tests for env var detection

Open Questions

  • Should auto-detection warn users when using defaults?
  • What happens when multiple provider keys are set? (Propose: priority order OpenAI > Anthropic)

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions