Releases: miuzel/comma-cli
Release list
v0.27.1
v0.27.1
Comma is now a 2.5MB binary (down from ~3.4MB): the network layer was migrated from reqwest to ureq and the release profile tightened, so installs are smaller and startup stays instant. This release also adds a real CI pipeline (fmt/clippy/build/test on Linux/macOS/Windows), moves to Rust edition 2024, and ships semi-automatic release notes + Homebrew tooling.
Performance / Size
- slim release binary via reqwest→ureq + tighter release profile (g-007)
[profile.release]:panic = "abort",codegen-units = 1- binary: ~3.4MB → ~2.5MB (−27%, target ≥10%); reqwest/hyper/tokio/tower removed
- docs: update README size claim to 2.5MB binary (g-007)
Engineering / Reliability
- ci: add fmt/clippy/build/test workflow (ubuntu/macos/windows) (P1-4, g-006)
- feat: add release automation scripts (update-tap.sh, release-notes.sh)
Modernization / Quality
- chore: migrate to Rust edition 2024 and normalize formatting (P2-6, g-008)
- deps: replace atty with std::io::IsTerminal (P0-2)
- chore: fix all 20 clippy warnings (0 remaining)
Full Changelog: v0.26.2...v0.27.1
v0.26.2
On Windows, comma now detects when it is launched from a PowerShell window by looking at the PSModulePath environment variable, so the system context reports powershell instead of defaulting to cmd.exe. Combined with the PowerShell syntax guidance in v0.26.1, this stops the model from generating cmd-only operators like AND in PowerShell sessions.
Full Changelog: v0.26.1...v0.26.2
v0.26.1
Teaches the model to use PowerShell-native syntax when the reported shell is PowerShell (chain with semicolons, not AND; use env:VAR). Adds a new , --default-prompt flag to print the built-in default system prompt, and removes the repository prompt.md reference copy so only the compiled-in DEFAULT_PROMPT is maintained.
Full Changelog: v0.26.0...v0.26.1
v0.26.0
Run generated commands in the user's actual shell (SHELL -c on Unix) instead of hardcoding sh -c, so shell dialect, exported variables and syntax match the shell the model was told to generate for. Also teaches the model to avoid unexported shell-specific variables like ZSH_CUSTOM and use absolute paths instead.
Full Changelog: v0.25.0...v0.26.0
v0.25.0
What's new
, --setup — interactive configuration wizard. No more hand-editing config.json:
- Run
, --setupto manage LLM providers: add, edit, delete, and reorder them (the order is the fallback order — the first provider is primary, the rest are tried in sequence on failure). API tokens are shown masked (sk-a…56) when editing. - Pick the web-search backend for
#SEARCH:(DuckDuckGo/Mojeek keyless, Brave/Tavily with API key, SearXNG self-hosted) or turn search off entirely. - The wizard also starts automatically the first time you run
,with no provider configured, so new installs get going without reading docs. - Saving backs up your existing config to
config.json.<timestamp>.bakfirst, writes atomically, and preserves any keys the wizard doesn't know about.
Prompt customization without losing upgrades. The default system prompt is now compiled in, so it improves with every release even if you customized it before. To add your own rules, create additional_prompt.md next to your config (~/.config/comma/) — it's appended to the default. For a total override, set the full_prompt config key to a file path or inline template text.
Uninstall keeps your files. uninstall.sh now removes only the binary, the response cache, and the self-update temp dir. Your config.json, prompt.md, and additional_prompt.md are kept and listed at the end.
Full Changelog: v0.24.1...v0.25.0
v0.24.1
Fix: web search results now include full page context, not just title/URL/snippet.
- Tavily: requests
search_depth: "advanced"+include_raw_content, returning cleaned page text per result. The POST now goes through an externalcurlwhen available — Tavily serves a degraded pipeline (opaque redirect URLs, no page content) to rustls clients based on TLS fingerprint. - Brave: switched to the LLM Context endpoint (
/res/v1/llm/context), which returns pre-extracted page content built for LLM grounding (included in every Search plan, same key). - Page content is truncated to 3000 chars per result before being fed back to the model. DuckDuckGo / Mojeek / SearXNG are unchanged (snippet-only backends).
Full Changelog: v0.24.0...v0.24.1
v0.24.0
Safer self-updates:
, --updateand the periodic auto-update check now show this changelog and ask for consent BEFORE replacing the binary.- Declining an auto-update offer can disable future checks —
ywritesauto_update: falseto your config for you.
Full Changelog: v0.23.0...v0.24.0
v0.23.0
Web search protocol (#SEARCH:):
- The model can search the web when the intent needs current information (latest versions, recent changes); results are fed back before the final command.
- Backends: Brave/Tavily (API key), SearXNG (self-hosted), DuckDuckGo/Mojeek (keyless scraping, DDG falls back to Mojeek). OFF by default — pick a backend in the
searchconfig. - Token usage line localized in all 9 UI languages.
Full Changelog: v0.22.3...v0.23.0