A local-first macOS desktop app for managing AI coding tool rules, Skills, MCP, and configs.
AI coding tools often keep their rules, Skills, MCP entries, and configuration files in different local paths. A rule that works well in one agent often has to be copied and edited again for another tool. Whether a Skill is actually available to a specific tool can also require checking folders and tool-specific behavior by hand.
Modus gives those local assets one visible, reusable, and auditable workspace. You can manage rules, Skills, MCP, and config files in one interface, then review the exact file changes before anything is written.
Tool support is based on each tool's official documentation plus local verification of real macOS behavior, especially when the docs do not fully specify where rules, Skills, MCP, or config sources live on disk. Modus treats support as a capability matrix, so a tool can be supported for discovery or read-only review even when a specific write action has not been verified.
- Inject one global rule set across tools: Maintain shared rules once and sync them into supported tools so different agents work under the same constraints without repeated manual edits.
- See whether a Skill is usable by each tool: Skill cards show per-tool availability, making it clear which tools can currently use a given Skill.
- Support shared Skills and tool-local Skills: Modus distinguishes tools that support user-level shared Skills from tools that only read tool-local Skill folders. It is compatible with common
skill.shcommunity install patterns, including linking a shared Skill into a tool folder while keeping one maintainable source. - Reuse polished Skills across tools: A Skill refined inside one tool can be copied into another tool without rebuilding the same folder by hand.
- Unload Skills that waste context: Too many Skills can consume context. Modus makes it easy to uninstall a Skill from one tool or delete a source after review.
- Edit dotfile configs from one place: Agent configuration often lives in local dotfile directories and usually requires a terminal or IDE. Modus brings supported config entries into one editing surface.
- Audit file changes before writing: Creates, edits, deletes, and symlinks are previewed before confirmation, reducing the risk of accidentally removing rules or Skills you have already refined.
| Rules | Skills |
|---|---|
| MCP | Config |
|---|---|
| Surface | What Modus does |
|---|---|
| Dashboard | Summarizes managed tools and visible local assets. |
| Rules | Manages global rules and tool-owned rule files. |
| Skills | Manages shared and tool-specific local Skill sources. |
| MCP | Shows and edits supported MCP server configuration entries. |
| Config | Shows tool configuration file state and paths. |
| Settings | Controls Modus preferences, enabled tools, and custom paths. |
Current verified built-in tool support covers:
- Claude Code
- Codex
- CodeBuddy
- Cursor
- GitHub Copilot
- Hermes Agent
- Kiro
- OpenClaw
- OpenCode
- Pi Agent
- Qoder
- Trae
- Trae CN
- Trae Solo
- Trae Solo CN
- Windsurf
- WorkBuddy
Settings can also register custom local tools by path. Custom tools are user-configured entries and are separate from the built-in support list above.
Modus is not a model proxy, API router, account manager, subscription manager, remote Skill store, or cloud sync service. It does not upload local configuration files, manage model credentials, or route requests for other tools.
Download the latest build from GitHub Releases. If no release asset is available yet, run Modus from source.
Current macOS release assets are not yet signed with an Apple Developer ID or notarized by Apple. macOS may ask you to approve the app manually in Privacy & Security before the first launch.
Requirements:
- Node.js 18 or newer
- Rust toolchain
- Tauri 2 CLI, used through the project scripts
Run the development sandbox:
npm install
npm run tauri:devThe development sandbox writes Modus app data to ~/.modus-dev/ and uses sandbox tool directories. To test against real local tool state before release, use the pre-release entry:
npm run tauri:pre-releaseCommon checks:
npm test
npm run build
npm run verifyBuild commands:
npm run tauri build
npm run tauri:build:pre-release -- --config '{"version":"1.0.1-test.1"}'MIT