openagentlock/OpenAgentLock
GitHub: openagentlock/OpenAgentLock
一个面向 AI 编程代理的本地防火墙,通过确定性 YAML 策略拦截高危工具调用并将所有决策锚定到防篡改的 Merkle 审计账本中。
Stars: 4 | Forks: 0

**一个本地托管、开源的 AI 编程代理防火墙。**
[](https://github.com/openagentlock/OpenAgentLock/actions/workflows/ci.yml)
[](https://github.com/openagentlock/OpenAgentLock/actions/workflows/docker-publish.yml)
[](https://www.npmjs.com/package/@openagentlock/cli)
[](https://github.com/openagentlock/OpenAgentLock/pkgs/container/agentlockd)
[](LICENSE)
[](https://openagentlock.github.io/OpenAgentLock/)
[](https://github.com/openagentlock/OpenAgentLock/stargazers)
[文档](https://openagentlock.github.io/OpenAgentLock/) · [快速开始](https://openagentlock.github.io/OpenAgentLock/guide/getting-started/) · [规则库](https://openagentlock.github.io/rules/) · [状态](https://openagentlock.github.io/OpenAgentLock/status/) · [架构](https://openagentlock.github.io/OpenAgentLock/architecture/overview/)
OpenAgentLock 可以检测本地 AI 编程代理运行环境(Claude Code、Codex CLI、Cursor、OpenCode、Cline、Gemini CLI、Continue.dev、VS Code Copilot),通过确定性的 YAML 策略拦截高风险的工具调用,并将每个决策锚定在防篡改的 Merkle 账本中。只需安装一次,即可照常在您的运行环境中工作——您的工作流不会发生改变。
## 快速开始
```
# 1. 拉取并启动 daemon
docker pull ghcr.io/openagentlock/agentlockd:latest
docker run -d --name agentlock \
-p 127.0.0.1:7878:7878 \
-p 127.0.0.1:7879:7879 \
-v agentlock-state:/var/lib/agentlock \
ghcr.io/openagentlock/agentlockd:latest
# 2. 安装 CLI
npm i -g @openagentlock/cli
# 或:bun add -g @openagentlock/cli
# 或:brew install openagentlock/tap/agentlock
# 3. 注册 signer(TOTP — 推荐用于生产环境)
agentlock signer enroll --tier totp --passphrase 'your-passphrase-here'
# 扫描 otpauth:// 二维码,使用 Google Authenticator / 1Password / Authy。
# 4. 使用经 TOTP 验证的 session 连接您的 harness
agentlock detect
agentlock install --tier totp --code 123456 --passphrase 'your-passphrase-here'
```
要在没有签名器的情况下进行快速评估(仅供开发使用):使用 `-e AGENTLOCK_ALLOW_UNATTESTED=1` 启动守护进程,然后运行 `agentlock install`(默认为未认证模式)。
通过
打开本地 Web 仪表盘。
完整的操作演练请见
。
## 社区规则库
需要比五个基线规则更多的限制?请在
浏览社区目录——涵盖密钥读取、强制推送到共享分支、网络数据外泄、不受信任的评估。只需一条命令即可安装:
```
agentlock rules sync
agentlock rules search exfil
agentlock rules install rogue.secret-read
```
或者运行您自己的私有规则库——任何具有相同目录结构的 Git 仓库均可使用。来源:[openagentlock/rules](https://github.com/openagentlock/rules)。
对于需要根据自然语言意图**编写**新规则的代理,请参阅 [openagentlock/skills](https://github.com/openagentlock/skills)——这些是驱动 `agentlock rules` CLI 的 Claude Code / Cursor / Codex 技能。
## 当前交付内容
| 范围 | 状态 |
|---|---|
| `agentlock detect` |  |
| `agentlock install` (Claude Code、Codex CLI、Cursor) |  |
| `agentlock install --tier {unattested,software,totp}` |  |
| `agentlock install` (OpenCode、Cline、Gemini CLI、Continue、VS Code Copilot) |  |
| 监控模式下的五个基线拦截规则 |  |
| 防篡改的 Merkle 账本 |  |
| 本地 Web 仪表盘 |  |
| 软件 + TOTP 签名器(带有 `signer enroll` 和会话生成) |  |
| OS 密钥链签名器,硬件密钥 (YubiKey PIV / FIDO2) |  |
| OIDC SSO + RBAC + LDAP |  |
| 签名的 PDF 审计报告 |  |
完整的已发布/尚未推出状态矩阵位于
。
## 工作原理
```
flowchart LR
subgraph host["Your host"]
H["Agent harness
Claude Code · Codex CLI · Cursor"]
CLI["agentlock CLI
owns long-lived signing key"]
end
subgraph docker["Docker (127.0.0.1)"]
CP[":7878 control plane
policy · install · ledger appender"]
DB[":7879 web dashboard"]
L[("Merkle ledger
Rust crate via FFI")]
end
H -->|"pre-tool hook"| CP
CP -->|"verdict
allow / deny"| H
CLI -->|"signed session"| CP
CP --> L
CP --- DB
```
三种语言,一个代码库:
- **`cli/`** — 基于运行在宿主机上的 Bun 环境的 TypeScript。管理长期有效的签名密钥。
- **`control-plane/`** — Docker 中运行的 Go HTTP 服务。负责评估策略、驱动安装的计划/应用,以及追加到账本。
- **`ledger/`** — Rust crate。提供 Merkle 日志及验证功能,通过 FFI 暴露给 Go,从而确保验证逻辑只存在于一个地方。
关于为何这样拆分,请参阅 [架构概览](https://openagentlock.github.io/OpenAgentLock/architecture/overview/)。
## 五个拦截规则
每次安装都会附带处于监控模式下的五个默认规则,配置文件位于 [`policies/default.yaml`](policies/default.yaml):
| 规则 | 拦截内容 |
|---|---|
| `supply-chain.pkg-install` | `pip install`、`npm install`、`brew install`、`cargo install` |
| `supply-chain.untrusted-mcp` | 带有未固定公钥的 MCP 服务器 |
| `rogue.secret-read` | 读取 `.env`、`~/.ssh`、`~/.aws/credentials`,以及任何出现类似密钥路径的地方 |
| `rogue.net-egress` | `curl`、`wget`、MCP HTTP 工具 |
| `rogue.destructive-bash` | `rm -rf`、`git push --force`、`DROP TABLE`、`kubectl delete` |
关于规则结构与编写规则,请参阅[策略与五个拦截规则](https://openagentlock.github.io/OpenAgentLock/guide/policies/)。
## 仓库结构
```
cli/ TypeScript + Bun + OpenTUI — @openagentlock/cli
control-plane/ Go HTTP service in Docker — ghcr.io/openagentlock/agentlockd
api/openapi.yaml source-of-truth API contract
Dockerfile, docker-compose.yml
dashboard-ui/ Vite SPA embedded into the Go binary
ledger/ Rust crate (lib + cdylib + staticlib) — openagentlock-ledger
policies/default.yaml baseline policy shipped with every install
docs/ MkDocs Material site (deployed to openagentlock.github.io/OpenAgentLock)
assets/ logo, favicon, social card
Formula/agentlock.rb Homebrew tap formula
docker-compose.yml one-command control-plane bring-up
scripts/install.sh one-shot installer
.github/workflows/ ci · docker-publish · npm-publish · pages
```
## 状态
Pre-1.0 阶段。
我们尽量避免破坏现有的可用功能。标记为“已发布”的功能均附带测试;标记为“尚未推出”的功能目前仅作为脚手架或存根存在,并在面向用户的路径中被显式禁用。
## 许可证
[功能源代码许可证 1.1,Apache 2.0 未来许可证](LICENSE)(`FSL-1.1-Apache-2.0`)。
目前允许任何非竞争性使用;在每次发布两年后,将自动转换为 Apache 2.0 许可证。
标签:AI安全, AI安全网关, AI编程助手, Chat Copilot, Claude, Codex, Copilot, Cursor, CVE检测, Docker, EVTX分析, LLM代理, Merkle树, NPM包, OSV-Scalibr, VS Code, YAML策略, 可视化界面, 安全工程, 安全网关, 安全防御评估, 审计日志, 工具调用拦截, 开源, 搜索语句(dork), 日志审计, 本地应用安全, 本地部署, 策略引擎, 终端安全, 网络安全挑战, 请求拦截, 防火墙, 防篡改日志