Skip to main content
Glama

Skarn guard: Agent-Plugins

Hook-Konfiguration, Agent-Skills und eine lokale MCP-Server-Deklaration für Skarn, verpackt für vier Hosts, wobei ein fünfter Host aus seinem eigenen Repository bedient wird. Dieses Repository wird bei jeder Skarn-Version generiert. Es enthält keine Binärdatei, keine Erkennungsregeln und keinen Engine-Code.

Fünf Einheiten leben hier, vier davon sind Guard-Einheiten. claude/ und codex/ sind Plugins im Marktplatz, den das Root-Manifest dieses Repositorys bedient, für Claude Code und Codex CLI. antigravity/ ist ein Plugin-Verzeichnis für die Antigravity CLI (agy). Die Repository-Wurzel ist selbst eine Gemini-CLI-Erweiterung, weil Googles Installer und Galerie-Crawler das Manifest aus der Wurzel lesen. Eine Datei an der Wurzel ist entweder eine Repository-Ebene-Datei (diese README, LICENSE, SECURITY.md, das Marktplatz-Manifest) oder eine Gemini-Datei (gemini-extension.json, GEMINI.md, hooks/, skills/); jeder andere Host bekommt ein Unterverzeichnis. Die fünfte Einheit, recall/, ist ein reines Skill-Plugin im selben Marktplatz: ein Skill, keine Hooks, kein MCP-Server. Die Cursor-Einheit ist überhaupt nicht in diesem Repository; sie lebt unter https://github.com/skarn-security/cursor-plugin.

Der Guard ist ein Pre-Execution-Hook. Bevor Ihr Agent einen Shell-Befehl ausführt, einen Patch anwendet, eine Datei schreibt, eine URL abruft, ein MCP-Tool aufruft oder eine Eingabeaufforderung an den Modellanbieter sendet, wird die anstehende Aktion von der Skarn-Erkennungsengine auf Ihrem Rechner gescannt und erhält ein Urteil: deny (blockieren), ask (an Sie eskalieren) oder allow (still). Er scannt lokal, macht keinen Netzwerkaufruf und gibt niemals ein rohes Geheimnis aus – ein Urteil nennt die Regel und eine redigierte Vorschau.

Installation

Installieren Sie zuerst die skarn-Binärdatei (das Plugin enthält sie nicht; die Hooks rufen skarn guard auf Ihrem PATH auf):

brew install skarn-security/tap/skarn

Claude Code:

claude plugin marketplace add skarn-security/agent-guard
claude plugin install skarn-guard@skarn

Codex CLI:

codex plugin marketplace add skarn-security/agent-guard
codex plugin add skarn-guard-codex@skarn

Die beiden Guard-Plugins tragen unterschiedliche Namen, weil ein Marktplatz nicht zwei Plugins unter demselben Namen enthalten kann, und jedes liefert die Hook-Form seines Hosts (Ereignisnamen, Tool-Matcher und das --agent, auf das der Guard routet). Installieren Sie das für den Host, den Sie verdrahten. Beide tragen den skarn-audit-Skill, der skarn assess und skarn vet über diesen Rechner ausführt und redigierte Befunde meldet. Die Redaktion maskiert die von Skarn erkannten Anmeldedatenwerte; der umgebende Transkriptkontext in einem Befund stammt weiterhin aus der Sitzung, daher behandelt der Skill ein gesamtes Ergebnis als Sitzungsdaten und nicht als sicheren Text.

Codex fragt Sie beim ersten Start nach der Installation, ob Sie den Hooks vertrauen: Wählen Sie „Allen vertrauen und fortfahren“ bei der Eingabeaufforderung „Hooks müssen überprüft werden“. Bis Sie das tun, laufen die Hooks nicht und der Guard schützt Sie nicht. Vertrauen ist ein Inhalts-Hash pro Hook, daher fragt jede spätere Änderung an einem Hook (eine Versionserhöhung oder der Wechsel von Audit zu Enforce) erneut. Claude Code benötigt keinen Vertrauensschritt; die Hooks sind in Ihrer nächsten Sitzung aktiv.

skarn-recall ist ein drittes Plugin im selben Marktplatz, und der obige Marktplatz-Zusatz erreicht es bereits. Es trägt einen Skill, keine Hooks und nichts Host-spezifisches, sodass dasselbe Plugin beiden Hosts dient:

