install-mfw
Install the mfw (Semgrep Malware Firewall) CLI via the curl|sh installer and walk the user through setup — trust store, PATH shims, shell integration, and the background daemon — asking questions at real decision points. Detects when the user's shell rc files are *managed* (symlinked into nix / home-manager / chezmoi / GNU stow / a dotfiles git repo) and, instead of clobbering them, adds mfw's source line to the right source-of-truth. Use when the user wants to install, set up, or onboard mfw on this machine.
Install
With your agent
Install OMGSkills skill "semgrep/guardian:plugin/skills/install-mfw" into this agent's normal skills directory: call the OMGSkills MCP get_install_plan tool for your agent and run the script it returns (it installs only the pinned commit and verifies SKILL.md), and stop if MCP or the pin is unavailable. Do not overwrite or change existing skills without asking me.
Manual command
git clone https://github.com/semgrep/guardian /tmp/guardian && ln -s /tmp/guardian/plugin/skills/install-mfw ~/.claude/skills/install-mfw
From README
mfw and set up the mfw client — Semgrep's Malware Firewall, a local MITM proxy that gates package-manager downloads (pip / npm / pnpm / uv / cargo / maven / gem / nuget / composer / go) on Semgrep's backend before bytes hit disk. $ARGUMENTS may carry a backend/dist URL override (e.g. https://example.semgrep.dev) or --store system. Default backend is https://semgrep.dev (mfw is distributed off prod). If empty, use the defaults. Your job: drive the end to end, ask the user only at genuine decision points (via AskUserQuestion), and — the part that needs care — never edit a managed (symlinked) shell rc file in place. Work through the steps in order.
More from this repo
add-and-validate-guardian-developer-semgrep-rule
write a custom semgrep rule with the user, add it to guardian in either user or repo scope, and prove it fires by...
remove-guardian-developer-semgrep-rule
Remove a custom Semgrep rule from Guardian — list what is installed, work out which file holds the rule, and delete or...
