Loadout is a native macOS menu bar utility for managing agent skills and MCP servers across global and repo-local configuration. It gives engineers an extension-manager style view of what is installed, what is active for the selected project, what is duplicated, and what can be changed safely.
Loadout is built for developers who already work in tools such as Codex, Claude, .agents compatible CLIs, and MCP-enabled editor or agent setups. It does not try to own your workflow. It reads the configuration already on disk and gives you a safer control surface for common changes.
- Shows global and project-level skills and MCP servers in one registry.
- Keeps the selected project across app restarts and tracks recent projects.
- Groups global items above project items, with collapsible enabled and disabled sections.
- Filters by source family: All,
.agents,.codex,.claude, and Other. - Enables, disables, archives, and deletes editable skills.
- Disables and archives editable MCP entries in
.mcp.jsonand Codexconfig.toml. - Detects duplicate or conflicting global/project definitions.
- Detects
.agentscompatible skill overlap with tool-specific skill folders such as.codex/skills. - Renders
SKILL.mdcontent with parsed frontmatter and an associated file browser. - Reveals source paths in Finder from the manager.
- Stores recoverable archive and disabled-skill records under Application Support.
Loadout does not inspect the focused terminal to guess a project. The app uses an explicit selected project model:
- Choose a project from the menu bar popover or manager toolbar.
- Loadout resolves the selected directory to a git repo root when possible.
- The selected project is persisted across restarts.
- Recent projects remain available from the menu bar and manager.
This keeps the app independent of terminal-specific automation APIs and works consistently across iTerm2, Kitty, Ghostty, WezTerm, Terminal, editor terminals, and plain Finder-selected folders.
Global skills:
~/.codex/skills~/.agents/skills~/.claude/skills
Project skills:
<project>/.agents/skills<project>/.codex/skills<project>/.claude/skills<project>/skills<project>/plugin/*/skills
MCP servers:
- Global Codex MCP entries in
~/.codex/config.toml - Project MCP entries in
<project>/.mcp.json
Read-only sources, such as plugin cache or system-managed folders, are shown for visibility but mutation controls are disabled.
Loadout prefers recoverable changes where practical:
- Disable skill: moves the skill folder to
~/Library/Application Support/Loadout/DisabledSkills. - Enable skill: restores a disabled skill to its original path.
- Archive skill: moves the skill folder to
~/Library/Application Support/Loadout/Quarantine. - Archive MCP entry: snapshots the config file, removes the active entry, and stores archive metadata.
- Disable or delete MCP entry: removes the active config entry and writes a
.bakbackup first. - Delete skill: permanently removes the active or disabled skill folder.
Configuration health decisions use the same safety model. Exact duplicates are deactivated. Conflicting definitions are archived when a decision replaces an editable copy.
Requirements:
- macOS 14 or newer
- Swift 6 toolchain
- Xcode command line tools
Run tests:
swift testBuild a development app bundle:
./scripts/build-app.shBuild a release app bundle:
CONFIGURATION=release ./scripts/build-app.shThe script prints the generated .app path under SwiftPM's build directory.
Production releases should be Developer ID signed and notarized. Use the signed release script once a Developer ID Application certificate and notarytool profile are configured:
SIGN_IDENTITY="Developer ID Application: Name (TEAMID)" \
NOTARY_PROFILE="loadout-notary" \
APP_VERSION="0.1.0" \
./scripts/release-app.shThe default release artifact is a notarized DMG with Loadout.app and an Applications shortcut. PACKAGE_FORMAT=zip creates a notarized app zip instead, and PACKAGE_FORMAT=both creates both.
Use DMG for public releases. ZIP is acceptable for direct technical distribution. PKG is not needed unless Loadout later installs privileged helpers, launch daemons, command-line tools outside the app bundle, or files in multiple system locations.
The app is a Swift Package Manager executable target that builds into an app bundle through scripts/build-app.sh.
Useful commands:
make test
make build
make app
make release-app
make signed-releaseMain implementation areas:
Sources/Loadout/Registry: inventory, source classification, overlap detection, diagnosticsSources/Loadout/Config: MCP config parsing, mutation planning, and writingSources/Loadout/Quarantine: archive storage and restore behaviorSources/Loadout/UI: menu bar, manager window, registry, inspector, diagnostics, archiveSources/Loadout/Context: selected project and recent project persistence


