Skip to content

Releases: samestrin/llm-env

v1.6.0 — Interactive Quickstart

01 May 21:02
dc54e08

Choose a tag to compare

[1.6.0] - 2026-05-01

Added

  • Interactive Quickstart: llm-env quickstart now 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 (~/.bashrc or ~/.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, and llm-env quickstart all for scripted use.
  • Shell-rc Auto-Append: New helpers (_qs_detect_shell_rc, _qs_append_export_to_rc) detect bash/zsh and append export 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_test against anth_<vendor>_kimi-k2.5 to 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.md walkthrough shortened from 8 steps to 6 since the previous "sign up + paste key + test" steps now happen inside quickstart itself.

Preserved

  • Non-TTY behavior is unchanged: when stdin isn't a terminal (CI, scripts, piped install), quickstart falls 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

01 May 21:02

Choose a tag to compare

[1.5.2] - 2026-04-30

Changed

  • Anthropic Provider Enabled by Default: The bundled [anthropic] provider in config/llm-env.conf now ships with enabled=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. Set LLM_ANTHROPIC_API_KEY and run llm-env set anthropic — no further setup needed.

v1.5.1 — Alibaba Scraper CDN Cache Bust

01 May 21:02

Choose a tag to compare

[1.5.1] - 2026-04-30

Fixed

  • Alibaba Scraper: Routes coding-plan docs 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-plus while the page actually showed qwen3.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

01 May 21:02

Choose a tag to compare

[1.5.0] - 2026-04-30

Added

  • Daily Quickstart Scraper (scripts/update_quickstart.py): Python scraper that fetches synthetic's /openai/v1/models and the Alibaba Cloud Coding Plan docs page, classifies each model, and writes refreshed quickstart-{synthetic,alibaba}.json files. 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 (plus workflow_dispatch) runs the scraper and opens a PR via peter-evans/create-pull-request if 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 via LLM_ENV_SCRAPER_ALLOW_NO_KEY=1 for tests.
  • Docker End-to-End Test (tests/system/test_docker_e2e.bats + docker_e2e_runner.sh): Spins up a fresh ubuntu:22.04 container, runs install.sh --offline, exercises quickstart/list/set, and verifies provider/group counts computed dynamically from the source JSONs. Optional live-API sub-test gated on LLM_ENV_RUN_DOCKER_LIVE_TESTS=1.

v1.4.0 — Quickstart Schema v2 + Anthropic Protocol Support

01 May 21:02

Choose a tag to compare

[1.4.0] - 2026-04-30

Added

  • Quickstart Schema v2: New quickstart-{synthetic,alibaba}.json schema with top-level endpoints.openai and endpoints.anthropic, per-model protocols[] array, and family_latest{} map
  • Anthropic Protocol Quickstart: Synthetic and Alibaba quickstart files now provision both openai_* and anth_* providers, automatically configuring protocol=anthropic for the latter
  • Per-Model Groups: Each model with both protocols available gets a [group:<vendor>_<id>] binding, so llm-env set synth_kimi-k2.5 activates both OPENAI_* and ANTHROPIC_* 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-coder and qwen-thinking track separately from qwen)
  • LLM_ENV_QUICKSTART_DIR env var: Override the directory where cmd_quickstart looks 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 without schema_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 by tests/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

22 Mar 18:54

Choose a tag to compare

Bug Fixes

  • Set ANTHROPIC_API_KEY from auth_token - When using providers with auth_token_var instead of api_key_var, ANTHROPIC_API_KEY is now set from the auth token as a fallback, ensuring Claude Code works correctly with these providers.

v1.3.4

22 Mar 18:46

Choose a tag to compare

Bug Fix

  • Fixed Claude Code model variables not updating when switching providers - ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL, ANTHROPIC_DEFAULT_HAIKU_MODEL, and CLAUDE_CODE_SUBAGENT_MODEL were preserving stale values from previous sessions instead of updating to the new provider's model.

v1.3.3 - Fix zsh section_name output bug

21 Mar 19:14

Choose a tag to compare

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

20 Mar 23:23

Choose a tag to compare

What's New

Referral Sign-Up Funnel

Users are now guided to sign up with referral links at three key moments:

  1. After quickstart — "Get your API keys" shows clickable sign-up links
  2. On missing key errorllm-env set <provider> shows the sign-up link when no API key is found
  3. 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_url config field for providers (parsed from JSON and INI)
  • demo-quickstart.sh — interactive demo script for walkthroughs

Quickstart JSON Updates

  • Both quickstart-synthetic.json and quickstart-alibaba.json now include signup_url fields with referral codes

Full Changelog

See CHANGELOG.md

v1.3.1 - Quickstart Parser Fix & Alibaba Update

19 Mar 19:10

Choose a tag to compare

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 of wc -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