Releases: samestrin/llm-env
v1.6.0 — Interactive Quickstart
[1.6.0] - 2026-05-01
Added
- Interactive Quickstart:
llm-env quickstartnow walks you through provider setup interactively — pick which catalog(s) to add (Synthetic, Alibaba, or both), get the signup URL with our referral code, paste your API key (input hidden), and the key gets appended to your shell rc file (~/.bashrcor~/.zshrc) and verified with a tiny test call. Skips the prompt automatically if a key is already configured. - Positional Source Selection:
llm-env quickstart synthetic,llm-env quickstart alibaba,llm-env quickstart synthetic,alibaba, andllm-env quickstart allfor scripted use. - Shell-rc Auto-Append: New helpers (
_qs_detect_shell_rc,_qs_append_export_to_rc) detect bash/zsh and appendexport LLM_<vendor>_API_KEY='...'lines safely (single-quote escaping for keys with$,',\,`, etc.; idempotent — won't duplicate). Fish/csh/tcsh users get a "add this manually" message instead. - Auto-Verification: After key entry, runs
cmd_testagainstanth_<vendor>_kimi-k2.5to confirm the key works. Failures print a warning but never abort quickstart.
Changed
- README + docs: Quickstart section reframed around the new interactive flow.
docs/claude-code-quickstart.mdwalkthrough shortened from 8 steps to 6 since the previous "sign up + paste key + test" steps now happen insidequickstartitself.
Preserved
- Non-TTY behavior is unchanged: when stdin isn't a terminal (CI, scripts, piped install),
quickstartfalls back to the original "provision every available catalog, no prompts" behavior. The existing 21 BATS tests continue to pass unmodified.
v1.5.2 — Anthropic Provider Enabled by Default
[1.5.2] - 2026-04-30
Changed
- Anthropic Provider Enabled by Default: The bundled
[anthropic]provider inconfig/llm-env.confnow ships withenabled=true. Anyone running Claude Code already has an Anthropic account, and disabling it by default forced an extra hand-edit to use the most-asked-for endpoint. SetLLM_ANTHROPIC_API_KEYand runllm-env set anthropic— no further setup needed.
v1.5.1 — Alibaba Scraper CDN Cache Bust
[1.5.1] - 2026-04-30
Fixed
- Alibaba Scraper: Routes
coding-plandocs fetch through the Jina reader proxy (https://r.jina.ai/) so the daily refresh sees current "Recommended models" content. Direct fetches were hitting Tengine's US-West edge cache which served days-old content (e.g.qwen3.5-pluswhile the page actually showedqwen3.6-plus). Tested cache-bust headers, query params, UAs, DNS resolvers, and direct IPs — none defeat the edge cache, so we egress through a different region. Direct HTML fetch is retained as a fallback. - Markdown Parser: New parser path for the proxy-returned markdown alongside the existing HTML parser. Both tolerate the new "Recommended models:" phrasing and the legacy "Recommended:" form.
v1.5.0 — Daily Quickstart Scraper + Docker E2E
[1.5.0] - 2026-04-30
Added
- Daily Quickstart Scraper (
scripts/update_quickstart.py): Python scraper that fetches synthetic's/openai/v1/modelsand the Alibaba Cloud Coding Plan docs page, classifies each model, and writes refreshedquickstart-{synthetic,alibaba}.jsonfiles. Suppresses quantization variants, applies a chat-only filter, and uses an AI-disambiguation fallback (synthetic GLM-4.7-Flash → GLM-4.7) for low-confidence classifications. - Anthropic Protocol Probe: For each synthetic model, the scraper sends a 1-token probe to the anthropic endpoint to determine availability rather than assuming it.
- GitHub Actions Workflow (
.github/workflows/update-quickstart.yml): Daily cron at 06:00 UTC (plusworkflow_dispatch) runs the scraper and opens a PR viapeter-evans/create-pull-requestif anything changed. Validation gate refuses to write malformed payloads, preserving last-known-good on partial failure. - API Key Gate: Scraper refuses to run without
LLM_SYNTHETIC_API_KEY(without it the anthropic probe silently degrades to openai-only). Override available viaLLM_ENV_SCRAPER_ALLOW_NO_KEY=1for tests. - Docker End-to-End Test (
tests/system/test_docker_e2e.bats+docker_e2e_runner.sh): Spins up a freshubuntu:22.04container, runsinstall.sh --offline, exercisesquickstart/list/set, and verifies provider/group counts computed dynamically from the source JSONs. Optional live-API sub-test gated onLLM_ENV_RUN_DOCKER_LIVE_TESTS=1.
v1.4.0 — Quickstart Schema v2 + Anthropic Protocol Support
[1.4.0] - 2026-04-30
Added
- Quickstart Schema v2: New
quickstart-{synthetic,alibaba}.jsonschema with top-levelendpoints.openaiandendpoints.anthropic, per-modelprotocols[]array, andfamily_latest{}map - Anthropic Protocol Quickstart: Synthetic and Alibaba quickstart files now provision both
openai_*andanth_*providers, automatically configuringprotocol=anthropicfor the latter - Per-Model Groups: Each model with both protocols available gets a
[group:<vendor>_<id>]binding, sollm-env set synth_kimi-k2.5activates bothOPENAI_*andANTHROPIC_*env vars in one shot - Family-Latest Aliases:
[group:synth_kimi],[group:synth_glm],[group:alibaba_qwen], etc., resolve to whichever model is currently latest in that effective family (subtype-aware:qwen-coderandqwen-thinkingtrack separately fromqwen) LLM_ENV_QUICKSTART_DIRenv var: Override the directory wherecmd_quickstartlooks for JSON files (used by integration tests and advanced setups)
Changed
- Naming Scheme: Quickstart-emitted providers are now
<protocol>_<vendor-short>_<model>(e.g.openai_synth_kimi-k2.5,anth_alibaba_qwen3.5-plus). Previous<vendor>-<model>names are no longer emitted. - Quickstart Parser: Rewritten with pure-bash JSON helpers. Quantization variants (
-NVFP4,-FP8, etc.) are no longer carried in the curated JSON files. Schema version is enforced — the parser rejects any file withoutschema_version: "2".
Removed
backend/synthetic-model-discovery.sh: stale prototype superseded by the upcoming Python scraper (PR2)test-quickstart.sh: ad-hoc shell test, replaced bytests/integration/test_quickstart.bats
Migration
Existing user configs are not modified. Provider sections written by older quickstart runs (e.g. [synthetic-kimi-k2-5]) continue to work — they just stop getting refreshed. To pick up the new naming and groups, re-run llm-env quickstart after updating to v1.4.0.
v1.3.5
v1.3.4
Bug Fix
- Fixed Claude Code model variables not updating when switching providers -
ANTHROPIC_DEFAULT_OPUS_MODEL,ANTHROPIC_DEFAULT_SONNET_MODEL,ANTHROPIC_DEFAULT_HAIKU_MODEL, andCLAUDE_CODE_SUBAGENT_MODELwere preserving stale values from previous sessions instead of updating to the new provider's model.
v1.3.3 - Fix zsh section_name output bug
Bug Fix
Fixed a Zsh compatibility issue where section_name=... was printed for every config section during llm-env set.
The Problem
When running llm-env set default in Zsh, spurious debug output appeared:
section_name=zai_glm-4_7
section_name=local_qwen3
section_name=k25
...
The Cause
In Zsh, re-declaring a local variable inside a loop prints its previous value. The local section_name declaration was inside the config parsing loop.
The Fix
Moved section_name to the variable declarations outside the loop, consistent with other loop variables that already had this fix applied.
v1.3.2 - Referral Sign-Up Links
What's New
Referral Sign-Up Funnel
Users are now guided to sign up with referral links at three key moments:
- After quickstart — "Get your API keys" shows clickable sign-up links
- On missing key error —
llm-env set <provider>shows the sign-up link when no API key is found - Quickstart footer — Always shows both referral links
Links are clickable in supported terminals (iTerm2, macOS Terminal, GNOME Terminal, VS Code, Windows Terminal).
New Features
signup_urlconfig field for providers (parsed from JSON and INI)demo-quickstart.sh— interactive demo script for walkthroughs
Quickstart JSON Updates
- Both
quickstart-synthetic.jsonandquickstart-alibaba.jsonnow includesignup_urlfields with referral codes
Full Changelog
See CHANGELOG.md
v1.3.1 - Quickstart Parser Fix & Alibaba Update
Fixes
Quickstart JSON Parser
Three bugs that caused only the first provider from each JSON file to be parsed:
- Brace counting used
wc -c(bytes) instead ofwc -l(lines) "providers": [on the same line wasn't detected as array start- Provider block closed at wrong brace level
Alibaba Quickstart
- Updated to correct Coding Plan endpoint:
coding-intl.dashscope.aliyuncs.com/v1 - Now includes only the 4 recommended models:
qwen3.5-plus,kimi-k2.5,glm-5,MiniMax-M2.5
Output
- Deduplicated API key export lines in quickstart next-steps output
Full Changelog
See CHANGELOG.md