技能潮 SkillTide 提交收录
官方说明开源项目7 天前
GautamTalksDev/counterseal

GautamTalksDev/counterseal

Every irreversible action gets a second seal. Your AI agent never holds a real API key; deletes, refunds and force pushes wait for your passkey. CLI, MCP, public receipts.
在 GitHub 查看 ↗直链 · 无中转页
★ 数取值
0 ★ · GautamTalksDev/counterseal · 取自该仓库的 GitHub 页面 · (2026-10-16 20:00:20 核对)
来源明细
从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
收录与活跃
收录于 2026-10-10 · 最近见到 2026-10-10 · 共见到 3 次 · 被 1 个来源列出
评分构成
综合分 103 · 1 个来源 · repo
安装
npx counterseal
常见问题(答案都来自我们的记录)
怎么安装?
该仓库给出的安装命令是 npx counterseal。我们的记录里它是仓库自己提供的;不保证在你的客户端上直接可用。
它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库 GautamTalksDev/counterseal;我们收录于 2026-10-10;最近见到 2026-10-10。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。
第三方质量标记

COUNTERSEAL

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

Every irreversible action gets a second seal.
**Your AI agent never holds a real API key, and anything it cannot take back waits for your passkey.**
Website · Quickstart · How it works · Limits · Security · Self-hosting · Full guide
Illustrated flow: the repository name is an example. The 428 response, the rule id and the approve link are what the server returns.
Quickstart
Three commands (the CLI is the counterseal package, Node 20 or later, zero dependencies):
Prefer no terminal? Create an account at /app (a name and a passkey) and press
**Try a held call**: a pretend call you approve with your passkey (nothing real is called and nothing is made public).
Then connect your agent.
---
Why: no approval, no key
In April 2026, an AI coding agent hunting for a staging credential found a Railway API token in an unrelated file and
called volumeDelete. PocketOS had its production database and the backups on the same volume deleted in nine seconds.
The token had been made to manage custom domains, and the prompt-level guardrails were on.
(AI Incident Database)
A prompt is not a permission system. Counterseal moves the decision out of the model:
- The agent holds a scoped proxy token (lsh_...), never the real key. The real key stays in an encrypted vault and is
added to the request on the server.
- A call that cannot be undone (a delete, a force push, a refund, a DROP TABLE) is held until a human approves that
exact request with a passkey. No approval, no key.
- The decision is written down. With receipts on, each decision on a write is also an entry in a public log that anyone
can check.
The agent's signed request is the seal. Your passkey approval is the counterseal. The public log keeps the impression.
Connect your agent
After the three commands in the quickstart, give the token to your agent as an MCP server (the leash_request tool calls the APIs through Counterseal):
Or point any SDK at https://counterseal.gautamkhosla.com/p/github with the token as its bearer. When the agent tries
something irreversible it gets 428 held_for_approval and an approve link, and your phone or browser asks for a passkey.
All commands: login, logout, add, creds, tokens, token, revoke, freeze, holds, watch, agent-key,
agent-keys, mcp, mcp wrap|pin|unpin|status, guard install|uninstall|status|check|map. Run npx counterseal help.
Features
| | What it does |
|---|---|
| **Approve** | Irreversible calls are held until a passkey approves them, on your phone or laptop. An approval covers that exact request, once, within 10 minutes. |
| **Record** | With receipts on, every decision the broker makes on a write (allowed, held, approved, executed, denied) becomes an entry in a public, append-only Merkle log (RFC 6962, signed checkpoints). Allowed reads are not recorded. A receipt holds the method, the provider host, the decision and the rule, never a path, body, key, token, name, email or IP. Verify in the browser or offline with sdk/receipts.mjs. |
| **Prove who** | Bind a token to an agent key (Ed25519). It then only works on requests that key signed (RFC 9421), so a stolen token alone does nothing. |
| **Guard** | counterseal guard is a hook for a coding agent's shell commands. A command on the shell map (29 rules: terraform destroy, git push --force, DROP TABLE through psql, rm -rf outside the project, and more) waits for your passkey. A seatbelt, not a sandbox. |
| **MCP gateway** | counterseal mcp wrap sits in front of any local MCP server: destructive tool calls wait for your passkey, and the server's tool definitions are pinned so a changed tool is hidden until you review it. |
来源
github · https://github.com/GautamTalksDev/counterseal
按领域浏览
开源项目
收录于
7 天前

更多开源项目

查看开源项目全部 731 条 →

所属领域与标签

每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。

浏览全部领域 →

← 返回索引