Skip to content

Releases: miuzel/comma-cli

v0.27.1

Choose a tag to compare

@github-actions github-actions released this 25 Aug 18:41

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

Choose a tag to compare

@github-actions github-actions released this 12 Aug 17:58

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

Choose a tag to compare

@github-actions github-actions released this 12 Aug 17:21

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

Choose a tag to compare

@github-actions github-actions released this 12 Aug 11:36

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

Choose a tag to compare

@github-actions github-actions released this 08 Aug 17:24

What's new

, --setup — interactive configuration wizard. No more hand-editing config.json:

  • Run , --setup to 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>.bak first, 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

Choose a tag to compare

@github-actions github-actions released this 07 Aug 21:30

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 external curl when 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

Choose a tag to compare

@github-actions github-actions released this 07 Aug 10:57

Safer self-updates:

  • , --update and 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 — y writes auto_update: false to your config for you.

Full Changelog: v0.23.0...v0.24.0

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 07:58

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 search config.
  • Token usage line localized in all 9 UI languages.

Full Changelog: v0.22.3...v0.23.0

v0.22.3

Choose a tag to compare

@github-actions github-actions released this 03 Aug 13:55

Full Changelog: v0.22.2...v0.22.3

v0.22.2

Choose a tag to compare

@github-actions github-actions released this 03 Aug 13:44

Full Changelog: v0.22.1...v0.22.2