v4.0.0 — Skills, safer tools, and a better terminal
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-skillsand see the effective search path with--skills-dirs. - Models can discover and load relevant instructions on demand through the new
search_skillsandload_skilltools. - 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-statuskeeps quiet workflows quiet. - Session browsing now includes transcript search, wrapping controls, and debug transcript copying.
--show-token-usage/-sreports input, output, and total tokens without polluting stdout.- CLI help is regrouped by purpose, and the new
mods_helptool 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 --dirsexposes 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, andbuiltin-tools.shell-max-outputsettings were removed, along with the related truncation behavior. - The sequential-thinking /
thinking_notetool was removed; provider-native thinking and normal tool orchestration replace it. - The
--enable-mcpand--disable-mcpflags were removed. Configure MCP servers directly and inspect them with--list-mcps. - The default source-install destination is now
~/.local/binon every platform unlessBINDIR,PREFIX,DESTDIR, orXDG_BIN_HOMEoverrides it. - Direct requests to
api.openai.comnow 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/modsPrebuilt archives for macOS, Linux, and Windows are attached below, together with checksums.
Full changelog: v3.3.0...v4.0.0