thumbgate 1.27.8 → 1.27.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/llms.txt +1 -2
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +4 -2
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bin/cli.js +259 -78
- package/config/gate-templates.json +228 -0
- package/config/gates/claim-verification.json +18 -0
- package/package.json +14 -21
- package/public/blog.html +30 -0
- package/public/compare/adopt-ai.html +219 -0
- package/public/compare/agentix-labs.html +197 -0
- package/public/compare/ai-experience-orchestration.html +216 -0
- package/public/compare/anthropic-claude-for-legal.html +260 -0
- package/public/compare/anthropic-containment.html +280 -0
- package/public/compare/arcade.html +175 -0
- package/public/compare/arcjet.html +239 -0
- package/public/compare/bumblebee.html +307 -0
- package/public/compare/claude-code-hooks.html +294 -0
- package/public/compare/databricks-unity-ai-gateway.html +215 -0
- package/public/compare/fallow.html +351 -0
- package/public/compare/heidi.html +233 -0
- package/public/compare/mem0.html +342 -0
- package/public/compare/oak-and-sparrow-gatekeeper.html +289 -0
- package/public/compare/rein.html +236 -0
- package/public/compare/sigmashake.html +256 -0
- package/public/compare/speclock.html +342 -0
- package/public/compare.html +2 -0
- package/public/guides/agent-harness-optimization.html +342 -0
- package/public/guides/agentic-web-governance.html +406 -0
- package/public/guides/ai-agent-governance-sprint.html +415 -0
- package/public/guides/ai-agent-pre-action-approval-gates.html +401 -0
- package/public/guides/ai-agent-workflow-migration-checklist.html +392 -0
- package/public/guides/ai-deployment-readiness.html +415 -0
- package/public/guides/ai-mode-ads-agent-governance.html +401 -0
- package/public/guides/ai-search-topical-presence.html +342 -0
- package/public/guides/autoresearch-agent-safety.html +342 -0
- package/public/guides/background-agent-governance.html +358 -0
- package/public/guides/best-tools-stop-ai-agents-breaking-production.html +363 -0
- package/public/guides/browser-automation-safety.html +342 -0
- package/public/guides/chatgpt-ads-trust.html +353 -0
- package/public/guides/claude-code-feedback.html +339 -0
- package/public/guides/claude-code-prevent-repeated-mistakes.html +161 -0
- package/public/guides/claude-code-skills-guardrails.html +343 -0
- package/public/guides/claude-desktop.html +356 -0
- package/public/guides/code-knowledge-graph-guardrails.html +365 -0
- package/public/guides/codex-cli-guardrails.html +339 -0
- package/public/guides/cursor-agent-guardrails.html +339 -0
- package/public/guides/cursor-prevent-repeated-mistakes.html +161 -0
- package/public/guides/database-agent-safety.html +406 -0
- package/public/guides/deepseek-v4-runtime-guardrails.html +346 -0
- package/public/guides/developer-machine-supply-chain-guardrails.html +358 -0
- package/public/guides/gcp-mcp-guardrails.html +147 -0
- package/public/guides/gemini-cli-feedback-memory.html +339 -0
- package/public/guides/gpt-5-5-model-evaluation.html +358 -0
- package/public/guides/internal-ai-engineering-stack-guardrails.html +348 -0
- package/public/guides/long-running-agent-context-management.html +346 -0
- package/public/guides/mcp-tool-governance.html +401 -0
- package/public/guides/multica-thumbgate-setup.html +134 -0
- package/public/guides/native-messaging-host-security.html +342 -0
- package/public/guides/policy-engine-pre-action-gates.html +346 -0
- package/public/guides/pre-action-checks.html +342 -0
- package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +342 -0
- package/public/guides/prompt-tricks-to-workflow-rules.html +365 -0
- package/public/guides/proxy-pointer-rag-guardrails.html +352 -0
- package/public/guides/rag-precision-tuning-guardrails.html +352 -0
- package/public/guides/reasoning-compression-guardrails.html +346 -0
- package/public/guides/relational-knowledge-ai-recommendations.html +342 -0
- package/public/guides/roo-code-alternative-cline.html +339 -0
- package/public/guides/semantic-programmatic-seo-guardrails.html +352 -0
- package/public/guides/seo-agent-skills-guardrails.html +344 -0
- package/public/guides/stop-repeated-ai-agent-mistakes.html +342 -0
- package/public/index.html +192 -50
- package/public/learn/ac-dc-runtime-enforcement.html +277 -0
- package/public/learn/agent-harness-pattern.html +181 -0
- package/public/learn/agent-identity-connector-governance.html +146 -0
- package/public/learn/agent-swarms-shared-gates.html +173 -0
- package/public/learn/agentic-enterprise-context-brain.html +117 -0
- package/public/learn/agentic-os-team-governance.html +146 -0
- package/public/learn/ai-agent-governance.html +158 -0
- package/public/learn/ai-agent-persistent-memory.html +211 -0
- package/public/learn/anthropomorphic-claim-gates.html +180 -0
- package/public/learn/background-agent-control-layer.html +184 -0
- package/public/learn/claude-code-goal-with-rubrics.html +205 -0
- package/public/learn/codex-role-plugins-need-governance.html +125 -0
- package/public/learn/cost-aware-agent-gate-routing.html +173 -0
- package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +157 -0
- package/public/learn/deterministic-agent-workflows.html +185 -0
- package/public/learn/feedback-loop-vs-decision-layer.html +283 -0
- package/public/learn/from-prototype-to-production.html +223 -0
- package/public/learn/learn.css +51 -0
- package/public/learn/mcp-pre-action-checks-explained.html +172 -0
- package/public/learn/pretix-stripe-connect-marketplaces.html +161 -0
- package/public/learn/regulated-agent-execution-boundary.html +196 -0
- package/public/learn/spec-driven-development.html +168 -0
- package/public/learn/stop-ai-agent-force-push.html +134 -0
- package/public/learn/vibe-coding-safety-net.html +142 -0
- package/public/learn.html +34 -50
- package/public/numbers.html +2 -2
- package/public/pro.html +6 -6
- package/scripts/cli-schema.js +10 -22
- package/scripts/dashboard-chat.js +1 -2
- package/scripts/document-intake.js +49 -1
- package/scripts/gemini-embedding-policy.js +1 -2
- package/scripts/hook-stop-anti-claim.js +103 -42
- package/scripts/hosted-config.js +12 -0
- package/scripts/plausible-domain-config.js +1 -3
- package/scripts/reddit-browser-notification-watch.js +230 -0
- package/scripts/seo-gsd.js +0 -239
- package/scripts/tool-registry.js +2 -2
- package/scripts/vector-store.js +0 -44
- package/scripts/workspace-evolver.js +2 -62
- package/src/api/server.js +126 -335
- package/adapters/policy-engine/ethicore-guardian-client.js +0 -68
- package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +0 -260
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>ThumbGate vs Bumblebee | Runtime Enforcement Pairs With Static Inventory</title>
|
|
7
|
+
<meta name="description" content="Perplexity's Bumblebee scans developer machines for installed MCP configs, extensions, and packages. ThumbGate blocks those installed agents from running bad tool calls at runtime. Same supply-chain surface — different halves of the answer. Use both." />
|
|
8
|
+
<meta property="og:title" content="ThumbGate vs Bumblebee | Runtime Enforcement Pairs With Static Inventory" />
|
|
9
|
+
<meta property="og:description" content="Bumblebee tells you what AI agents and MCP servers are wired up. ThumbGate stops those wired-up agents from doing bad things. Complementary, not competitive." />
|
|
10
|
+
<meta property="og:type" content="article" />
|
|
11
|
+
<meta property="og:url" content="https://thumbgate.ai/compare/bumblebee" />
|
|
12
|
+
<link rel="canonical" href="https://thumbgate.ai/compare/bumblebee" />
|
|
13
|
+
<link rel="llm-context" href="/llm-context.md" type="text/markdown" />
|
|
14
|
+
<link rel="icon" type="image/png" href="/thumbgate-icon.png" />
|
|
15
|
+
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg" />
|
|
16
|
+
<meta property="og:image" content="/og.png" />
|
|
17
|
+
<style>
|
|
18
|
+
:root { --bg: #0a0a0b; --bg-raised: #111113; --bg-card: #161618; --line: #222225; --text: #e8e8ec; --muted: #8b8b96; --cyan: #22d3ee; --green: #4ade80; --amber: #fbbf24; }
|
|
19
|
+
* { box-sizing: border-box; }
|
|
20
|
+
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--text); line-height: 1.65; }
|
|
21
|
+
a { color: var(--cyan); text-decoration: none; }
|
|
22
|
+
a:hover { text-decoration: underline; }
|
|
23
|
+
.container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
|
|
24
|
+
.topbar { position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); background: rgba(10, 10, 11, 0.88); border-bottom: 1px solid var(--line); }
|
|
25
|
+
.topbar .container { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; padding-bottom: 14px; }
|
|
26
|
+
.brand { font-weight: 700; color: var(--text); display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
|
|
27
|
+
.brand .logo-mark { width: 28px; height: 28px; display: block; }
|
|
28
|
+
.hero { padding: 72px 0 32px; }
|
|
29
|
+
.eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(34, 211, 238, 0.22); background: rgba(34, 211, 238, 0.1); color: var(--cyan); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; font-weight: 700; }
|
|
30
|
+
h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.06; letter-spacing: -0.04em; margin: 16px 0; max-width: 820px; }
|
|
31
|
+
.hero p { max-width: 760px; color: var(--muted); font-size: 18px; }
|
|
32
|
+
.grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 24px; padding-bottom: 72px; }
|
|
33
|
+
.card, .detail-section, .sidebar-card { background: var(--bg-card); border: 1px solid var(--line); border-radius: 16px; }
|
|
34
|
+
.card { padding: 24px; }
|
|
35
|
+
.detail-section { padding: 24px; margin-bottom: 18px; }
|
|
36
|
+
.detail-section h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: -0.03em; }
|
|
37
|
+
.detail-section p, .detail-section li, .sidebar-card p { color: var(--muted); }
|
|
38
|
+
.detail-section ul, .card ul { padding-left: 18px; color: var(--muted); }
|
|
39
|
+
.comparison-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 14px; }
|
|
40
|
+
.comparison-table th, .comparison-table td { border: 1px solid var(--line); padding: 12px; text-align: left; vertical-align: top; }
|
|
41
|
+
.comparison-table th { background: var(--bg-raised); color: var(--cyan); }
|
|
42
|
+
.pill-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
|
|
43
|
+
.pill { border: 1px solid var(--line); background: var(--bg-raised); border-radius: 999px; padding: 10px 14px; font-size: 14px; font-weight: 650; }
|
|
44
|
+
.pill.good { color: #b8f7c8; border-color: rgba(74, 222, 128, 0.28); background: rgba(74, 222, 128, 0.1); }
|
|
45
|
+
.pill.warn { color: #ffe2a4; border-color: rgba(251, 191, 36, 0.28); background: rgba(251, 191, 36, 0.1); }
|
|
46
|
+
.sidebar { display: flex; flex-direction: column; gap: 18px; }
|
|
47
|
+
.sidebar-card { padding: 20px; }
|
|
48
|
+
.sidebar-card:first-child { position: sticky; top: 84px; max-height: calc(100vh - 104px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
|
|
49
|
+
.cta-button { display: inline-flex; align-items: center; justify-content: center; margin-top: 18px; padding: 12px 16px; border-radius: 10px; background: var(--cyan); color: #071116; font-weight: 700; text-decoration: none; }
|
|
50
|
+
.related-card { display: block; padding: 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg-raised); margin-top: 12px; color: var(--text); }
|
|
51
|
+
.related-label { display: block; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
|
|
52
|
+
.faq-item { border-top: 1px solid var(--line); padding: 14px 0; }
|
|
53
|
+
.faq-item summary { cursor: pointer; font-weight: 600; }
|
|
54
|
+
.faq-item p { color: var(--muted); }
|
|
55
|
+
@media (max-width: 860px) { .grid { grid-template-columns: 1fr; } .sidebar-card:first-child { position: static; max-height: none; overflow: visible; } }
|
|
56
|
+
</style>
|
|
57
|
+
<script type="application/ld+json">
|
|
58
|
+
{
|
|
59
|
+
"@context": "https://schema.org",
|
|
60
|
+
"@type": "TechArticle",
|
|
61
|
+
"headline": "ThumbGate vs Bumblebee",
|
|
62
|
+
"description": "Perplexity's Bumblebee is a read-only scanner that inventories MCP configs, editor extensions, and package lockfiles on developer machines. ThumbGate is a runtime PreToolUse firewall that blocks AI agents from making bad tool calls. Same supply-chain surface, different halves of the answer.",
|
|
63
|
+
"about": ["thumbgate vs bumblebee", "AI agent supply chain security", "MCP config inventory vs runtime enforcement", "PreToolUse hooks vs static scan"],
|
|
64
|
+
"url": "https://thumbgate.ai/compare/bumblebee",
|
|
65
|
+
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
|
|
66
|
+
"mainEntityOfPage": "https://thumbgate.ai/compare/bumblebee"
|
|
67
|
+
}
|
|
68
|
+
</script>
|
|
69
|
+
<script type="application/ld+json">
|
|
70
|
+
{
|
|
71
|
+
"@context": "https://schema.org",
|
|
72
|
+
"@type": "FAQPage",
|
|
73
|
+
"mainEntity": [
|
|
74
|
+
{
|
|
75
|
+
"@type": "Question",
|
|
76
|
+
"name": "Is Bumblebee a ThumbGate competitor?",
|
|
77
|
+
"acceptedAnswer": {
|
|
78
|
+
"@type": "Answer",
|
|
79
|
+
"text": "No. Different layers of the same supply-chain story. Bumblebee (open-sourced by Perplexity 2026-05-23) is a static read-only scanner that inventories what is installed on a developer machine: MCP host configs, editor extensions, browser extensions, and package lockfiles across npm, PyPI, Go modules, RubyGems, and Composer. It answers 'when an advisory drops, which of my dev machines have the bad version installed right now?' ThumbGate is a runtime PreToolUse firewall that intercepts AI agent tool calls before they execute. Bumblebee tells you what an agent CAN reach; ThumbGate tells the agent what it CANNOT do with that reach. Use both."
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"@type": "Question",
|
|
84
|
+
"name": "Can I use Bumblebee and ThumbGate together?",
|
|
85
|
+
"acceptedAnswer": {
|
|
86
|
+
"@type": "Answer",
|
|
87
|
+
"text": "Yes, and they compose cleanly. Bumblebee runs as a single Go binary on macOS and Linux, emits NDJSON to stdout, and exits — zero overlap with anything ThumbGate hooks. ThumbGate runs as the PreToolUse layer inside Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and Claude Desktop. Common dual-use pattern: run Bumblebee weekly to inventory which MCP servers are wired into each dev's agents, then use ThumbGate to enforce rules against the tool calls those wired-up agents try to make."
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"@type": "Question",
|
|
92
|
+
"name": "Does ThumbGate ingest Bumblebee's NDJSON output?",
|
|
93
|
+
"acceptedAnswer": {
|
|
94
|
+
"@type": "Answer",
|
|
95
|
+
"text": "Not yet at the time of writing. Bumblebee's NDJSON format (one component record per line, scan_summary terminator) is well-suited to feed ThumbGate's agent-manager inventory. A `thumbgate import-bumblebee scan.ndjson` command is on the near-term roadmap. If you want it sooner, open an issue at github.com/IgorGanapolsky/ThumbGate."
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"@type": "Question",
|
|
100
|
+
"name": "Bumblebee is from Perplexity. Why should I also use ThumbGate?",
|
|
101
|
+
"acceptedAnswer": {
|
|
102
|
+
"@type": "Answer",
|
|
103
|
+
"text": "Because Bumblebee answers a discovery question and ThumbGate answers an enforcement question. Bumblebee tells you 'developer machine X has Cursor wired to MCP server Y, which has the npm package Z installed and Z is on the malicious advisory list.' That is decision-grade information for incident response. ThumbGate's PreToolUse hook fires every time Cursor tries to invoke a tool on that machine and can block, replace, or log the call before it executes. Bumblebee is the X-ray; ThumbGate is the airport-security gate. Both, ideally."
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
</script>
|
|
109
|
+
</head>
|
|
110
|
+
<body>
|
|
111
|
+
<div class="topbar">
|
|
112
|
+
<div class="container">
|
|
113
|
+
<a class="brand" href="/"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
|
|
114
|
+
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<section class="hero">
|
|
119
|
+
<div class="container">
|
|
120
|
+
<span class="eyebrow">ThumbGate vs Bumblebee</span>
|
|
121
|
+
<h1>Bumblebee tells you what's installed. ThumbGate stops what's installed from doing bad things.</h1>
|
|
122
|
+
<p><strong>Bumblebee</strong> (open-sourced by <a href="https://www.perplexity.ai/hub/blog/perplexity-is-open-sourcing-bumblebee" target="_blank" rel="noopener">Perplexity on 2026-05-23</a>) is a read-only scanner that inventories MCP configs, editor extensions, browser extensions, and package lockfiles on developer endpoints. <strong>ThumbGate</strong> is the runtime PreToolUse firewall that blocks the agents Bumblebee discovered from executing bad tool calls. Different layers of the same supply-chain story. Use both.</p>
|
|
123
|
+
<div class="pill-row">
|
|
124
|
+
<span class="pill">Both open source</span>
|
|
125
|
+
<span class="pill">Both local-first</span>
|
|
126
|
+
<span class="pill">Both target the MCP/AI-agent surface</span>
|
|
127
|
+
<span class="pill good">Zero overlap</span>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</section>
|
|
131
|
+
|
|
132
|
+
<div class="container grid">
|
|
133
|
+
<main>
|
|
134
|
+
<article class="detail-section">
|
|
135
|
+
<h2>Side-by-side feature comparison</h2>
|
|
136
|
+
<table class="comparison-table">
|
|
137
|
+
<thead>
|
|
138
|
+
<tr>
|
|
139
|
+
<th>Capability</th>
|
|
140
|
+
<th>Bumblebee</th>
|
|
141
|
+
<th>ThumbGate</th>
|
|
142
|
+
</tr>
|
|
143
|
+
</thead>
|
|
144
|
+
<tbody>
|
|
145
|
+
<tr>
|
|
146
|
+
<td>What it does</td>
|
|
147
|
+
<td>Static read-only inventory of on-disk metadata</td>
|
|
148
|
+
<td>Runtime PreToolUse enforcement on AI agent tool calls</td>
|
|
149
|
+
</tr>
|
|
150
|
+
<tr>
|
|
151
|
+
<td>When it runs</td>
|
|
152
|
+
<td>On demand: weekly baseline, project scan, or deep incident-response sweep</td>
|
|
153
|
+
<td>Every tool call an agent attempts, in real time, before execution</td>
|
|
154
|
+
</tr>
|
|
155
|
+
<tr>
|
|
156
|
+
<td>What it covers</td>
|
|
157
|
+
<td>MCP host configs, editor extensions (VS Code family), browser extensions (Chromium + Firefox), npm/pnpm/Yarn/Bun, PyPI, Go modules, RubyGems, Composer lockfiles</td>
|
|
158
|
+
<td>Tool calls inside Claude Code, Cursor, OpenAI Codex CLI, Google Gemini CLI, Sourcegraph Amp, Cline, OpenCode, Claude Desktop (via MCP)</td>
|
|
159
|
+
</tr>
|
|
160
|
+
<tr>
|
|
161
|
+
<td>What it blocks</td>
|
|
162
|
+
<td>Nothing — pure observation. Read-only by design (no execution, no package-manager calls)</td>
|
|
163
|
+
<td>The actual tool call. Bash, file write, MCP tool, HTTP fetch — gate fires before the side effect</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td>Output format</td>
|
|
167
|
+
<td>NDJSON to stdout, scan_summary terminator, pipeable into jq / SIEM / agentic workflows</td>
|
|
168
|
+
<td>Block/allow decision + audit log entry per gate firing. DPO preference pairs for fine-tuning</td>
|
|
169
|
+
</tr>
|
|
170
|
+
<tr>
|
|
171
|
+
<td>Distribution</td>
|
|
172
|
+
<td>Single Go binary (zero non-stdlib deps). <code>go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest</code></td>
|
|
173
|
+
<td>npm package: <code>npx thumbgate init</code></td>
|
|
174
|
+
</tr>
|
|
175
|
+
<tr>
|
|
176
|
+
<td>Platforms</td>
|
|
177
|
+
<td>macOS, Linux</td>
|
|
178
|
+
<td>macOS, Linux, Windows (Node.js >=18.18)</td>
|
|
179
|
+
</tr>
|
|
180
|
+
<tr>
|
|
181
|
+
<td>License</td>
|
|
182
|
+
<td>Apache 2.0</td>
|
|
183
|
+
<td>MIT (npm package); Pro/Team are hosted services</td>
|
|
184
|
+
</tr>
|
|
185
|
+
<tr>
|
|
186
|
+
<td>Built by</td>
|
|
187
|
+
<td>Perplexity AI (used internally to protect Perplexity dev machines behind their search product, Comet browser, and Computer AI agent)</td>
|
|
188
|
+
<td>Independent (MIT-licensed open source + hosted Pro/Team services)</td>
|
|
189
|
+
</tr>
|
|
190
|
+
</tbody>
|
|
191
|
+
</table>
|
|
192
|
+
</article>
|
|
193
|
+
|
|
194
|
+
<article class="detail-section">
|
|
195
|
+
<h2>Pick Bumblebee for</h2>
|
|
196
|
+
<ul>
|
|
197
|
+
<li>Supply-chain incident response: an advisory drops, you need to know which dev machines have the bad version installed RIGHT NOW.</li>
|
|
198
|
+
<li>MCP config inventory: which AI assistants on which machines are wired to which MCP servers, and which of those servers carry credentials in their env blocks.</li>
|
|
199
|
+
<li>Weekly baseline snapshots of dev-machine state, centralized so future incident response is a search instead of a phone call.</li>
|
|
200
|
+
<li>You want a single read-only Go binary that does not execute install scripts or trigger package managers.</li>
|
|
201
|
+
</ul>
|
|
202
|
+
<p>Bumblebee is the first open-source scanner to treat MCP configuration files as a first-class security surface. That's a genuinely new contribution to the supply-chain category and the right tool for the inventory job. Recommend installing it regardless of whether you use ThumbGate.</p>
|
|
203
|
+
</article>
|
|
204
|
+
|
|
205
|
+
<article class="detail-section">
|
|
206
|
+
<h2>Pick ThumbGate for</h2>
|
|
207
|
+
<ul>
|
|
208
|
+
<li>Stopping agent mistakes before they execute: bad bash, destructive DB query, unauthorized file write, privilege-violating LLM call.</li>
|
|
209
|
+
<li>Cross-agent enforcement: the same prevention rule fires inside Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and Claude Desktop with one config.</li>
|
|
210
|
+
<li>Operator-feedback learning: thumbs-down on a bad output becomes a real Pre-Action Check that blocks the repeat next time, with precision/recall gating before any rule auto-promotes.</li>
|
|
211
|
+
<li>Hosted lesson sync, dashboard, DPO export, adapter matrix maintenance, 24×7 ops on the rule engine (Pro/Team tiers).</li>
|
|
212
|
+
</ul>
|
|
213
|
+
</article>
|
|
214
|
+
|
|
215
|
+
<article class="detail-section">
|
|
216
|
+
<h2>The integration story: discovery feeds enforcement</h2>
|
|
217
|
+
<p>Bumblebee scan output looks like:</p>
|
|
218
|
+
<pre style="background: var(--bg-raised); border: 1px solid var(--line); border-radius: 8px; padding: 14px; overflow: auto; font-size: 13px; color: var(--soft);">{"kind":"mcp_server","host":"claude-code","name":"github","command":"npx","args":["-y","@modelcontextprotocol/server-github"],"env_keys":["GITHUB_TOKEN"]}
|
|
219
|
+
{"kind":"mcp_server","host":"cursor","name":"linear","command":"npx","args":["@linear/mcp-server"],"env_keys":["LINEAR_API_KEY"]}
|
|
220
|
+
{"kind":"npm_package","manifest":"package.json","name":"some-vulnerable-pkg","version":"1.2.3"}
|
|
221
|
+
{"kind":"scan_summary","components":847,"duration_ms":1240}</pre>
|
|
222
|
+
<p>ThumbGate's agent-manager treats each <code>mcp_server</code> record as an attack-surface entry that gates can be written against. Each <code>npm_package</code> entry on the advisory list can become a check that blocks any agent tool call referencing it.</p>
|
|
223
|
+
<p>A first-pass integration is on the near-term roadmap: <code>thumbgate import-bumblebee scan.ndjson</code> will load Bumblebee inventory into ThumbGate's agent inventory + auto-seed gates from CVE-flagged components. Open an issue at <a href="https://github.com/IgorGanapolsky/ThumbGate/issues" target="_blank" rel="noopener">github.com/IgorGanapolsky/ThumbGate</a> if you want it sooner than later.</p>
|
|
224
|
+
</article>
|
|
225
|
+
|
|
226
|
+
<article class="detail-section">
|
|
227
|
+
<h2>FAQ</h2>
|
|
228
|
+
<details class="faq-item" open>
|
|
229
|
+
<summary>Is Bumblebee a ThumbGate competitor?</summary>
|
|
230
|
+
<p>No. Bumblebee answers 'what is installed on this dev machine right now' (static inventory). ThumbGate answers 'what is this agent about to do, and should we allow it' (runtime enforcement). Same supply-chain category, different halves of the answer. Use both.</p>
|
|
231
|
+
</details>
|
|
232
|
+
<details class="faq-item">
|
|
233
|
+
<summary>Can I use them together?</summary>
|
|
234
|
+
<p>Yes, and they compose cleanly with zero overlap. Bumblebee is a one-shot Go binary that scans and exits. ThumbGate is a persistent PreToolUse hook in every agent runtime you use. They don't see each other; they don't need to. The integration value is in feeding Bumblebee's MCP inventory into ThumbGate's agent dashboard so you can write gates against actual installed servers.</p>
|
|
235
|
+
</details>
|
|
236
|
+
<details class="faq-item">
|
|
237
|
+
<summary>Does ThumbGate already ingest Bumblebee output?</summary>
|
|
238
|
+
<p>Not yet. Bumblebee released 2026-05-23; the import command is on the near-term roadmap. NDJSON is a clean fit so the integration will land as a small CLI subcommand rather than a heavy adapter.</p>
|
|
239
|
+
</details>
|
|
240
|
+
<details class="faq-item">
|
|
241
|
+
<summary>Why should I use ThumbGate if Perplexity made Bumblebee?</summary>
|
|
242
|
+
<p>Bumblebee is read-only by design — it cannot block anything. Perplexity ships it to inventory developer machines, not to enforce policy on agent tool calls. ThumbGate fills the enforcement layer Bumblebee deliberately leaves to other tools. The two ship without conflict and your security posture is better with both than either alone.</p>
|
|
243
|
+
</details>
|
|
244
|
+
<details class="faq-item">
|
|
245
|
+
<summary>Where do I start?</summary>
|
|
246
|
+
<p>Both can install in under 60 seconds. Bumblebee: <code>go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest</code> then <code>bumblebee self-test</code>. ThumbGate: <code>npx thumbgate init</code>. Run Bumblebee weekly for inventory; let ThumbGate run continuously inside your agent.</p>
|
|
247
|
+
</details>
|
|
248
|
+
</article>
|
|
249
|
+
</main>
|
|
250
|
+
|
|
251
|
+
<aside class="sidebar">
|
|
252
|
+
<div class="sidebar-card">
|
|
253
|
+
<h3 style="margin: 0 0 8px;">Install ThumbGate free</h3>
|
|
254
|
+
<p>10 captures/day, 3 active rules, PreToolUse blocking across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, Claude Desktop.</p>
|
|
255
|
+
<pre style="background: var(--bg-raised); border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 13px; overflow: auto;">npx thumbgate init</pre>
|
|
256
|
+
<a class="cta-button" href="/pricing">See Pro vs Team pricing →</a>
|
|
257
|
+
<p style="font-size: 12px; margin-top: 16px;">MIT licensed. No telemetry without opt-in. <code>THUMBGATE_NO_TELEMETRY=1</code> disables.</p>
|
|
258
|
+
</div>
|
|
259
|
+
|
|
260
|
+
<div class="sidebar-card">
|
|
261
|
+
<span class="related-label">Install Bumblebee too</span>
|
|
262
|
+
<p style="font-size: 13px;">Bumblebee is a great companion tool, not a competitor. Inventories on-disk MCP configs + extensions + lockfiles in read-only NDJSON.</p>
|
|
263
|
+
<pre style="background: var(--bg-raised); border: 1px solid var(--line); border-radius: 8px; padding: 10px; font-size: 12px; overflow: auto;">go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest
|
|
264
|
+
bumblebee self-test
|
|
265
|
+
bumblebee scan profile baseline</pre>
|
|
266
|
+
</div>
|
|
267
|
+
|
|
268
|
+
<div class="sidebar-card">
|
|
269
|
+
<span class="related-label">Related comparisons</span>
|
|
270
|
+
<a class="related-card" href="/compare/anthropic-containment">
|
|
271
|
+
<strong>ThumbGate vs Anthropic's Claude Containment</strong><br>
|
|
272
|
+
<span style="color: var(--muted); font-size: 13px;">IDE-agent extension of Anthropic's published architecture</span>
|
|
273
|
+
</a>
|
|
274
|
+
<a class="related-card" href="/compare/claude-code-hooks">
|
|
275
|
+
<strong>ThumbGate vs claude-code-hooks</strong><br>
|
|
276
|
+
<span style="color: var(--muted); font-size: 13px;">Hosted sync vs local shell scripts</span>
|
|
277
|
+
</a>
|
|
278
|
+
<a class="related-card" href="/compare/heidi">
|
|
279
|
+
<strong>ThumbGate vs HEIDI</strong><br>
|
|
280
|
+
<span style="color: var(--muted); font-size: 13px;">Agent behavior vs dependency CVE scanning</span>
|
|
281
|
+
</a>
|
|
282
|
+
<a class="related-card" href="/compare/mem0">
|
|
283
|
+
<strong>ThumbGate vs Mem0</strong><br>
|
|
284
|
+
<span style="color: var(--muted); font-size: 13px;">Enforcement gates vs long-term agent memory</span>
|
|
285
|
+
</a>
|
|
286
|
+
<a class="related-card" href="/compare/oak-and-sparrow-gatekeeper">
|
|
287
|
+
<strong>ThumbGate vs Gatekeeper (Oak & Sparrow)</strong><br>
|
|
288
|
+
<span style="color: var(--muted); font-size: 13px;">Agent-action gate vs workforce-input gate</span>
|
|
289
|
+
</a>
|
|
290
|
+
<a class="related-card" href="/compare/arcjet">
|
|
291
|
+
<strong>ThumbGate vs Arcjet</strong><br>
|
|
292
|
+
<span style="color: var(--muted); font-size: 13px;">Agent-outbound gate vs app-inbound firewall</span>
|
|
293
|
+
</a>
|
|
294
|
+
<a class="related-card" href="/compare/anthropic-claude-for-legal">
|
|
295
|
+
<strong>ThumbGate vs Claude for Legal</strong><br>
|
|
296
|
+
<span style="color: var(--muted); font-size: 13px;">Runtime feedback-to-enforcement loop underneath Anthropic's legal bundle</span>
|
|
297
|
+
</a>
|
|
298
|
+
</div>
|
|
299
|
+
|
|
300
|
+
<div class="sidebar-card">
|
|
301
|
+
<span class="related-label">Sources</span>
|
|
302
|
+
<p style="font-size: 13px;">Bumblebee data from <a href="https://github.com/perplexityai/bumblebee" target="_blank" rel="noopener">github.com/perplexityai/bumblebee</a> README, <a href="https://www.perplexity.ai/hub/blog/perplexity-is-open-sourcing-bumblebee" target="_blank" rel="noopener">Perplexity's release announcement</a>, and <a href="https://devops.com/perplexity-bumblebee-shakes-loose-hidden-threats-on-dev-desktops/" target="_blank" rel="noopener">DevOps.com coverage</a>. If anything here misrepresents Bumblebee, open an issue at <a href="https://github.com/IgorGanapolsky/ThumbGate/issues" target="_blank" rel="noopener">our repo</a> and we'll correct it.</p>
|
|
303
|
+
</div>
|
|
304
|
+
</aside>
|
|
305
|
+
</div>
|
|
306
|
+
</body>
|
|
307
|
+
</html>
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>ThumbGate vs claude-code-hooks | Hosted Sync vs Local Shell Scripts</title>
|
|
7
|
+
<meta name="description" content="karanb192/claude-code-hooks is a hand-curated bash hook collection you copy-paste into ~/.claude. ThumbGate is the same idea plus a hosted lesson DB, adapter matrix across 8 agent runtimes, and a dashboard you don't self-host. Honest head-to-head." />
|
|
8
|
+
<meta property="og:title" content="ThumbGate vs claude-code-hooks | Hosted Sync vs Local Shell Scripts" />
|
|
9
|
+
<meta property="og:description" content="claude-code-hooks is great if you want to babysit shell scripts on one laptop. ThumbGate is what you want when the same rule has to fire across every machine and every agent your team uses." />
|
|
10
|
+
<meta property="og:type" content="article" />
|
|
11
|
+
<meta property="og:url" content="https://thumbgate.ai/compare/claude-code-hooks" />
|
|
12
|
+
<link rel="canonical" href="https://thumbgate.ai/compare/claude-code-hooks" />
|
|
13
|
+
<link rel="llm-context" href="/llm-context.md" type="text/markdown" />
|
|
14
|
+
<link rel="icon" type="image/png" href="/thumbgate-icon.png" />
|
|
15
|
+
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg" />
|
|
16
|
+
<meta property="og:image" content="/og.png" />
|
|
17
|
+
<style>
|
|
18
|
+
:root { --bg: #0a0a0b; --bg-raised: #111113; --bg-card: #161618; --line: #222225; --text: #e8e8ec; --muted: #8b8b96; --cyan: #22d3ee; --green: #4ade80; --amber: #fbbf24; }
|
|
19
|
+
* { box-sizing: border-box; }
|
|
20
|
+
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--text); line-height: 1.65; }
|
|
21
|
+
a { color: var(--cyan); text-decoration: none; }
|
|
22
|
+
a:hover { text-decoration: underline; }
|
|
23
|
+
.container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
|
|
24
|
+
.topbar { position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); background: rgba(10, 10, 11, 0.88); border-bottom: 1px solid var(--line); }
|
|
25
|
+
.topbar .container { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; padding-bottom: 14px; }
|
|
26
|
+
.brand { font-weight: 700; color: var(--text); display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
|
|
27
|
+
.brand .logo-mark { width: 28px; height: 28px; display: block; }
|
|
28
|
+
.hero { padding: 72px 0 32px; }
|
|
29
|
+
.eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(34, 211, 238, 0.22); background: rgba(34, 211, 238, 0.1); color: var(--cyan); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; font-weight: 700; }
|
|
30
|
+
h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.06; letter-spacing: -0.04em; margin: 16px 0; max-width: 820px; }
|
|
31
|
+
.hero p { max-width: 760px; color: var(--muted); font-size: 18px; }
|
|
32
|
+
.grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 24px; padding-bottom: 72px; }
|
|
33
|
+
.card, .detail-section, .sidebar-card { background: var(--bg-card); border: 1px solid var(--line); border-radius: 16px; }
|
|
34
|
+
.card { padding: 24px; }
|
|
35
|
+
.detail-section { padding: 24px; margin-bottom: 18px; }
|
|
36
|
+
.detail-section h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: -0.03em; }
|
|
37
|
+
.detail-section p, .detail-section li, .sidebar-card p { color: var(--muted); }
|
|
38
|
+
.detail-section ul, .card ul { padding-left: 18px; color: var(--muted); }
|
|
39
|
+
.comparison-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 14px; }
|
|
40
|
+
.comparison-table th, .comparison-table td { border: 1px solid var(--line); padding: 12px; text-align: left; vertical-align: top; }
|
|
41
|
+
.comparison-table th { background: var(--bg-raised); color: var(--cyan); }
|
|
42
|
+
.pill-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
|
|
43
|
+
.pill { border: 1px solid var(--line); background: var(--bg-raised); border-radius: 999px; padding: 10px 14px; font-size: 14px; font-weight: 650; }
|
|
44
|
+
.pill.good { color: #b8f7c8; border-color: rgba(74, 222, 128, 0.28); background: rgba(74, 222, 128, 0.1); }
|
|
45
|
+
.pill.warn { color: #ffe2a4; border-color: rgba(251, 191, 36, 0.28); background: rgba(251, 191, 36, 0.1); }
|
|
46
|
+
.sidebar { display: flex; flex-direction: column; gap: 18px; }
|
|
47
|
+
.sidebar-card { padding: 20px; }
|
|
48
|
+
.sidebar-card:first-child { position: sticky; top: 84px; max-height: calc(100vh - 104px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
|
|
49
|
+
.cta-button { display: inline-flex; align-items: center; justify-content: center; margin-top: 18px; padding: 12px 16px; border-radius: 10px; background: var(--cyan); color: #071116; font-weight: 700; text-decoration: none; }
|
|
50
|
+
.related-card { display: block; padding: 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg-raised); margin-top: 12px; color: var(--text); }
|
|
51
|
+
.related-label { display: block; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
|
|
52
|
+
.faq-item { border-top: 1px solid var(--line); padding: 14px 0; }
|
|
53
|
+
.faq-item summary { cursor: pointer; font-weight: 600; }
|
|
54
|
+
.faq-item p { color: var(--muted); }
|
|
55
|
+
@media (max-width: 860px) { .grid { grid-template-columns: 1fr; } .sidebar-card:first-child { position: static; max-height: none; overflow: visible; } }
|
|
56
|
+
</style>
|
|
57
|
+
<script type="application/ld+json">
|
|
58
|
+
{
|
|
59
|
+
"@context": "https://schema.org",
|
|
60
|
+
"@type": "TechArticle",
|
|
61
|
+
"headline": "ThumbGate vs claude-code-hooks",
|
|
62
|
+
"description": "karanb192/claude-code-hooks is a copy-paste bash hook collection for one laptop. ThumbGate is the same enforcement model plus hosted lesson sync, an adapter matrix across 8 agent runtimes, and a dashboard. Side-by-side comparison.",
|
|
63
|
+
"about": ["thumbgate vs claude-code-hooks", "AI coding agent safety hooks", "PreToolUse hook comparison", "Claude Code shell hooks"],
|
|
64
|
+
"url": "https://thumbgate.ai/compare/claude-code-hooks",
|
|
65
|
+
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
|
|
66
|
+
"mainEntityOfPage": "https://thumbgate.ai/compare/claude-code-hooks"
|
|
67
|
+
}
|
|
68
|
+
</script>
|
|
69
|
+
<script type="application/ld+json">
|
|
70
|
+
{
|
|
71
|
+
"@context": "https://schema.org",
|
|
72
|
+
"@type": "FAQPage",
|
|
73
|
+
"mainEntity": [
|
|
74
|
+
{
|
|
75
|
+
"@type": "Question",
|
|
76
|
+
"name": "Is claude-code-hooks a direct ThumbGate competitor?",
|
|
77
|
+
"acceptedAnswer": {
|
|
78
|
+
"@type": "Answer",
|
|
79
|
+
"text": "Same category, different scope. karanb192/claude-code-hooks is a curated GitHub repository of bash scripts you copy into ~/.claude/hooks and edit by hand. ThumbGate ships the same PreToolUse enforcement model as a runtime engine plus hosted lesson sync across machines, a maintained adapter matrix for Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and Claude Desktop, and a dashboard you don't self-host. If you only run one agent on one laptop and you like bash, claude-code-hooks is great. If the same rule has to fire across multiple machines, multiple agents, or multiple teammates, that's where ThumbGate fits."
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"@type": "Question",
|
|
84
|
+
"name": "Can I use both?",
|
|
85
|
+
"acceptedAnswer": {
|
|
86
|
+
"@type": "Answer",
|
|
87
|
+
"text": "Yes. claude-code-hooks runs at the Claude Code hooks layer; ThumbGate's runtime runs at the same PreToolUse boundary but is agent-agnostic and persists lessons across reinstalls. They don't fight each other. The most common pattern is: borrow a few well-written hooks from claude-code-hooks for ideas, then let ThumbGate generalize them across every agent runtime you use."
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"@type": "Question",
|
|
92
|
+
"name": "What does ThumbGate Pro add that the free tier and claude-code-hooks don't?",
|
|
93
|
+
"acceptedAnswer": {
|
|
94
|
+
"@type": "Answer",
|
|
95
|
+
"text": "Hosted lesson sync (the same rule fires on your laptop and your CI runner without you re-copying scripts), the managed adapter matrix (when Claude Code, Cursor, or Codex ship a breaking change to their hook API, that's our problem not yours), a dashboard with gate hit rates and agent inventory, DPO/HuggingFace export for fine-tuning, and 24x7 ops. claude-code-hooks doesn't aim to do any of that on purpose — its scope is intentionally local-only."
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"@type": "Question",
|
|
100
|
+
"name": "Is ThumbGate's local CLI free?",
|
|
101
|
+
"acceptedAnswer": {
|
|
102
|
+
"@type": "Answer",
|
|
103
|
+
"text": "Yes. npx thumbgate init gives you the runtime, 10 feedback captures per day, 3 active prevention rules, 5 built-in checks, and PreToolUse blocking across all supported agents. MIT licensed. Pro at $19/mo unlocks unlimited captures, unlimited rules, sync, dashboard, and exports."
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
</script>
|
|
109
|
+
</head>
|
|
110
|
+
<body>
|
|
111
|
+
<div class="topbar">
|
|
112
|
+
<div class="container">
|
|
113
|
+
<a class="brand" href="/"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
|
|
114
|
+
<a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">Verification evidence</a>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<section class="hero">
|
|
119
|
+
<div class="container">
|
|
120
|
+
<span class="eyebrow">ThumbGate vs claude-code-hooks</span>
|
|
121
|
+
<h1>Copy-paste hooks on one laptop, or the same enforcement model across every agent and machine.</h1>
|
|
122
|
+
<p><strong>claude-code-hooks</strong> (by <a href="https://github.com/karanb192/claude-code-hooks" target="_blank" rel="noopener">karanb192</a>) is a hand-curated collection of bash hooks you drop into <code>~/.claude/hooks</code>. It's a great free starting point. <strong>ThumbGate</strong> ships the same PreToolUse enforcement idea, but as a runtime that learns from your feedback, syncs lessons across machines, and works across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, and Claude Desktop without you maintaining shell scripts.</p>
|
|
123
|
+
<div class="pill-row">
|
|
124
|
+
<span class="pill">Both free at base tier</span>
|
|
125
|
+
<span class="pill">Both PreToolUse-based</span>
|
|
126
|
+
<span class="pill">Both local-first by default</span>
|
|
127
|
+
<span class="pill good">Different scopes</span>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</section>
|
|
131
|
+
|
|
132
|
+
<div class="container grid">
|
|
133
|
+
<main>
|
|
134
|
+
<article class="detail-section">
|
|
135
|
+
<h2>Side-by-side feature comparison</h2>
|
|
136
|
+
<table class="comparison-table">
|
|
137
|
+
<thead>
|
|
138
|
+
<tr>
|
|
139
|
+
<th>Capability</th>
|
|
140
|
+
<th>claude-code-hooks</th>
|
|
141
|
+
<th>ThumbGate</th>
|
|
142
|
+
</tr>
|
|
143
|
+
</thead>
|
|
144
|
+
<tbody>
|
|
145
|
+
<tr>
|
|
146
|
+
<td>Distribution</td>
|
|
147
|
+
<td>GitHub repo of shell scripts; copy-paste into <code>~/.claude/hooks</code></td>
|
|
148
|
+
<td>npm package: <code>npx thumbgate init</code> wires hooks across every supported agent</td>
|
|
149
|
+
</tr>
|
|
150
|
+
<tr>
|
|
151
|
+
<td>Agents supported</td>
|
|
152
|
+
<td>Claude Code only (uses Claude Code's native hooks API)</td>
|
|
153
|
+
<td>Claude Code, Cursor, OpenAI Codex CLI, Google Gemini CLI, Sourcegraph Amp, Cline, OpenCode, Claude Desktop (via MCP)</td>
|
|
154
|
+
</tr>
|
|
155
|
+
<tr>
|
|
156
|
+
<td>Rule format</td>
|
|
157
|
+
<td>Hand-written bash scripts (deny-lists, regex matchers)</td>
|
|
158
|
+
<td>Auto-promoted from operator feedback through Thompson Sampling; precision/recall gated before any rule activates</td>
|
|
159
|
+
</tr>
|
|
160
|
+
<tr>
|
|
161
|
+
<td>Cross-machine sync</td>
|
|
162
|
+
<td>Manual: copy the repo to each machine you use</td>
|
|
163
|
+
<td>Pro tier: hosted lesson sync, so the same rule fires on laptop, CI, and teammate machines</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td>Adapter maintenance</td>
|
|
167
|
+
<td>You maintain it as Claude Code's hook API changes</td>
|
|
168
|
+
<td>Maintained adapter matrix — when an agent runtime ships a breaking change, we update the adapter</td>
|
|
169
|
+
</tr>
|
|
170
|
+
<tr>
|
|
171
|
+
<td>Dashboard</td>
|
|
172
|
+
<td>None (file-based logs)</td>
|
|
173
|
+
<td>Hit rates, gate inventory, agent activity, DPO export, hosted at <a href="/dashboard">/dashboard</a></td>
|
|
174
|
+
</tr>
|
|
175
|
+
<tr>
|
|
176
|
+
<td>Telemetry / training data export</td>
|
|
177
|
+
<td>None</td>
|
|
178
|
+
<td>DPO preference pairs, HuggingFace dataset export, Databricks-friendly JSONL</td>
|
|
179
|
+
</tr>
|
|
180
|
+
<tr>
|
|
181
|
+
<td>License</td>
|
|
182
|
+
<td>MIT</td>
|
|
183
|
+
<td>MIT (npm package); Pro/Team are hosted services</td>
|
|
184
|
+
</tr>
|
|
185
|
+
<tr>
|
|
186
|
+
<td>Cost</td>
|
|
187
|
+
<td>$0 forever</td>
|
|
188
|
+
<td>$0 local CLI; $19/mo Pro for sync + dashboard; $49/seat/mo Team (min 3) for workflow hardening sprint</td>
|
|
189
|
+
</tr>
|
|
190
|
+
</tbody>
|
|
191
|
+
</table>
|
|
192
|
+
</article>
|
|
193
|
+
|
|
194
|
+
<article class="detail-section">
|
|
195
|
+
<h2>Pick claude-code-hooks if</h2>
|
|
196
|
+
<ul>
|
|
197
|
+
<li>You use Claude Code on one laptop and you're happy editing bash by hand.</li>
|
|
198
|
+
<li>You want every line of enforcement visible in a shell script you can grep through in 30 seconds.</li>
|
|
199
|
+
<li>You don't need the same rule to fire on a teammate's machine or on CI.</li>
|
|
200
|
+
<li>You haven't yet hit the "I've copied these hooks to my third laptop, this is getting silly" moment.</li>
|
|
201
|
+
</ul>
|
|
202
|
+
<p>karanb192's repo is a legitimately great resource and the answers it provides for the basic blocklist questions are the right ones. We link to it from our docs. There's nothing about it that we're trying to disparage — it's just scoped to a smaller problem than what ThumbGate solves.</p>
|
|
203
|
+
</article>
|
|
204
|
+
|
|
205
|
+
<article class="detail-section">
|
|
206
|
+
<h2>Pick ThumbGate if</h2>
|
|
207
|
+
<ul>
|
|
208
|
+
<li>You use more than one AI coding agent and you want the same rule to fire across all of them.</li>
|
|
209
|
+
<li>You don't want to babysit shell scripts when Claude Code, Cursor, or Codex ship a breaking change to their hook API.</li>
|
|
210
|
+
<li>You want lessons to auto-promote from operator feedback instead of writing every rule by hand.</li>
|
|
211
|
+
<li>You want a dashboard, exports, and the ability to share enforced rules across a team.</li>
|
|
212
|
+
<li>You're a law firm, finance team, or other regulated org that needs an audit trail of every blocked action.</li>
|
|
213
|
+
</ul>
|
|
214
|
+
</article>
|
|
215
|
+
|
|
216
|
+
<article class="detail-section">
|
|
217
|
+
<h2>Can I use both?</h2>
|
|
218
|
+
<p>Yes. claude-code-hooks runs at Claude Code's native hooks layer. ThumbGate runs at the same PreToolUse boundary but is agent-agnostic and persists lessons across reinstalls and machines. They don't conflict. The most common dual-use pattern: borrow well-written hook ideas from claude-code-hooks (their <code>block-dangerous-commands</code> and <code>protect-secrets</code> sets are good seed material), let ThumbGate generalize those patterns into prevention rules that fire across every agent runtime you use.</p>
|
|
219
|
+
</article>
|
|
220
|
+
|
|
221
|
+
<article class="detail-section">
|
|
222
|
+
<h2>FAQ</h2>
|
|
223
|
+
<details class="faq-item" open>
|
|
224
|
+
<summary>Is claude-code-hooks a direct ThumbGate competitor?</summary>
|
|
225
|
+
<p>Same category, different scope. claude-code-hooks is a copy-paste bash hook collection for one laptop running Claude Code. ThumbGate is the same PreToolUse enforcement model packaged as a runtime engine with hosted sync, a multi-agent adapter matrix, and a dashboard. If you only need a few static rules on one machine, claude-code-hooks is fine. If you need the same rule to fire across machines, agents, or teammates, that's where ThumbGate fits.</p>
|
|
226
|
+
</details>
|
|
227
|
+
<details class="faq-item">
|
|
228
|
+
<summary>Is ThumbGate's free CLI as capable as claude-code-hooks?</summary>
|
|
229
|
+
<p>For the basic blocklist use case, comparable. ThumbGate's free tier ships 5 built-in checks plus the feedback loop and PreToolUse hook across 8 agent runtimes. claude-code-hooks ships more pre-written bash scripts you can install on day one. If you want to start with curated hand-written rules, install both — start with claude-code-hooks for the seed library, run ThumbGate alongside it to learn from your thumbs-down reactions.</p>
|
|
230
|
+
</details>
|
|
231
|
+
<details class="faq-item">
|
|
232
|
+
<summary>What does ThumbGate Pro add over both the free tier and claude-code-hooks?</summary>
|
|
233
|
+
<p>Hosted lesson sync, the maintained adapter matrix, the dashboard, DPO and HuggingFace export, and 24x7 ops on the rule engine. Pro is $19/mo. Team at $49/seat/mo (min 3) adds shared lesson DB and the Workflow Hardening Sprint engagement.</p>
|
|
234
|
+
</details>
|
|
235
|
+
<details class="faq-item">
|
|
236
|
+
<summary>Where do I start?</summary>
|
|
237
|
+
<p>If you want the smallest possible install: <code>npx thumbgate init</code>. If you want a curated set of hand-written hook examples to read: <a href="https://github.com/karanb192/claude-code-hooks" target="_blank" rel="noopener">karanb192/claude-code-hooks</a>. The two are complementary.</p>
|
|
238
|
+
</details>
|
|
239
|
+
</article>
|
|
240
|
+
</main>
|
|
241
|
+
|
|
242
|
+
<aside class="sidebar">
|
|
243
|
+
<div class="sidebar-card">
|
|
244
|
+
<h3 style="margin: 0 0 8px;">Install ThumbGate free</h3>
|
|
245
|
+
<p>10 captures/day, 3 active rules, PreToolUse blocking across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, Claude Desktop.</p>
|
|
246
|
+
<pre style="background: var(--bg-raised); border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 13px; overflow: auto;">npx thumbgate init</pre>
|
|
247
|
+
<a class="cta-button" href="/pricing">See Pro vs Team pricing →</a>
|
|
248
|
+
<p style="font-size: 12px; margin-top: 16px;">MIT licensed. No telemetry without explicit opt-in. <code>THUMBGATE_NO_TELEMETRY=1</code> to disable.</p>
|
|
249
|
+
</div>
|
|
250
|
+
|
|
251
|
+
<div class="sidebar-card">
|
|
252
|
+
<span class="related-label">Related comparisons</span>
|
|
253
|
+
<a class="related-card" href="/compare/anthropic-containment">
|
|
254
|
+
<strong>ThumbGate vs Anthropic's Claude Containment</strong><br>
|
|
255
|
+
<span style="color: var(--muted); font-size: 13px;">IDE-agent extension of Anthropic's published architecture</span>
|
|
256
|
+
</a>
|
|
257
|
+
<a class="related-card" href="/compare/bumblebee">
|
|
258
|
+
<strong>ThumbGate vs Bumblebee</strong><br>
|
|
259
|
+
<span style="color: var(--muted); font-size: 13px;">Runtime enforcement vs Perplexity's static MCP inventory</span>
|
|
260
|
+
</a>
|
|
261
|
+
<a class="related-card" href="/compare/heidi">
|
|
262
|
+
<strong>ThumbGate vs HEIDI</strong><br>
|
|
263
|
+
<span style="color: var(--muted); font-size: 13px;">Agent behavior enforcement vs dependency CVE scanning</span>
|
|
264
|
+
</a>
|
|
265
|
+
<a class="related-card" href="/compare/mem0">
|
|
266
|
+
<strong>ThumbGate vs Mem0</strong><br>
|
|
267
|
+
<span style="color: var(--muted); font-size: 13px;">Enforcement gates vs long-term agent memory</span>
|
|
268
|
+
</a>
|
|
269
|
+
<a class="related-card" href="/compare/speclock">
|
|
270
|
+
<strong>ThumbGate vs SpecLock</strong><br>
|
|
271
|
+
<span style="color: var(--muted); font-size: 13px;">Runtime PreToolUse vs spec-pinned contracts</span>
|
|
272
|
+
</a>
|
|
273
|
+
<a class="related-card" href="/compare/oak-and-sparrow-gatekeeper">
|
|
274
|
+
<strong>ThumbGate vs Gatekeeper (Oak & Sparrow)</strong><br>
|
|
275
|
+
<span style="color: var(--muted); font-size: 13px;">Agent-action gate vs workforce-input gate</span>
|
|
276
|
+
</a>
|
|
277
|
+
<a class="related-card" href="/compare/arcjet">
|
|
278
|
+
<strong>ThumbGate vs Arcjet</strong><br>
|
|
279
|
+
<span style="color: var(--muted); font-size: 13px;">Agent-outbound gate vs app-inbound firewall</span>
|
|
280
|
+
</a>
|
|
281
|
+
<a class="related-card" href="/compare/anthropic-claude-for-legal">
|
|
282
|
+
<strong>ThumbGate vs Claude for Legal</strong><br>
|
|
283
|
+
<span style="color: var(--muted); font-size: 13px;">Runtime feedback-to-enforcement loop underneath Anthropic's legal bundle</span>
|
|
284
|
+
</a>
|
|
285
|
+
</div>
|
|
286
|
+
|
|
287
|
+
<div class="sidebar-card">
|
|
288
|
+
<span class="related-label">Sources</span>
|
|
289
|
+
<p style="font-size: 13px;">Comparison data from <a href="https://github.com/karanb192/claude-code-hooks" target="_blank" rel="noopener">karanb192/claude-code-hooks README</a> (MIT license, public repo) and ThumbGate's <a href="https://github.com/IgorGanapolsky/ThumbGate/blob/main/docs/VERIFICATION_EVIDENCE.md" target="_blank" rel="noopener">VERIFICATION_EVIDENCE.md</a>. If anything here misrepresents claude-code-hooks, open an issue at <a href="https://github.com/IgorGanapolsky/ThumbGate/issues" target="_blank" rel="noopener">our repo</a> and we'll correct it.</p>
|
|
290
|
+
</div>
|
|
291
|
+
</aside>
|
|
292
|
+
</div>
|
|
293
|
+
</body>
|
|
294
|
+
</html>
|