Skip to content

v0.5.0

Choose a tag to compare

@schowave schowave released this 12 Oct 21:33
· 27 commits to main since this release

Security hardening

  • The key only goes to its gateway. llmenu records which gateway a key was stored for (llmenu setup, llmenu config set gateway.url; keys from older versions are bound on first use). If config.toml or LLMENU_BASE_URL later points elsewhere, llmenu asks on a terminal and otherwise refuses to send the key. A key from LLMENU_API_KEY is not bound.
  • No plain http by accident. setup and config set gateway.url accept http:// only for localhost; a URL from the config or environment that uses plain http triggers a warning.
  • Symlink-safe writes. Config, state, benchmarks, the keyring file and the files of pi and opencode (including their *.bak backups) are written via random temporary names, so a planted symlink is never followed.
  • Bounded responses: gateway and benchmark responses are limited to 16 MB.
  • Keyring file: LLMENU_KEYRING_FILE (tests and sandbox only) is always written with mode 0600.
  • Signed provenance for release archives: gh attestation verify <archive> --repo schowave/llmenu.
  • SECURITY.md now explains what a tool started by llmenu can see (the key is in its environment).

README

More compact; the projects section is titled "one key per project".

Upgrade

brew update && brew upgrade --cask llmenu

If a gateway URL was changed behind llmenu's back, the next start asks once whether the key may go there; llmenu config set gateway.url <url> confirms it.