Skip to content

2026.6.4 - more providers, safer keys

Choose a tag to compare

@tcballard tcballard released this 23 Jun 06:24
· 262 commits to main since this release
1eee3c8

Two additive upgrades, no behaviour change: routing decisions are identical to v2026.6.3, and everything below is opt-in.

✨ Google Gemini in one command

wayfinder-router init --preset gemini scaffolds a two-tier Gemini config - gemini-2.5-flash for the cheap tier, escalating to gemini-2.5-pro — both reading$GEMINI_API_KEY. It needs no special handling: Gemini speaks the same OpenAI /chat/completions the gateway already forwards to, so it's purely a config preset. The default hybrid preset also gains a commented Gemini swap example.

wayfinder-router init --preset gemini

🔑 Keys from your secret store

A [gateway.models] entry can now name an optional api_key_cmd that fills its key in memory at startup when the environment variable is unset — so the secret can live in your password manager and never touch a shell file, config, or disk. An already-set variable always wins, so the command runs only when needed.

[gateway.models.cloud]
base_url = "https://api.anthropic.com/v1"
model = "claude-sonnet-4-6"
api_key_env = "ANTHROPIC_API_KEY"
api_key_cmd = "op read op://Private/Anthropic/credential"   # 1Password, Keychain, Vault, …

init and doctor suggest a ready-to-paste command for whichever tools they find on your PATH: 1Password, macOS Keychain, Secret Service, pass, gopass, HashiCorp Vault, AWS Secrets Manager, Bitwarden, Doppler, and Google Secret Manager.

💬 See and fix keys without leaving the chat

  • /keys re-resolves keys from your secret store and reports each model's status with fix-it hints.
  • The /models panel now notes command-resolved keys.
  • A first-run nudge points you at /keys when a key is missing.

📖 Docs

The README gains a "Works with any OpenAI-compatible API" section — Wayfinder forwards to any endpoint speaking OpenAI's /chat/completions with a Bearer key (OpenAI, Claude, Gemini, Mistral, Ollama, and more), with no per-provider code.

Upgrade

pip install --upgrade wayfinder-router          # or: "wayfinder-router[gateway]" / "[all]"

No breaking changes. Keys are still read from the environment at request time and never stored.

Full changelog: https://github.com/itsthelore/wayfinder-router/blob/main/CHANGELOG.md