thumbgate 1.27.12 → 1.27.13
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 +2 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +2 -4
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/adapters/policy-engine/ethicore-guardian-client.js +68 -0
- package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +260 -0
- package/bin/cli.js +78 -259
- package/config/gate-templates.json +0 -228
- package/config/gates/claim-verification.json +0 -18
- package/package.json +35 -25
- package/public/assets/brand/thumbgate-logo-transparent.svg +22 -0
- package/public/assets/brand/thumbgate-mark-inline-v3.svg +19 -0
- package/public/assets/brand/thumbgate-mark.svg +11 -5
- package/public/blog.html +0 -30
- package/public/brand/thumbgate-mark.svg +9 -5
- package/public/chatgpt-app.html +2 -2
- package/public/compare.html +2 -1
- package/public/dashboard.html +1 -1
- package/public/federal.html +1 -1
- package/public/index.html +95 -216
- package/public/learn.html +59 -35
- package/public/lessons.html +1 -1
- package/public/numbers.html +2 -2
- package/public/pro.html +7 -7
- package/scripts/aws-blocks-guardrails.js +228 -0
- package/scripts/cli-schema.js +22 -10
- package/scripts/dashboard-chat.js +2 -1
- package/scripts/document-intake.js +1 -49
- package/scripts/durability/step.js +3 -3
- package/scripts/gate-stats.js +5 -11
- package/scripts/gates-engine.js +0 -49
- package/scripts/gemini-embedding-policy.js +2 -1
- package/scripts/hook-stop-anti-claim.js +116 -184
- package/scripts/hosted-config.js +0 -12
- package/scripts/lesson-search.js +1 -15
- package/scripts/llm-client.js +187 -5
- package/scripts/plausible-domain-config.js +3 -1
- package/scripts/seo-gsd.js +240 -1
- package/scripts/tool-registry.js +2 -2
- package/scripts/vector-store.js +44 -0
- package/scripts/workspace-evolver.js +62 -2
- package/src/api/server.js +340 -131
- package/public/assets/brand/thumbgate-mark-inline.svg +0 -15
- package/public/compare/adopt-ai.html +0 -219
- package/public/compare/agentix-labs.html +0 -197
- package/public/compare/ai-experience-orchestration.html +0 -216
- package/public/compare/anthropic-claude-for-legal.html +0 -260
- package/public/compare/anthropic-containment.html +0 -280
- package/public/compare/arcade.html +0 -175
- package/public/compare/arcjet.html +0 -239
- package/public/compare/bumblebee.html +0 -307
- package/public/compare/claude-code-hooks.html +0 -294
- package/public/compare/databricks-unity-ai-gateway.html +0 -215
- package/public/compare/fallow.html +0 -351
- package/public/compare/heidi.html +0 -233
- package/public/compare/mem0.html +0 -342
- package/public/compare/oak-and-sparrow-gatekeeper.html +0 -289
- package/public/compare/rein.html +0 -236
- package/public/compare/sigmashake.html +0 -256
- package/public/compare/speclock.html +0 -342
- package/public/guides/agent-harness-optimization.html +0 -342
- package/public/guides/agentic-web-governance.html +0 -406
- package/public/guides/ai-agent-governance-sprint.html +0 -415
- package/public/guides/ai-agent-pre-action-approval-gates.html +0 -401
- package/public/guides/ai-agent-workflow-migration-checklist.html +0 -392
- package/public/guides/ai-deployment-readiness.html +0 -415
- package/public/guides/ai-mode-ads-agent-governance.html +0 -401
- package/public/guides/ai-search-topical-presence.html +0 -342
- package/public/guides/autoresearch-agent-safety.html +0 -342
- package/public/guides/background-agent-governance.html +0 -358
- package/public/guides/best-tools-stop-ai-agents-breaking-production.html +0 -363
- package/public/guides/browser-automation-safety.html +0 -342
- package/public/guides/chatgpt-ads-trust.html +0 -353
- package/public/guides/claude-code-feedback.html +0 -339
- package/public/guides/claude-code-prevent-repeated-mistakes.html +0 -161
- package/public/guides/claude-code-skills-guardrails.html +0 -343
- package/public/guides/claude-desktop.html +0 -356
- package/public/guides/code-knowledge-graph-guardrails.html +0 -365
- package/public/guides/codex-cli-guardrails.html +0 -339
- package/public/guides/cursor-agent-guardrails.html +0 -339
- package/public/guides/cursor-prevent-repeated-mistakes.html +0 -161
- package/public/guides/database-agent-safety.html +0 -406
- package/public/guides/deepseek-v4-runtime-guardrails.html +0 -346
- package/public/guides/developer-machine-supply-chain-guardrails.html +0 -358
- package/public/guides/gcp-mcp-guardrails.html +0 -147
- package/public/guides/gemini-cli-feedback-memory.html +0 -339
- package/public/guides/gpt-5-5-model-evaluation.html +0 -358
- package/public/guides/internal-ai-engineering-stack-guardrails.html +0 -348
- package/public/guides/long-running-agent-context-management.html +0 -346
- package/public/guides/mcp-tool-governance.html +0 -401
- package/public/guides/multica-thumbgate-setup.html +0 -134
- package/public/guides/native-messaging-host-security.html +0 -342
- package/public/guides/policy-engine-pre-action-gates.html +0 -346
- package/public/guides/pre-action-checks.html +0 -342
- package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +0 -342
- package/public/guides/prompt-tricks-to-workflow-rules.html +0 -365
- package/public/guides/proxy-pointer-rag-guardrails.html +0 -352
- package/public/guides/rag-precision-tuning-guardrails.html +0 -352
- package/public/guides/reasoning-compression-guardrails.html +0 -346
- package/public/guides/relational-knowledge-ai-recommendations.html +0 -342
- package/public/guides/roo-code-alternative-cline.html +0 -339
- package/public/guides/semantic-programmatic-seo-guardrails.html +0 -352
- package/public/guides/seo-agent-skills-guardrails.html +0 -344
- package/public/guides/stop-repeated-ai-agent-mistakes.html +0 -342
- package/public/learn/ac-dc-runtime-enforcement.html +0 -277
- package/public/learn/agent-harness-pattern.html +0 -181
- package/public/learn/agent-identity-connector-governance.html +0 -146
- package/public/learn/agent-swarms-shared-gates.html +0 -173
- package/public/learn/agentic-enterprise-context-brain.html +0 -117
- package/public/learn/agentic-os-team-governance.html +0 -146
- package/public/learn/ai-agent-governance.html +0 -158
- package/public/learn/ai-agent-persistent-memory.html +0 -211
- package/public/learn/anthropomorphic-claim-gates.html +0 -180
- package/public/learn/background-agent-control-layer.html +0 -184
- package/public/learn/claude-code-goal-with-rubrics.html +0 -205
- package/public/learn/codex-role-plugins-need-governance.html +0 -125
- package/public/learn/cost-aware-agent-gate-routing.html +0 -173
- package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +0 -157
- package/public/learn/deterministic-agent-workflows.html +0 -185
- package/public/learn/feedback-loop-vs-decision-layer.html +0 -283
- package/public/learn/from-prototype-to-production.html +0 -223
- package/public/learn/learn.css +0 -51
- package/public/learn/mcp-pre-action-checks-explained.html +0 -172
- package/public/learn/pretix-stripe-connect-marketplaces.html +0 -161
- package/public/learn/regulated-agent-execution-boundary.html +0 -196
- package/public/learn/spec-driven-development.html +0 -168
- package/public/learn/stop-ai-agent-force-push.html +0 -134
- package/public/learn/vibe-coding-safety-net.html +0 -142
- package/scripts/reddit-browser-notification-watch.js +0 -230
package/public/compare/rein.html
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
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 Rein — Coding-Agent Governance vs Generic Decorator Governance</title>
|
|
7
|
-
<script defer data-domain="thumbgate.ai" src="https://plausible.io/js/script.js"></script>
|
|
8
|
-
<meta name="description" content="ThumbGate vs Rein for AI agent governance. Rein is a generic decorator for production apps in regulated domains. ThumbGate is the coding-agent specialist with a learning feedback loop and MIT licensing.">
|
|
9
|
-
<meta name="keywords" content="AI agent governance, Rein, ThumbGate, runtime governance, pre-action hooks, agent decorator, coding agent guardrails">
|
|
10
|
-
<meta property="og:title" content="ThumbGate vs Rein — Coding-Agent Governance vs Generic Decorator Governance">
|
|
11
|
-
<meta property="og:description" content="Both intercept agent actions before damage. Different layers, different domains, different licenses. Honest side-by-side.">
|
|
12
|
-
<meta property="og:type" content="article">
|
|
13
|
-
<meta property="og:url" content="https://thumbgate.ai/compare/rein">
|
|
14
|
-
<link rel="canonical" href="https://thumbgate.ai/compare/rein">
|
|
15
|
-
|
|
16
|
-
<script type="application/ld+json">
|
|
17
|
-
{
|
|
18
|
-
"@context": "https://schema.org",
|
|
19
|
-
"@type": "TechArticle",
|
|
20
|
-
"headline": "ThumbGate vs Rein — Coding-Agent Governance vs Generic Decorator Governance",
|
|
21
|
-
"description": "Side-by-side comparison of two pre-action governance layers for AI agents. ThumbGate specializes in AI coding agents (Claude Code, Cursor, Codex). Rein is a generic decorator targeted at production apps in regulated domains.",
|
|
22
|
-
"author": {
|
|
23
|
-
"@type": "Person",
|
|
24
|
-
"name": "Igor Ganapolsky",
|
|
25
|
-
"url": "https://github.com/IgorGanapolsky"
|
|
26
|
-
},
|
|
27
|
-
"publisher": {
|
|
28
|
-
"@type": "Organization",
|
|
29
|
-
"name": "ThumbGate",
|
|
30
|
-
"url": "https://thumbgate.ai"
|
|
31
|
-
},
|
|
32
|
-
"datePublished": "2026-05-15",
|
|
33
|
-
"dateModified": "2026-05-15",
|
|
34
|
-
"mainEntityOfPage": "https://thumbgate.ai/compare/rein"
|
|
35
|
-
}
|
|
36
|
-
</script>
|
|
37
|
-
|
|
38
|
-
<script type="application/ld+json">
|
|
39
|
-
{
|
|
40
|
-
"@context": "https://schema.org",
|
|
41
|
-
"@type": "FAQPage",
|
|
42
|
-
"mainEntity": [
|
|
43
|
-
{
|
|
44
|
-
"@type": "Question",
|
|
45
|
-
"name": "What's the difference between Rein and ThumbGate?",
|
|
46
|
-
"acceptedAnswer": {
|
|
47
|
-
"@type": "Answer",
|
|
48
|
-
"text": "Both intercept an agent's action before it fires — that's the shared category. Rein is a generic in-process Python decorator aimed at production apps in regulated domains (trading, healthcare, legal), where each decision is high-stakes and policies are authored by hand. ThumbGate is the coding-agent specialist for Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode: it intercepts at the out-of-process PreToolUse hook boundary and learns from thumbs-down corrections, auto-promoting them into prevention rules that persist across sessions. Same pre-action thesis, different target user."
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"@type": "Question",
|
|
53
|
-
"name": "Can I use Rein and ThumbGate together?",
|
|
54
|
-
"acceptedAnswer": {
|
|
55
|
-
"@type": "Answer",
|
|
56
|
-
"text": "Yes. They don't conflict and they aren't direct alternatives. Rein governs a production application's agent at the decorated-function boundary; ThumbGate governs your engineering team's coding agents at the PreToolUse boundary. A team running both a regulated production agent and an AI coding workflow can use Rein for the first and ThumbGate for the second."
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"@type": "Question",
|
|
61
|
-
"name": "Does ThumbGate require code changes like Rein's decorator?",
|
|
62
|
-
"acceptedAnswer": {
|
|
63
|
-
"@type": "Answer",
|
|
64
|
-
"text": "No. Rein integrates as a Python decorator you wrap around each tool function. ThumbGate installs with npx thumbgate init, which auto-detects the agent and wires the PreToolUse hooks with zero workflow change. It runs out-of-process at the agent runtime boundary, so dangerous calls are caught before the agent's process even attempts them."
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"@type": "Question",
|
|
69
|
-
"name": "Is ThumbGate open source like Rein?",
|
|
70
|
-
"acceptedAnswer": {
|
|
71
|
-
"@type": "Answer",
|
|
72
|
-
"text": "ThumbGate's CLI and hook layer are MIT licensed — open-core, not viral — with commercial licensing for Pro and Team features. Rein's exact license should be confirmed at reinai.io before you make a distribution decision; a secondary source summarized it as AGPL, but we have not independently verified that, so check the primary source."
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
</script>
|
|
78
|
-
|
|
79
|
-
<link rel="stylesheet" href="/learn/learn.css">
|
|
80
|
-
<style>
|
|
81
|
-
.matrix { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.95rem; }
|
|
82
|
-
.matrix th, .matrix td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
|
|
83
|
-
.matrix th { background: var(--bg-card); font-weight: 600; }
|
|
84
|
-
.matrix td:nth-child(2) { color: var(--muted); }
|
|
85
|
-
.matrix td:nth-child(3) { color: var(--text); }
|
|
86
|
-
.verdict { font-weight: 600; color: var(--green); }
|
|
87
|
-
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 1.5rem 0; }
|
|
88
|
-
.pair > div { background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1rem; }
|
|
89
|
-
@media (max-width: 700px) { .pair { grid-template-columns: 1fr; } }
|
|
90
|
-
</style>
|
|
91
|
-
</head>
|
|
92
|
-
<body>
|
|
93
|
-
|
|
94
|
-
<nav>
|
|
95
|
-
<a href="/" class="brand"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
|
|
96
|
-
<a href="/pricing">Pricing</a>
|
|
97
|
-
<a href="/case-studies">Case Studies</a>
|
|
98
|
-
<a href="/compare">Compare</a>
|
|
99
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
|
|
100
|
-
</nav>
|
|
101
|
-
|
|
102
|
-
<div class="container">
|
|
103
|
-
<div class="breadcrumb"><a href="/compare">Compare</a> / ThumbGate vs Rein</div>
|
|
104
|
-
<h1>ThumbGate vs Rein</h1>
|
|
105
|
-
<p style="color:var(--muted);">5 min read · For teams evaluating AI-agent runtime governance options</p>
|
|
106
|
-
|
|
107
|
-
<div class="tldr"><strong>TL;DR:</strong> Both Rein and ThumbGate intercept agent actions before they fire — that's the shared category. The honest differences: Rein is a <em>generic in-process decorator</em> aimed at production apps in regulated domains (trading, healthcare, legal). ThumbGate is the <em>coding-agent specialist</em> for Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, with a feedback loop that learns from thumbs-down corrections, plus MIT licensing on the core CLI + hook layer. <em>Note: Rein's exact license terms are documented at reinai.io; the source we read summarized them as "AGPL" but we have not independently verified — check the primary source before making a distribution decision.</em></div>
|
|
108
|
-
|
|
109
|
-
<h2>The shared thesis</h2>
|
|
110
|
-
<p>Both projects start from the same observation: most AI agent frameworks optimize for task completion, very few optimize for what happens when the agent does the wrong task. Both insert a gate <em>before</em> the action fires rather than trying to clean up after it.</p>
|
|
111
|
-
|
|
112
|
-
<p>Below is an honest side-by-side. We're not going to claim ThumbGate "wins" on every dimension — Rein is well-designed software with a legitimate niche. Pick by what you're actually building.</p>
|
|
113
|
-
|
|
114
|
-
<h2>Side-by-side</h2>
|
|
115
|
-
|
|
116
|
-
<table class="matrix">
|
|
117
|
-
<thead>
|
|
118
|
-
<tr><th style="width:28%;">Dimension</th><th style="width:36%;">Rein</th><th style="width:36%;">ThumbGate</th></tr>
|
|
119
|
-
</thead>
|
|
120
|
-
<tbody>
|
|
121
|
-
<tr>
|
|
122
|
-
<td><strong>Integration layer</strong></td>
|
|
123
|
-
<td>In-process Python decorator wrapping the agent's tool functions.</td>
|
|
124
|
-
<td>Out-of-process PreToolUse hook intercepting tool calls at the agent runtime boundary (Claude Code / Cursor / Codex / Gemini / Amp / Cline / OpenCode).</td>
|
|
125
|
-
</tr>
|
|
126
|
-
<tr>
|
|
127
|
-
<td><strong>Target domain</strong></td>
|
|
128
|
-
<td>Production apps in regulated domains: trading, healthcare, legal. High-stakes per-action.</td>
|
|
129
|
-
<td>AI coding agents. High-volume, high-frequency tool calls (file write, shell exec, git push, package install).</td>
|
|
130
|
-
</tr>
|
|
131
|
-
<tr>
|
|
132
|
-
<td><strong>Target user</strong></td>
|
|
133
|
-
<td>Engineering teams building production agent apps where each decision is consequential.</td>
|
|
134
|
-
<td>Developers and engineering teams running AI coding assistants who hit the same repeat mistake more than once.</td>
|
|
135
|
-
</tr>
|
|
136
|
-
<tr>
|
|
137
|
-
<td><strong>Core mechanisms</strong></td>
|
|
138
|
-
<td>Policy checks. Audit trails. Circuit breakers.</td>
|
|
139
|
-
<td>Pre-action checks. Thumbs-up/down feedback ledger. Auto-generated prevention rules. Lesson DB with semantic recall. Thompson Sampling for gate-policy bandits.</td>
|
|
140
|
-
</tr>
|
|
141
|
-
<tr>
|
|
142
|
-
<td><strong>Learning loop</strong></td>
|
|
143
|
-
<td>Not in the public framing. Policies are authored.</td>
|
|
144
|
-
<td>Yes. Thumbs-down feedback in one session auto-promotes to a prevention rule that blocks the same action in future sessions across machines.</td>
|
|
145
|
-
</tr>
|
|
146
|
-
<tr>
|
|
147
|
-
<td><strong>Domain skill packs</strong></td>
|
|
148
|
-
<td>Not in the public framing.</td>
|
|
149
|
-
<td>Ships Stripe, Railway, database-migration packs. Each pack is a set of pre-action rules specific to the domain's failure modes.</td>
|
|
150
|
-
</tr>
|
|
151
|
-
<tr>
|
|
152
|
-
<td><strong>License</strong></td>
|
|
153
|
-
<td>Open-source license per <a href="https://reinai.io">reinai.io</a> — verify the exact terms at the source before making a distribution decision. (Our secondary source summarized it as AGPL; we have not independently confirmed.)</td>
|
|
154
|
-
<td>MIT for the CLI and hook layer. Commercial license for Team / Pro features. Open-core, not viral.</td>
|
|
155
|
-
</tr>
|
|
156
|
-
<tr>
|
|
157
|
-
<td><strong>Installation</strong></td>
|
|
158
|
-
<td>Python decorator import.</td>
|
|
159
|
-
<td><code>npx thumbgate init</code> — auto-detects the agent, wires the hooks, zero workflow change.</td>
|
|
160
|
-
</tr>
|
|
161
|
-
<tr>
|
|
162
|
-
<td><strong>Cost when the agent is wrong</strong></td>
|
|
163
|
-
<td>Caught at the decorated function boundary.</td>
|
|
164
|
-
<td>Caught at the PreToolUse hook boundary, before the agent's process even attempts the call.</td>
|
|
165
|
-
</tr>
|
|
166
|
-
</tbody>
|
|
167
|
-
</table>
|
|
168
|
-
|
|
169
|
-
<h2>When to pick which</h2>
|
|
170
|
-
|
|
171
|
-
<div class="pair">
|
|
172
|
-
<div>
|
|
173
|
-
<h3 style="margin-top:0;">Use <strong>Rein</strong> if</h3>
|
|
174
|
-
<ul>
|
|
175
|
-
<li>You're building a production application (not a coding agent) in a regulated domain</li>
|
|
176
|
-
<li>You write your agent in Python and want decorator-level integration</li>
|
|
177
|
-
<li>Your team has policy-authoring resources to write rules upfront</li>
|
|
178
|
-
<li>Rein's licensing terms (verify at reinai.io) are acceptable for your distribution model</li>
|
|
179
|
-
<li>Per-action stakes are high enough that a decorator wrapper is the right tradeoff</li>
|
|
180
|
-
</ul>
|
|
181
|
-
</div>
|
|
182
|
-
<div>
|
|
183
|
-
<h3 style="margin-top:0;">Use <strong>ThumbGate</strong> if</h3>
|
|
184
|
-
<ul>
|
|
185
|
-
<li>Your agent is Claude Code, Cursor, Codex, Gemini, Amp, Cline, or OpenCode</li>
|
|
186
|
-
<li>You want the gate to learn from your corrections instead of being authored by hand</li>
|
|
187
|
-
<li>Your team writes code (vs. authoring policy) and wants thumbs-down feedback as the primary signal</li>
|
|
188
|
-
<li>You need an MIT-licensed core layer that can be embedded in commercial products</li>
|
|
189
|
-
<li>You ship Domain Skill Packs as a feature (Stripe, Railway, database migrations)</li>
|
|
190
|
-
</ul>
|
|
191
|
-
</div>
|
|
192
|
-
</div>
|
|
193
|
-
|
|
194
|
-
<h2>Both, side by side, in the same stack</h2>
|
|
195
|
-
|
|
196
|
-
<p>The two projects don't conflict. Rein governs your production app's agent at the function boundary. ThumbGate governs your engineering team's coding agents at the PreToolUse boundary. The pre-action gate pattern is the shared category; the specialization differs. A team operating both an AI coding workflow and a regulated production agent can use ThumbGate for the first and Rein for the second.</p>
|
|
197
|
-
|
|
198
|
-
<div class="callout callout-green">
|
|
199
|
-
<strong>Honest framing:</strong> Rein and ThumbGate are not direct alternatives. We share a thesis. We do not share a target user.
|
|
200
|
-
</div>
|
|
201
|
-
|
|
202
|
-
<h2>What the category gets right</h2>
|
|
203
|
-
|
|
204
|
-
<p>Both projects are correct that the dominant failure mode of agent frameworks today is "you can't undo an action after the model already took it." Prompt-level rules in <code>CLAUDE.md</code> or <code>.cursorrules</code> are eviction-prone under context pressure. Decorator-level wrappers are tighter. Hook-level intercepts are tighter still. Sandbox isolation is the strongest. Pick the layer that matches your operating model.</p>
|
|
205
|
-
|
|
206
|
-
<h2>Adoption in two minutes (ThumbGate)</h2>
|
|
207
|
-
|
|
208
|
-
<ol>
|
|
209
|
-
<li><strong>Install:</strong> <code>npx thumbgate init</code> — the CLI detects your agent and wires PreToolUse hooks. No workflow change.</li>
|
|
210
|
-
<li><strong>Give feedback when the agent is wrong:</strong> a thumbs-down with context becomes a structured failure record.</li>
|
|
211
|
-
<li><strong>Prevention rules generate themselves:</strong> after repeated failures in the same domain, ThumbGate auto-promotes a prevention rule that fires the next time the agent tries the same pattern.</li>
|
|
212
|
-
<li><strong>Pre-action checks block the mistake:</strong> the PreToolUse hook intercepts the call. The agent gets a structured error and a path back to the spec.</li>
|
|
213
|
-
</ol>
|
|
214
|
-
|
|
215
|
-
<div class="cta-box">
|
|
216
|
-
<h2 style="color:var(--text);font-size:1.3rem;margin:0 0 8px;">Pick the layer that matches your stack</h2>
|
|
217
|
-
<p>Building a Python production agent in a regulated domain? Look at Rein. Running AI coding agents and want them to stop repeating the same mistake? Start with ThumbGate.</p>
|
|
218
|
-
<div class="cta-install">$ npx thumbgate init</div>
|
|
219
|
-
</div>
|
|
220
|
-
|
|
221
|
-
<div class="related">
|
|
222
|
-
<h3>Related comparisons</h3>
|
|
223
|
-
<a href="/compare/heidi">ThumbGate vs Heidi (Meterian supply-chain) →</a>
|
|
224
|
-
<a href="/compare/mem0">ThumbGate vs Mem0 (memory layer) →</a>
|
|
225
|
-
<a href="/compare">All comparisons →</a>
|
|
226
|
-
</div>
|
|
227
|
-
</div>
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
<div class="sticky-cta">
|
|
231
|
-
<span style="color:var(--muted)">Try it now:</span>
|
|
232
|
-
<code>npx thumbgate init</code>
|
|
233
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub →</a>
|
|
234
|
-
</div>
|
|
235
|
-
</body>
|
|
236
|
-
</html>
|
|
@@ -1,256 +0,0 @@
|
|
|
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 SigmaShake — AI Agent Guardrail Comparison (2026)</title>
|
|
7
|
-
<script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
|
|
8
|
-
<meta name="description" content="SigmaShake alternative? Honest comparison of ThumbGate, SigmaShake, APort, and agent-guardrails for gating AI coding agents. ThumbGate learns rules from your thumbs-down; SigmaShake ships a large ruleset hub and FORCE-substitution. Pick by what you need.">
|
|
9
|
-
<meta name="keywords" content="SigmaShake alternative, AI agent guardrail comparison, PreToolUse gating, Claude Code guardrails, Cursor agent safety, ThumbGate vs SigmaShake, APort, agent-guardrails, AI agent firewall">
|
|
10
|
-
<meta property="og:title" content="ThumbGate vs SigmaShake — AI Agent Guardrail Comparison (2026)">
|
|
11
|
-
<meta property="og:description" content="Four ways to gate an AI coding agent before it acts. SigmaShake is the polished ruleset-hub product; ThumbGate learns the rule from your correction. Honest side-by-side.">
|
|
12
|
-
<meta property="og:type" content="article">
|
|
13
|
-
<meta property="og:url" content="https://thumbgate.ai/compare/sigmashake">
|
|
14
|
-
<link rel="canonical" href="https://thumbgate.ai/compare/sigmashake">
|
|
15
|
-
|
|
16
|
-
<script type="application/ld+json">
|
|
17
|
-
{
|
|
18
|
-
"@context": "https://schema.org",
|
|
19
|
-
"@type": "TechArticle",
|
|
20
|
-
"headline": "ThumbGate vs SigmaShake — AI Agent Guardrail Comparison (2026)",
|
|
21
|
-
"description": "Side-by-side comparison of four pre-action gating tools for AI coding agents: ThumbGate, SigmaShake, APort, and roboticforce/agent-guardrails. Honest about where each is ahead.",
|
|
22
|
-
"author": { "@type": "Person", "name": "Igor Ganapolsky", "url": "https://github.com/IgorGanapolsky" },
|
|
23
|
-
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
|
|
24
|
-
"datePublished": "2026-06-09",
|
|
25
|
-
"dateModified": "2026-06-09",
|
|
26
|
-
"mainEntityOfPage": "https://thumbgate.ai/compare/sigmashake"
|
|
27
|
-
}
|
|
28
|
-
</script>
|
|
29
|
-
|
|
30
|
-
<script type="application/ld+json">
|
|
31
|
-
{
|
|
32
|
-
"@context": "https://schema.org",
|
|
33
|
-
"@type": "FAQPage",
|
|
34
|
-
"mainEntity": [
|
|
35
|
-
{
|
|
36
|
-
"@type": "Question",
|
|
37
|
-
"name": "What's the difference between ThumbGate and SigmaShake?",
|
|
38
|
-
"acceptedAnswer": {
|
|
39
|
-
"@type": "Answer",
|
|
40
|
-
"text": "Both gate an AI coding agent's tool calls before they run, across Claude Code, Cursor, Codex and others. The core difference is where the rules come from. SigmaShake gives you a hub of ready-made signed community rulesets and a three-tier enforcement model (DENY / ASK / FORCE-substitute-a-safe-command). ThumbGate generates the rule from your own correction: one thumbs-down on a mistake auto-writes the rule that blocks that exact mistake from then on, synced across your machines and team. SigmaShake is the broader, more mature catalog; ThumbGate is the learning loop for the mistakes no catalog has a rule for yet."
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"@type": "Question",
|
|
45
|
-
"name": "Is ThumbGate a good SigmaShake alternative?",
|
|
46
|
-
"acceptedAnswer": {
|
|
47
|
-
"@type": "Answer",
|
|
48
|
-
"text": "It depends what you're optimizing for. If you want a large library of ready-made signed rules and the ability to auto-substitute a safe command instead of just blocking, SigmaShake is genuinely strong and we won't pretend otherwise. If you keep hitting team-specific or codebase-specific mistakes that no generic ruleset covers, ThumbGate's edge is that it learns those rules from your thumbs-down instead of asking you to author or find them. Many teams could run both."
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"@type": "Question",
|
|
53
|
-
"name": "Can ThumbGate substitute a safe command like SigmaShake's FORCE mode?",
|
|
54
|
-
"acceptedAnswer": {
|
|
55
|
-
"@type": "Answer",
|
|
56
|
-
"text": "Not today. SigmaShake's FORCE tier rewrites a dangerous command into a safe equivalent before it runs — a real capability ThumbGate doesn't yet match. ThumbGate's enforcement blocks the call and returns a structured error plus a path back to the spec; it does not auto-rewrite the command. If safe-command substitution is a hard requirement, SigmaShake is ahead here."
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
]
|
|
60
|
-
}
|
|
61
|
-
</script>
|
|
62
|
-
|
|
63
|
-
<link rel="stylesheet" href="/learn/learn.css">
|
|
64
|
-
<style>
|
|
65
|
-
.matrix { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.9rem; }
|
|
66
|
-
.matrix th, .matrix td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
|
|
67
|
-
.matrix th { background: var(--bg-card); font-weight: 600; }
|
|
68
|
-
.matrix td:first-child { font-weight: 600; }
|
|
69
|
-
.yes { color: var(--green); }
|
|
70
|
-
.no { color: var(--red); }
|
|
71
|
-
.partial { color: #fbbf24; }
|
|
72
|
-
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 1.5rem 0; }
|
|
73
|
-
.pair > div { background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1rem; }
|
|
74
|
-
@media (max-width: 700px) { .pair { grid-template-columns: 1fr; } .matrix { font-size: 0.82rem; } }
|
|
75
|
-
</style>
|
|
76
|
-
</head>
|
|
77
|
-
<body>
|
|
78
|
-
|
|
79
|
-
<nav>
|
|
80
|
-
<a href="/" class="brand"><img src="/assets/brand/thumbgate-mark-inline.svg" alt="ThumbGate" class="logo-mark" width="28" height="28"><span class="logo-text">ThumbGate</span></a>
|
|
81
|
-
<a href="/pricing">Pricing</a>
|
|
82
|
-
<a href="/compare">Compare</a>
|
|
83
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
|
|
84
|
-
</nav>
|
|
85
|
-
|
|
86
|
-
<div class="container">
|
|
87
|
-
<div class="breadcrumb"><a href="/compare">Compare</a> / ThumbGate vs SigmaShake</div>
|
|
88
|
-
<h1>ThumbGate vs SigmaShake (and APort, and agent-guardrails)</h1>
|
|
89
|
-
<p style="color:var(--muted);">For developers and teams choosing a pre-action gate for their AI coding agents</p>
|
|
90
|
-
|
|
91
|
-
<div class="tldr"><strong>TL;DR:</strong> Four tools gate an AI coding agent before it acts. <strong>SigmaShake</strong> is the most polished: a hub of ready-made signed rulesets, three-tier DENY/ASK/FORCE enforcement (including auto-substituting a safe command), a desktop app, and a tamper-evident audit log. <strong>ThumbGate</strong>'s one differentiator is the learning loop — a single thumbs-down auto-writes the rule that blocks that exact mistake forever, synced across machines and team, instead of asking you to find or author one. <strong>APort</strong> is the org-identity layer (agent "passports," central policy). <strong>agent-guardrails</strong> is a free MIT starting point. We're honest below about where SigmaShake is ahead.</div>
|
|
92
|
-
|
|
93
|
-
<h2>The shared category</h2>
|
|
94
|
-
<p>All four start from the same fact: prompt-level rules in <code>CLAUDE.md</code> or <code>.cursorrules</code> are suggestions the model can ignore under context pressure. To actually stop a force-push to main or a <code>DROP TABLE</code>, you need a gate that fires <em>before</em> the tool call executes — not a reviewer after the PR, not a git revert after the damage. ThumbGate, SigmaShake, and agent-guardrails all hook the PreToolUse boundary. APort sits one layer up, as an identity/authorization layer for organizations.</p>
|
|
95
|
-
|
|
96
|
-
<p>This page is not a hit piece. SigmaShake in particular is well-built software with a real lead on catalog breadth and enforcement modes. We'll tell you where it wins and where ThumbGate's learning loop is the better fit.</p>
|
|
97
|
-
|
|
98
|
-
<h2>Feature matrix</h2>
|
|
99
|
-
<table class="matrix">
|
|
100
|
-
<thead>
|
|
101
|
-
<tr>
|
|
102
|
-
<th style="width:22%;">Capability</th>
|
|
103
|
-
<th style="width:21%;">ThumbGate</th>
|
|
104
|
-
<th style="width:21%;">SigmaShake</th>
|
|
105
|
-
<th style="width:18%;">APort</th>
|
|
106
|
-
<th style="width:18%;">agent-guardrails</th>
|
|
107
|
-
</tr>
|
|
108
|
-
</thead>
|
|
109
|
-
<tbody>
|
|
110
|
-
<tr>
|
|
111
|
-
<td>Pre-action gating (blocks before execution)</td>
|
|
112
|
-
<td class="yes">Yes — PreToolUse hooks</td>
|
|
113
|
-
<td class="yes">Yes — PreToolUse</td>
|
|
114
|
-
<td class="partial">Authz layer, not a tool-call gate</td>
|
|
115
|
-
<td class="yes">Yes — PreToolUse hooks</td>
|
|
116
|
-
</tr>
|
|
117
|
-
<tr>
|
|
118
|
-
<td>Learns rules from your corrections</td>
|
|
119
|
-
<td class="yes">Yes — one thumbs-down auto-writes the rule</td>
|
|
120
|
-
<td class="no">No — rules installed or authored</td>
|
|
121
|
-
<td class="no">No — policy authored</td>
|
|
122
|
-
<td class="no">No — hand-written deny rules</td>
|
|
123
|
-
</tr>
|
|
124
|
-
<tr>
|
|
125
|
-
<td>Pre-built ruleset library</td>
|
|
126
|
-
<td class="partial">Domain skill packs (Stripe, Railway, DB migrations)</td>
|
|
127
|
-
<td class="yes">Large signed community ruleset hub</td>
|
|
128
|
-
<td class="no">N/A</td>
|
|
129
|
-
<td class="partial">Built-in deny rules (terraform/db/k8s/cloud/git)</td>
|
|
130
|
-
</tr>
|
|
131
|
-
<tr>
|
|
132
|
-
<td>Enforcement modes</td>
|
|
133
|
-
<td class="partial">Block + structured error (no auto-substitute)</td>
|
|
134
|
-
<td class="yes">DENY / ASK / FORCE (safe-command substitute)</td>
|
|
135
|
-
<td class="partial">Allow/deny by scoped permission</td>
|
|
136
|
-
<td class="partial">Deny / ask</td>
|
|
137
|
-
</tr>
|
|
138
|
-
<tr>
|
|
139
|
-
<td>Multi-agent support</td>
|
|
140
|
-
<td class="yes">Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode</td>
|
|
141
|
-
<td class="yes">Claude Code, Cursor, Codex, Copilot, Gemini</td>
|
|
142
|
-
<td class="yes">Claude, LangChain, CrewAI, Cursor</td>
|
|
143
|
-
<td class="partial">Claude Code (settings.json hooks)</td>
|
|
144
|
-
</tr>
|
|
145
|
-
<tr>
|
|
146
|
-
<td>Team / cross-machine sync of learned rules</td>
|
|
147
|
-
<td class="yes">Yes — hosted sync (Pro)</td>
|
|
148
|
-
<td class="partial">Local-first; optional cloud</td>
|
|
149
|
-
<td class="yes">Yes — central org policy</td>
|
|
150
|
-
<td class="no">No</td>
|
|
151
|
-
</tr>
|
|
152
|
-
<tr>
|
|
153
|
-
<td>Org identity / agent permissions</td>
|
|
154
|
-
<td class="no">Not the focus</td>
|
|
155
|
-
<td class="partial">Local rulesets, not identity</td>
|
|
156
|
-
<td class="yes">Yes — agent "passport" + scoped perms</td>
|
|
157
|
-
<td class="no">No</td>
|
|
158
|
-
</tr>
|
|
159
|
-
<tr>
|
|
160
|
-
<td>License / source</td>
|
|
161
|
-
<td class="partial">MIT core + hosted commercial layer</td>
|
|
162
|
-
<td class="no">Commercial, closed-source</td>
|
|
163
|
-
<td class="no">Commercial</td>
|
|
164
|
-
<td class="yes">Free, MIT</td>
|
|
165
|
-
</tr>
|
|
166
|
-
<tr>
|
|
167
|
-
<td>Pricing</td>
|
|
168
|
-
<td>Free tier; Pro $19/mo or $149/yr</td>
|
|
169
|
-
<td>Commercial paid tier (see their site)</td>
|
|
170
|
-
<td>No public pricing (design-partner)</td>
|
|
171
|
-
<td>Free</td>
|
|
172
|
-
</tr>
|
|
173
|
-
<tr>
|
|
174
|
-
<td>Maturity</td>
|
|
175
|
-
<td class="partial">Newer; learning loop is the bet</td>
|
|
176
|
-
<td class="yes">Polished, broad catalog</td>
|
|
177
|
-
<td class="partial">Early / design-partner stage</td>
|
|
178
|
-
<td class="partial">Minimal adoption</td>
|
|
179
|
-
</tr>
|
|
180
|
-
</tbody>
|
|
181
|
-
</table>
|
|
182
|
-
|
|
183
|
-
<h2>Where SigmaShake is genuinely ahead</h2>
|
|
184
|
-
<p>Saying this plainly builds more trust than pretending otherwise:</p>
|
|
185
|
-
<ul>
|
|
186
|
-
<li><strong>FORCE-substitution.</strong> SigmaShake can rewrite a dangerous command into a safe equivalent before it runs. ThumbGate blocks and explains; it doesn't auto-rewrite. If you want the gate to fix the command rather than stop it, SigmaShake wins.</li>
|
|
187
|
-
<li><strong>A large signed ruleset hub out of the box.</strong> For common, well-known footguns, SigmaShake means you're protected on install with zero authoring. ThumbGate ships a handful of domain skill packs and expects to <em>learn</em> the rest from your corrections — great for novel mistakes, slower for day-one coverage of the obvious ones.</li>
|
|
188
|
-
<li><strong>Maturity and polish.</strong> Desktop app, tamper-evident audit log, low-latency daemon, broad agent coverage including Copilot. SigmaShake is further along as a product.</li>
|
|
189
|
-
</ul>
|
|
190
|
-
|
|
191
|
-
<h2>Where ThumbGate is the better fit</h2>
|
|
192
|
-
<ul>
|
|
193
|
-
<li><strong>The mistakes no catalog has a rule for.</strong> Every team has codebase-specific footguns ("never edit the generated client," "this repo deploys from <code>release</code> not <code>main</code>"). No community hub ships those. ThumbGate writes the rule the first time you thumbs-down the mistake.</li>
|
|
194
|
-
<li><strong>Zero rule-authoring overhead.</strong> SigmaShake and agent-guardrails both ask you to install or write rules. ThumbGate's primary input is a thumbs-down — the correction <em>is</em> the rule authoring.</li>
|
|
195
|
-
<li><strong>MIT core.</strong> The CLI and hook layer are MIT; the hosted sync is the paid part. SigmaShake and APort are closed-source.</li>
|
|
196
|
-
<li><strong>Learned rules sync across the team.</strong> One engineer's thumbs-down becomes everyone's prevention rule.</li>
|
|
197
|
-
</ul>
|
|
198
|
-
|
|
199
|
-
<h2>And APort and agent-guardrails?</h2>
|
|
200
|
-
<p><strong>APort</strong> isn't really a head-to-head. It's an organizational authorization layer — agent "passports," scoped permissions, central policy and audit across Claude, LangChain, CrewAI, and Cursor. It positions as an <em>additional</em> authz layer for orgs and is at design-partner stage. If your problem is "which agents in my org are allowed to do what," APort solves a different problem than a tool-call gate. You could run APort for identity and ThumbGate for behavior.</p>
|
|
201
|
-
<p><strong>roboticforce/agent-guardrails</strong> is a free, MIT set of hand-written deny rules plus PreToolUse hooks for terraform/db/k8s/cloud/git. A fine zero-cost starting point. No dashboard, audit, team management, or learning — if you outgrow a static deny list, that's the moment to look at ThumbGate or SigmaShake.</p>
|
|
202
|
-
|
|
203
|
-
<h2>When to pick which</h2>
|
|
204
|
-
<div class="pair">
|
|
205
|
-
<div>
|
|
206
|
-
<h3 style="margin-top:0;">Pick <strong>SigmaShake</strong> if</h3>
|
|
207
|
-
<ul>
|
|
208
|
-
<li>You want day-one coverage from a large library of ready-made rules</li>
|
|
209
|
-
<li>Safe-command substitution (FORCE) is a requirement, not a nice-to-have</li>
|
|
210
|
-
<li>You want a mature desktop app and a tamper-evident audit log now</li>
|
|
211
|
-
<li>Closed-source commercial software is acceptable</li>
|
|
212
|
-
</ul>
|
|
213
|
-
</div>
|
|
214
|
-
<div>
|
|
215
|
-
<h3 style="margin-top:0;">Pick <strong>ThumbGate</strong> if</h3>
|
|
216
|
-
<ul>
|
|
217
|
-
<li>Your pain is repeat, team-specific mistakes no generic ruleset covers</li>
|
|
218
|
-
<li>You'd rather thumbs-down a mistake than hunt for or author a rule</li>
|
|
219
|
-
<li>You want learned rules to sync across machines and teammates</li>
|
|
220
|
-
<li>You want an MIT-licensed core you can read and embed</li>
|
|
221
|
-
</ul>
|
|
222
|
-
</div>
|
|
223
|
-
</div>
|
|
224
|
-
|
|
225
|
-
<div class="callout callout-green">
|
|
226
|
-
<strong>Honest framing:</strong> SigmaShake is the broader, more polished catalog-and-enforcement product today. ThumbGate's bet is narrower and sharper — the gate that learns the rule from your correction. They overlap, but optimize for different things, and running both is reasonable.
|
|
227
|
-
</div>
|
|
228
|
-
|
|
229
|
-
<h2>Adoption in two minutes (ThumbGate)</h2>
|
|
230
|
-
<ol>
|
|
231
|
-
<li><strong>Install:</strong> <code>npx thumbgate init</code> — detects your agent, wires PreToolUse hooks, no workflow change.</li>
|
|
232
|
-
<li><strong>Thumbs-down when the agent is wrong:</strong> a correction with context becomes a structured failure record.</li>
|
|
233
|
-
<li><strong>The rule writes itself:</strong> ThumbGate auto-promotes a prevention rule from the correction.</li>
|
|
234
|
-
<li><strong>Next time, it's blocked:</strong> the PreToolUse hook intercepts the call before it runs and points the agent back to the spec.</li>
|
|
235
|
-
</ol>
|
|
236
|
-
|
|
237
|
-
<div class="cta-box">
|
|
238
|
-
<h2 style="color:var(--text);font-size:1.3rem;margin:0 0 8px;">Tired of correcting the same mistake twice?</h2>
|
|
239
|
-
<p>SigmaShake gives you a catalog. ThumbGate writes the rule from your thumbs-down. Free tier, MIT core, two-minute install.</p>
|
|
240
|
-
<div class="cta-install">$ npx thumbgate init</div>
|
|
241
|
-
</div>
|
|
242
|
-
|
|
243
|
-
<div class="related">
|
|
244
|
-
<h3>Related comparisons</h3>
|
|
245
|
-
<a href="/compare/claude-code-hooks">ThumbGate vs claude-code-hooks →</a>
|
|
246
|
-
<a href="/compare">All comparisons →</a>
|
|
247
|
-
</div>
|
|
248
|
-
</div>
|
|
249
|
-
|
|
250
|
-
<div class="sticky-cta">
|
|
251
|
-
<span style="color:var(--muted)">Try it now:</span>
|
|
252
|
-
<code>npx thumbgate init</code>
|
|
253
|
-
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub →</a>
|
|
254
|
-
</div>
|
|
255
|
-
</body>
|
|
256
|
-
</html>
|