by migsilva89
See and manage what your coding assistants load — skills, commands, subagents, plugins and MCP servers, with real usage.
# Add to your Claude Code skills
git clone https://github.com/migsilva89/loadoutloadout is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by migsilva89. See and manage what your coding assistants load — skills, commands, subagents, plugins and MCP servers, with real usage. It has 50 GitHub stars.
loadout's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/migsilva89/loadout" and add it to your Claude Code skills directory (see the Installation section above).
loadout is primarily written in Swift. It is open-source under migsilva89 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh loadout against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
claude, codex or opencode to change a skill; it proposes, you accept change by changermbrew install --cask migsilva89/loadout/loadout
Or download the latest release — the website
points at the same file — and drag Loadout.app into /Applications. The disk image is signed and
notarised, so it opens without a Gatekeeper warning and without a trip through System Settings.
macOS 15 or later, on Apple silicon or Intel.
Or build it yourself, which needs Xcode:
git clone https://github.com/migsilva89/loadout.git
cd loadout
./Scripts/build-app.sh
open dist/Loadout.app
Select a skill and press Ask. A conversation opens in a column beside the editor, using the assistant CLI already installed and the subscription it already has — there is no API key.
The assistant never works in your folder. Loadout copies the skill's folder somewhere disposable and runs the assistant there, then compares the two and opens each change up inside the document: the old lines struck through above the new, with Accept and Reject beside each one. Accepting edits the draft; the file on disk changes when you save, with the usual backup first.
A skill is a folder, so files beside SKILL.md are listed too and written by the same save. The
conversation is remembered per skill and picks up where it left off tomorrow; History has the
earlier ones.
In the New skill sheet, Create and ask makes the skeleton and hands it to an assistant with what you typed as the brief, so the description and body come back as proposals.
Each assistant reads its skills from ~/.<name>/skills — ~/.claude/skills, ~/.codex/skills,
and so on. Loadout finds them by itself: any such folder that exists is included, and an assistant
installed tomorrow shows up without a code change.
Clicking an assistant that does not have the skill puts it there. On disk, the folder is promoted
to ~/.agents/skills/<name> and each assistant gets a symlink to it — one copy, one edit, both
sides always the same. Clicking a lit mark removes only that link, never the one real copy. The
Loadout menu has Sync all with … to close the gaps at once.
If two assistants have their own, possibly different, copies of the same skill, the app refuses to merge them on its own and says why.
| Data | Location | Written by Loadout? |
|---|---|---|
| Your skills, commands, subagents and MCP servers | ~/.claude/, ~/.codex/, ~/.<assistant>/ |
Only when you save, create, delete or share |
| Backups, taken before every write | ~/Library/Application Support/Loadout/backups/ |
Yes |
| Usage index, rebuildable | ~/Library/Application Support/Loadout/usage.sqlite |
Yes |
| Working copies for the assistant conversation | ~/Library/Application Support/Loadout/ask-workspaces/ |
Yes |
| The assistants' session logs | ~/.claude/projects/, ~/.codex/sessions/ |
Never — read only |
Loadout keeps its own files out of ~/.claude: that directory belongs to Claude, and an app that
keeps its database in someone else's folder is a surprise waiting for whoever wipes .claude to
fix something.
The app itself makes no network calls. The assistant CLI it runs on your behalf talks to its own provider, with the credentials already on your machine; Loadout never sees them.
The test suite never touches any of this: every test runs against a temporary tree, which is why
Paths takes its root by injection.
See SECURITY.md. The areas that matter here: writes outside the expected directories, command execution driven by file contents, and any path where a backup fails without stopping the write.
See CONTRIBUTING.md for the scope, how to run the tests, and what a pull request needs. A feature outside that scope will be declined however well it is written, so open an issue first. The specification, with the acceptance criteria one by one, is in docs/SPEC.md.
A personal project, maintained when it suits. It works and is used every day, but it does not come with a product's promise of support.
Releases are built by ./Scripts/release.sh, which refuses to run from a dirty tree, an untagged
commit or a branch other than main, and runs the tests before signing anything.
Loadout updates itself. A release publishes three files together — the disk image, an identical
copy named Loadout-<version>-update.dmg, and a signed appcast.xml that points installed copies
at it. The app only accepts an update signed with the key it was built with. release.sh will not
print the publish command unless that signed feed exists.
MIT.