
DeadBolt by NextEleven
io.github.seanebones-lang由 GitHub 账号 seanebones-lang 发布v2.0.1更新于 Nov 4, 2026
Local execution gate: fixed deadlines, operator-only controls, read-only setup and readable denials.
概览
DeadBolt 是一个本地执行闸门,让助手的工具调用只有在策略、截止时间和操作员批准允许时才真正执行。
- 可以做什么
- 拦截受保护操作:把可信的 stdio MCP 服务器包装成代理,每次工具调用都需重新准入后才执行。
- 施加策略与限制:工具与目标策略、上报支出上限、暂停、剪辑与操作员终止,并带固定运行截止时间和子级继承的祖先限制。
- 记录证据:SQLite 证据、JSONL 镜像以及按代理导出的事件记录。
- 检查配置:空白配置下只暴露两个只读设置工具,且没有任何保护生效。
- 从代码集成:可嵌入 Rust、从 Python 等语言调用本地 sidecar,或使用 OpenAI Agents SDK 与 FastMCP 适配器。
- 适用场景
- 当代理执行的动作需要在生效前接受检查,并且你希望有拒绝、截止时间和操作员终止开关,而不是完全信任代理时使用。适合把可信 stdio MCP 服务器或自有执行器接入本地策略闸门的团队。
- 运行要求
- 以本地进程方式在用户机器上运行(仅桌面端,stdio)。无需模型账号、API 密钥、云服务或数据库服务器。捆绑包需要固定截止时间、明确的续期模式和经审阅的离线例外;Python 评估路径需要 Python 3.9+,源码构建需要 Rust 1.85+ 及原生 C 编译器/链接器。版本 2 的 Unix 与 TCP sidecar 需要经过认证的操作员设置。
安装
在 SourceWeft 中
- 打开 控制台中的 DeadBolt by NextEleven,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
DeadBolt
Contributing with an agent? Read AGENTS.md for setup, local checks and project boundaries.
A local execution gate for software agents. Put DeadBolt in the code that runs an action, then let policy and operator controls decide whether that action runs. Embed it in Rust, call its local sidecar from another language, or wrap a trusted stdio MCP server. Free under Apache-2.0.
Install · Try it · Integrate · Migration · Project site
Recent evaluation evidence: ProtocolProbe's read-only setup inspection and NextEleven's separate Swarm native integration lab, with their tested scopes and remaining limits.
[CI] [Release] [License: Apache-2.0]
Version 2.0.1
This source targets engine 2.0.1 and Python client 2.0.1. The patch fixes MCP spend sequencing on denied calls and requires independent admission for every MCP tool invocation; the version 2 integration boundaries remain unchanged. Versioned releases identify available downloads, exact source and checksums; installation tracks package-manager, bundle and editor availability separately. A source merge does not publish a package or update a directory listing.
Upgrading an existing install? Engine, Python client, editor plugins and running sidecars are separate copies. Installing one does not upgrade the others. Use the distribution status and upgrade checklist to identify your route, verify its actual version and select the matching download.
Version 2 requires authenticated operator setup for Unix and TCP sidecars, creates private state, defaults fresh roots to supervisor renewal, and enforces ancestor policy and fixed run deadlines. Existing stored renewal modes remain unchanged. Read major-version migration and private state before replacing an older installation.
The artifact-pinned RC3 retest passed conflicting-destination denial, damaged-store Cursor Reload refusal, and actual model calls after a fixed deadline on macOS arm64. The underlying Auto model was unknown. Separate Linux headless checks cover their recorded scope. These are execution receipts, not certification; stable artifact and installed-consumer checks remain distinct from the RC3 results.
Try it before connecting an agent
No model account, API key, Harness, cloud service or database server is needed. Choose a checksum-verified native archive in the installation guide. From its extracted directory on macOS/Linux:
On Windows, use .\deadbolt.exe --version, .\deadbolt.exe drill and
python examples/evaluate.py --binary .\deadbolt.exe.
Expected: your selected version, deadbolt drill ok, and JSON with "passed": true.
The evaluation starts a private sidecar, writes harmless temporary files, checks
that policy, approval, kill and outage block effects, and cleans up afterward.
Python 3.9+ is the additional runtime needed. Understand the report.
For a reviewed source checkout, Rust 1.85+ and a native C compiler/linker:
The matching Python client 2.0.1 is published. The matching Rust package 2.0.1 is also published. Install the CLI from Cargo, or the Python client in your application environment:
For embedded Rust, use deadbolt = { package = "n11-deadbolt", version = "=2.0.1" }
and commit your application's own lockfile. The Python wheel contains the client,
not the engine. Node remains a bundled source module. Install and verify.
Pick your integration
Choose the exact bundle and matching configuration before installation. Blank configuration exposes two read-only setup tools and provides no active protection. Configured tools come from your trusted downstream server. Version 2 bundle runs require a fixed deadline, deliberate renewal mode and reviewed offline exceptions. The bundle uses broad one-shot tool approvals; it does not provision exact-action grants. Configuration · Editor guide.
Download the current bundle from the explicit 2.0.1 release. The official MCP Registry still advertised 2.0.0 at the November 3 audit; verify its actual version and checksum rather than assuming discovery means the newest release. Discovery is not hosted operator access, marketplace acceptance of another submission, or an endorsement.
Put the gate at the effect
Your trusted executor creates the run and configures policy first. With the matching Python client installed and its sidecar configured:
A fresh admission happens before the callback; a denial leaves the body uncalled.
Complete setup covers provisioning, policy, credentials,
transport and errors. Wrap every protected route. Never cache an allow or split
one-shot admission from execution. ensure confirms record presence, not liveness.
Controls and limits
- Tool and destination policies, reported-spend caps, pause, clips and operator kill.
- Default 60-second idle TTL. A separate supervisor maintains fresh runs; explicit activity mode is available. Neither mode can move a fixed deadline or revive expired/killed state. Liveness · Deadlines.
- Descendants obey ancestor restrictions. A child policy cannot widen its parent.
- Broad one-shot tool approvals and exact-action grants for trusted integrations using the content-bound API.
- Scoped admission credentials separate dispatch from
operator controls.
/spendremains operator-only. - SQLite evidence, JSONL mirrors and per-agent incident exports.
- Store or transport failure denies protected dispatch; malformed or unsuccessful responses never authorize the body.
Ordinary trusted-executor admission treats unset policy lists as open; the MCP proxy requires explicit tool policy. Configure runs and children before dispatch. MCP discovery can advertise tools that the policy will deny. Destination parsing covers recognized fields, not arbitrary arguments or network traffic. Destination policy.
Know the boundary
DeadBolt protects connected execution routes. It does not sandbox arbitrary code, stop a provider, or make external effects transactional with admission. Kill blocks subsequent admissions; stopping in-flight work requires an executor cancellation pattern. The MCP child remains trusted and has OS access; startup and non-tool methods are outside the tool-call gate.
Keep state and operator authority outside untrusted agent processes. A process able to write the database or invoke the operator CLI has operator authority; socket credentials cannot contain it. Use separate OS/service ownership and OS egress controls where your application requires those boundaries. Evidence hashes identify content; operator-writable records are not tamper-proof certification. Trust · HTTP authentication · Pilot checklist.
Developer documentation
Source checks: cargo test --locked, cargo clippy --all-targets --locked -- -D warnings,
and python3 tests/client_contract.py after cargo build --locked --bin deadbolt
(Python and Node required). CI also checks Rust 1.85, installed Python/SDK behavior
and native packages. Passing these checks does not establish acceptance of your application.
Report ordinary bugs or use private security reporting. Copyright NextEleven LLC 2026. License · Notice. Harness is one consumer, not a prerequisite.
For trusted executors that need to stop already running local commands, the owned-process cancellation reference adds a POSIX supervisor pattern with disposable acceptance. It does not change the gate into a sandbox or add enforcement to older packages.
来源:README.md,提交 2247fbe
工具
0版本历史
5- v2.0.1最新Nov 4, 2026
- v2.0.0Oct 13, 2026
- v2.0.0-rc.2Oct 12, 2026
- v2.0.0-rc.1Oct 12, 2026
- v1.1.0Oct 12, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