claude plugin install skarn-recall@skarn
codex plugin add skarn-recall@skarn

Dieser Skill rekonstruiert, woran Sie gearbeitet haben, aus Ihren Sitzungstranskripten, weshalb er getrennt vom Guard ausgeliefert wird und nicht darin. Transkriptinhalte, die er liest, verlassen Ihren Rechner zum Modellanbieter, der den Agenten bedient; die Redaktion maskiert die von Skarn erkannten Anmeldedaten, nicht alles, was Sie als sensibel bezeichnen würden. Installieren Sie ihn, wenn Sie das möchten, und begrenzen Sie, was er liest, nach Projekt und Zeitfenster.

Gemini CLI installiert dieses Repository als Erweiterung, die dieselben Guard-Hooks im Audit-Modus, den skarn-audit-Skill, eine GEMINI.md-Kontextdatei und den unten stehenden MCP-Server enthält:

gemini extensions install https://github.com/skarn-security/agent-guard
gemini extensions list
gemini extensions uninstall skarn

Die Installation fragt nach Zustimmung, weil die Erweiterung sowohl Hooks als auch einen MCP-Server deklariert, und sie bittet Sie, dem Ordner zu vertrauen. Beantworten Sie beides.

Antigravity CLI installiert das antigravity/-Verzeichnis eines Klons:

git clone https://github.com/skarn-security/agent-guard
agy plugin install agent-guard/antigravity
agy plugin list
agy plugin uninstall skarn-guard

agy plugin list meldet das Plugin mit seinen Hook-, Skill- und MCP-Server-Zählern. Das manuelle Kopieren von antigravity/ nach ~/.gemini/config/plugins/skarn-guard/ bewirkt dasselbe.

Cursor hat sein eigenes Repository, https://github.com/skarn-security/cursor-plugin, das von derselben Version generiert wird. Cursors Marktplatz und seine Überprüfung sind pro Repository, weshalb diese Einheit nicht hier lebt.

skarn setup ist der alternative Installationspfad für Claude Code, Codex CLI, Cursor, Copilot CLI, Gemini CLI und Grok Build: Es fügt dieselben Hooks in die native Konfiguration jedes dieser Hosts ein, ohne das Plugin-System. Es kennt die Antigravity CLI nicht, daher installiert dieser Host das obige Plugin-Verzeichnis oder fügt seine Hook-Datei manuell zusammen.

Related MCP server: netallion-mcp-lite

Lokaler MCP-Server

Jede der vier Guard-Einheiten (claude/, codex/, antigravity/ und die Gemini-Erweiterung an der Wurzel) deklariert denselben stdio-MCP-Server, den der Host durch Ausführen von skarn mcp von Ihrem PATH startet. Cursor und VS Code nehmen ihn mit einem Klick:

Add to Cursor

Add to VS Code

Beide Schaltflächen registrieren den Server als skarn und führen skarn mcp von Ihrem PATH aus, also installieren Sie zuerst die Binärdatei. Wenn Sie sie lieber nicht installieren möchten, funktioniert die versionierte Launcher-Form mit nur vorhandenem Node: Cursor oder VS Code – sie lädt @skarn-security/skarn@0.26.0 beim ersten Lauf herunter und verwendet danach den npx-Cache; ein neueres Skarn benötigt einen neueren Link.

Manuelle Konfiguration für jeden Client:

{
  "mcpServers": {
    "skarn": {
      "command": "skarn",
      "args": ["mcp"]
    }
  }
}

Er läuft auf Ihrem Rechner, macht keinen Netzwerkaufruf und stellt vier schreibgeschützte Tools bereit: scan_sessions (Befunde aus früheren Sitzungen, jeder Vorschauwert redigiert), vet_configs (ein maskierter Bericht über Ihre Assistenten-Konfigurationsoberfläche), list_sessions und session_stats (Metadaten und Aggregate, niemals Nachrichteninhalte). Es gibt kein Schreib-Tool und kein Tool, das Nachrichteninhalte zurückgibt.

