Skip to content

v4.0.0 — Skills, safer tools, and a better terminal

Choose a tag to compare

@panjie panjie released this 02 Aug 13:45
· 42 commits to main since this release

Mods v4.0.0

A major step forward for Mods as a safe, capable terminal agent. Since v3.3.0, this release adds a first-class skills system, rebuilds the terminal experience, strengthens tool approvals, modernizes provider integrations, and makes configuration much easier to understand and maintain.

The theme of v4 is simple: give the model more useful capabilities while keeping the user firmly in control.

✨ Highlights

🧩 Skills are now first-class

  • Load SKILL.md-compatible skills from multiple user, portable, or project directories.
  • Inspect installed skills with --list-skills and see the effective search path with --skills-dirs.
  • Models can discover and load relevant instructions on demand through the new search_skills and load_skill tools.
  • Same-name skills follow predictable directory precedence, making local overrides straightforward.

🛡️ Safer, more capable tool use

  • Directory approvals now distinguish read from write access and persist within a conversation.
  • Shell review understands more read-only pipelines, redirects, globs, external paths, and PowerShell constructs while failing safely when intent is unclear.
  • Approval flows now work in pipe mode, and read-only MCP annotations can skip unnecessary prompts.
  • New interactive workflows let models ask focused questions, present forms and multi-select choices, and request elevated input without exposing secrets in normal output.
  • Filesystem editing gains exact replacements and atomic unified/Codex-format multi-file patches.

🖥️ A rebuilt terminal experience

  • Migrated the interactive UI to Charm TUI v2 with a unified theme, cleaner forms, a dynamic multi-line composer, and more consistent cursor behavior.
  • Tool progress and completed results are easier to follow, while --hide-tool-status keeps quiet workflows quiet.
  • Session browsing now includes transcript search, wrapping controls, and debug transcript copying.
  • --show-token-usage / -s reports input, output, and total tokens without polluting stdout.
  • CLI help is regrouped by purpose, and the new mods_help tool gives the model version-matched self-help generated from the live flag catalog.

🤖 Modern provider integrations

  • Official OpenAI requests now use the Responses API with store: false, preserving the response items needed for stateless reasoning and tool continuation locally.
  • DeepSeek Responses support adds hosted web search, reasoning events, and Codex-compatible free-form patching for supported models.
  • GitHub Copilot joins the setup wizard with device authentication and automatic model discovery.
  • Anthropic tool continuations now preserve thinking, signature, redacted-thinking, and tool-use blocks exactly.
  • Gemini and Ollama thinking behavior has been aligned with each provider's native APIs, with clearer validation for unsupported settings.

⚙️ Configuration and cross-platform polish

  • mods --settings '<yaml>' can recursively merge settings without rewriting unrelated values; config writes preserve template order and layout.
  • mods --dirs exposes the effective config, data, cache, and skills locations.
  • Config, sessions, and install paths now follow portable XDG-style conventions consistently across macOS, Linux, and Windows.
  • The setup wizard is more robust, supports provider model discovery, and makes the default model selection explicit.
  • Shell tools are enabled by default, with the strengthened review system guarding mutable operations.

⚠️ Upgrade notes

  • Web search is now opt-in. DuckDuckGo support has been removed; local search uses Tavily or a configured custom provider, while supported endpoints can use provider-hosted search.
  • The max-input-chars, max-tokens, no-limit, and builtin-tools.shell-max-output settings were removed, along with the related truncation behavior.
  • The sequential-thinking / thinking_note tool was removed; provider-native thinking and normal tool orchestration replace it.
  • The --enable-mcp and --disable-mcp flags were removed. Configure MCP servers directly and inspect them with --list-mcps.
  • The default source-install destination is now ~/.local/bin on every platform unless BINDIR, PREFIX, DESTDIR, or XDG_BIN_HOME overrides it.
  • Direct requests to api.openai.com now use Responses rather than Chat Completions. Azure OpenAI, custom base URLs, and other OpenAI-compatible providers continue to use Chat Completions unless configured otherwise.

📦 Install

brew install panjie/tap/mods

Prebuilt archives for macOS, Linux, and Windows are attached below, together with checksums.

Full changelog: v3.3.0...v4.0.0