2026.6.4 - more providers, safer keys
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
/keysre-resolves keys from your secret store and reports each model's status with fix-it hints.- The
/modelspanel now notes command-resolved keys. - A first-run nudge points you at
/keyswhen 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