Zwei Inhaltstools, search_sessions und get_session, erscheinen nur, wenn Sie den Server als skarn mcp --enable-recall starten. Beide maskieren, was sie zurückgeben, und der Inhalt verlässt weiterhin Ihren Rechner zum Modellanbieter, der die Sitzung bedient, daher setzen die obigen Deklarationen das Flag nicht. search_sessions lehnt einen Aufruf ab, der weder hours noch project nennt; get_session nimmt eine genaue session_id, die bereits sein Umfang ist.

Wenn Sie die Binärdatei lieber nicht selbst installieren möchten, funktioniert eine versionierte npx-Form:

{
  "mcpServers": {
    "skarn": {
      "command": "npx",
      "args": ["-y", "@skarn-security/skarn@0.26.0", "mcp"]
    }
  }
}

npx lädt das Paket beim ersten Start des Servers herunter und speichert es danach zwischen, daher ist der erste Start langsamer und benötigt Netzwerkzugriff. Pinnen Sie die Version. Die nicht gepinnte Form löst auf, was die Registry zum Startzeitpunkt liefert, und skarn vet meldet es als vet-mcp-unpinned. Verwenden Sie sie nicht.

llms-install.md an der Wurzel dieses Repositorys ist dieselbe Installation in agentenlesbaren Schritten, für einen Client, der den Server für Sie verdrahtet.

Jeder Host meldet eine fehlende Binärdatei auf seine eigene Weise. claude mcp list sagt Failed to connect mit Executable not found in $PATH: "skarn". gemini mcp list zeigt den skarn-Server als Disconnected. codex mcp list führt keinen Health-Check durch, daher bleibt die Zeile aufgelistet und aktiviert, und der Server schlägt fehl, wenn eine Sitzung ihn startet. Cursor zeigt die Zeile des Plugins als Error - Show Output, und das Ausgabefenster endet mit spawn skarn ENOENT. Führen Sie in jedem Fall skarn --version in einem Terminal aus: command not found bedeutet, dass die Binärdatei nicht installiert ist oder nicht auf dem PATH liegt, den der Host erbt, was die übliche Antwort für eine Anwendung ist, die vom Desktop statt aus einer Shell gestartet wird.

Zuerst Audit, dann Durchsetzen

Beide Guard-Plugins werden im Audit-Modus ausgeliefert (skarn-recall hat keine Hooks, hat also keinen Modus): Der Guard meldet das Urteil, das er zurückgegeben hätte, und ändert nie, was Ihr Agent tut. Führen Sie es zuerst so aus und messen Sie Ihre tatsächliche Blockierungsrate. Setzen Sie SKARN_GUARD_LOG=<path> in der Umgebung, die Ihr Agent erbt, und der Guard hängt einen redigierten JSONL-Datensatz pro gekennzeichnetem Aufruf an (ts, verdict, tool, rule, severity, redigierter Grund, session, cwd, latency_ms); saubere Aufrufe werden nicht protokolliert.

Wenn das Protokoll sauber aussieht, ändern Sie --guard-mode audit im Hook-Befehl zu --guard-mode enforce, oder führen Sie skarn setup --update --mode enforce aus. Die Durchsetzung erfordert eine Skarn-Lizenz; ohne eine bleibt der Guard im Audit und meldet statt zu blockieren, sodass eine abgelaufene Lizenz Ihren Editor nie beschädigt.

Einen Hook aktuell zu halten, während Skarn-Versionen den Ereignissatz eines Hosts erweitern, ist das Plugin-Update unten, kein Skarn-Befehl: Diese Plugins tragen ihre eigenen Hook-Dateien, und skarn setup --update aktualisiert nur die Skarn-eigenen Einträge, die skarn setup selbst geschrieben hat, in dem Umfang, in dem es sie geschrieben hat (standardmäßig pro Benutzer oder die Repo-Konfiguration unter --scope project). Für eine Konfiguration, die auf diese andere Weise verdrahtet ist, schreibt --update diese Einträge neu, was auch immer die installierte Binärdatei schreibt, und ersetzt jeden vollständig, außer einem Hook-Aufruf-Timeout, das Sie selbst eingestellt haben (timeout oder timeoutSec bei Copilot), das übernommen wird, wenn es eindeutig mit seinem Ersatz gepaart ist und der Wert vernünftig ist, sodass ein Pro-Maschinen-Budget die Aktualisierung überlebt; jedes andere Feld, das Sie zu einem solchen Eintrag hinzugefügt haben, wird verworfen. Führen Sie in einem Terminal skarn guard report und skarn assess aus, die einen per Setup verdrahteten Pro-Benutzer-Hook nennen, der zurückgefallen ist, einmal pro Version, mit dem genauen Update-Befehl für diesen Host.

