Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/gldywn/gatekeeper/update-gatekeepernpx skills add Gldywn/gatekeeper --skill update-gatekeepergit clone --depth 1 https://github.com/Gldywn/gatekeeperWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/gldywn/gatekeeper/update-gatekeeper)<a href="https://agentmods.dev/skills/gldywn/gatekeeper/update-gatekeeper"><img src="https://agentmods.dev/badge/skills/gldywn/gatekeeper/update-gatekeeper.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00086 | $0.01514 |
| Opus 5 | $0.00043 | $0.00757 |
| Sonnet 5 | $0.00017 | $0.00303 |
| Haiku 4.5 | $0.00009 | $0.00151 |
Grade B, and why
update-gatekeeper scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
There is nothing to compare here, because what matters is how it is registered rather than what is on disk. Read the entry, then answer for the setup you actually find. It lives in `~/.claude.json` for Claude Code at use Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
version="$(curl -sS https://api.github.com/repos/Gldywn/gatekeeper/releases/latest | grep '"tag_name"' | head -1 | sed 's/.*"v\{0,1\}\([0-9][^"]*\)".*/\1/')" How it starts
The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Update Gatekeeper
Three pieces can be out of date independently, and each one updates differently. Report the state of all three, even the ones that are current, then act only on what is behind. An update that touches nothing and says so plainly is a good outcome, not a wasted run.
If nothing is installed, this is the wrong skill: hand it to install-gatekeeper and stop.
Pairing survives an update. The plugin keeps its token in Beekeeper's encrypted storage under the plugin id, not in its folder, so replacing the folder does not cost a new 6-digit code. Say that up front, because the opposite is what people expect.
The latest version
One call, and it covers two of the three pieces: the plugin and the MCP server ship under one version and are meant to match.
version="$(curl -sS https://api.github.com/repos/Gldywn/gatekeeper/releases/latest | grep '"tag_name"' | head -1 | sed 's/.*"v\{0,1\}\([0-9][^"]*\)".*/\1/')"
echo "$version"
The snippets below reuse that $version.
Piece 1: the plugin
Read the installed version straight out of the manifest:
| OS | Manifest |
|---|---|
| macOS | ~/Library/Application Support/beekeeper-studio/plugins/gatekeeper/manifest.json |
| Linux | ~/.config/beekeeper-studio/plugins/gatekeeper/manifest.json |
| Windows | %APPDATA%\beekeeper-studio\plugins\gatekeeper\manifest.json |
No manifest there means the plugin was never installed manually. Check Beekeeper's Manage Plugins before concluding, since a registry install updates itself from there and is not yours to touch.
If it is behind, replace it in place. The folder keeps its exact name, unzip -o overwrites the old files, and nothing else moves:
tmp="${TMPDIR:-/tmp}"
plugins="$HOME/Library/Application Support/beekeeper-studio/plugins" # macOS; swap for the row above
curl -sSL -o "$tmp/gatekeeper-$version.zip" \
"https://github.com/Gldywn/gatekeeper/releases/download/v$version/gatekeeper-$version.zip"
unzip -l "$tmp/gatekeeper-$version.zip" # manifest.json at the root, no wrapper folder
unzip -o "$tmp/gatekeeper-$version.zip" -d "$plugins/gatekeeper"
head -5 "$plugins/gatekeeper/manifest.json" # the new version
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 96 lines · 86 tokens per session scan B 01d5bc85f799
update-gatekeeper is a skill published in the GitHub repository Gldywn/gatekeeper (2 stars, last pushed 3d ago), licensed MIT. It adds 86 tokens to every session and 1,514 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it B with 2 findings (reads agent configuration directories, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
release-checklist
Pre-release safety audit for the Bifrost repo. Scans database migrations changed in a release for high-scale deadlock / lock-contention risks and for work that blocks application boot time, then produces a pass/warn/fail report with a concrete remediation plan. Invoked with /release-checklist [git-ref-range]. Built to…
rls-policy
Write and test Supabase/Postgres Row-Level Security policies so users can only access their own rows. Use when a table holds user data, when enabling RLS, or when auditing access control on Supabase.
db-backup-restore
Safely back up and restore a Postgres/Supabase database — pgdump/pgrestore, Supabase backups/PITR, and a no-data-loss restore runbook. Use before risky migrations, for disaster recovery, or when cloning prod to staging.
migration-safety
Generate safe, reversible Postgres/Supabase migrations using the expand→backfill→contract pattern, avoiding locks and data loss. Use when altering schema, adding/removing columns, or changing types on tables that already hold data.
query-optimizer
Diagnose and fix slow Postgres queries using EXPLAIN ANALYZE, index suggestions, and N+1 detection. Use when a query is slow, a page is slow because of the DB, or before shipping a query that touches a large table.
realtime-subscriptions
Add Supabase Realtime to a Next.js app — Postgres Changes, Broadcast, and Presence — with proper cleanup and RLS-aware channels. Use when building live updates, presence indicators, or collaborative features.