Aktualisierung

Claude Code:

claude plugin marketplace update skarn
claude plugin update skarn-guard@skarn

Codex CLI (es hat kein Update-Verb; erneutes Hinzufügen installiert die neue Version):

codex plugin marketplace upgrade
codex plugin add skarn-guard-codex@skarn

Plugin-Updates und Binär-Updates sind unabhängig: Die Hook-Befehle rufen skarn guard auf dem PATH auf, daher erhalten Sie allein durch brew upgrade skarn die neuere Erkennungsengine. Ein Plugin-Update ist wichtig, wenn sich etwas ändert, das das Plugin selbst enthält: die Hook-Form (ein neues Ereignis, ein neues Flag, ein neuer Matcher), der Text eines Skills oder die Manifest-Metadaten.

Sicherheit

Der Guard verschärft eine Entscheidung nur, lockert sie nie. Was passiert, wenn der Guard selbst versagt, hängt vom Host ab, denn jeder Host entscheidet, was ein Hook-Absturz, ein Timeout oder eine fehlerhafte Ausgabe bedeutet.

Claude Code, Codex CLI und Gemini CLI sind fail open: Ein fehlerhaftes Ereignis, ein nicht im Rahmen liegendes Tool oder ein beliebiger Guard-Fehler ergibt allow, und der Guard blockiert Ihren Agenten nie. Der einzige fail-closed-Pfad auf diesen Hosts ist --strict mit einer lizenzierten Durchsetzung, was jedes Host-README dokumentiert.

Die Antigravity CLI ist fail closed bei jedem Hook-Ergebnis außer einem expliziten allow: Ein Absturz, ein Timeout, ungültiges JSON und ein leeres {} blockieren alle den abgeglichenen Aufruf, sowohl im Audit-Modus als auch bei der Durchsetzung, und ein verdrahteter Hook ohne skarn-Binärdatei auf dem PATH blockiert jeden abgeglichenen Aufruf. Der Guard beantwortet jedes Ereignis, das er empfängt, mit einer expliziten Entscheidung, und der mitgelieferte Matcher nennt nur die Tools, die er abdeckt, sodass ein Schritt außerhalb des Matchers niemals durch einen Guard-Fehler blockiert werden kann. Installieren Sie skarn, bevor Sie diesen Hook verdrahten, und entfernen Sie den Eintrag, bevor Sie skarn deinstallieren. Dokumentation: https://getskarn.com/?utm_source=agent-guard-readme&utm_medium=referral&utm_campaign=home&utm_content=documentation

Lizenz, Datenschutz und Support

Dieses Repository ist unter der MIT-Lizenz lizenziert; siehe LICENSE. Es enthält nur Konfiguration, daher deckt das die Plugin-Manifeste, die Hooks, die Skills und die MCP-Server-Deklarationen darin ab.

Die skarn-Binärdatei, die diese Dateien aufrufen, ist ein separater Download und ist nicht Open Source. Sie ist unter der Skarn-Endbenutzer-Lizenzvereinbarung unter https://getskarn.com/terms/ lizenziert, und durch das Ausführen wird dieser Vereinbarung zugestimmt. Was sie liest, was sie behält und was sie niemals irgendwohin sendet: https://getskarn.com/privacy/.

Support: hello@getskarn.com. Meldungen zu Sicherheitslücken gehen an security@getskarn.com; siehe SECURITY.md in diesem Repository.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

0Maintainers
No issuesResponse time
0Releases (12mo)
Commit activity

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Local-first security check for AI coding agents — finds hardcoded secrets, exposed .env files, git-history leaks and vulnerable dependencies (OSV), entirely on your machine. Ask your agent "is this safe to ship?" and get a Launch Readiness score with a fix for every finding.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Scans text and files for common secrets (AWS, GitHub, etc.) and redacts them to prevent credential leakage in AI-assisted development. Runs entirely locally with no telemetry.
    MIT

View all related MCP servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/skarn-security/agent-guard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server