tankpkg/tank
GitHub: tankpkg/tank
专为 AI Agent 技能设计的安全优先包管理器,通过版本控制、权限管理和安全扫描解决技能供应链安全问题。
Stars: 3 | Forks: 1
Tank
安全优先的 AI agent 技能包管理器。
“我会功夫。” — 但经过了验证、锁定和扫描。
## 问题所在
AI 编程 agent(Claude Code、Codex、Cursor)可以通过 **skills(技能)** 进行扩展 —— 这些可复用的软件包教会 agent 如何执行任务。该生态系统发展迅速:仅在一个注册表上,4 天内就有超过 110,000 次安装。
但当今的技能注册表 **没有版本控制、没有 lockfile(锁定文件)、没有权限管理,也没有安全扫描**。2026 年 2 月,ClawHavoc 事件揭露了 341 个恶意技能(占某主要市场 12%)正在分发窃取凭据的恶意软件。
Agent 技能比 npm 包更危险,因为它们以 **agent 的完全权限** 执行 —— 读取文件、进行 API 调用、运行 shell 命令。其攻击面从根本上要大得多。
## Tank 的功能
Tank 是 **agent 技能领域的 npm**,将安全性建立在基础之中:
| 功能 | npm (2012) | 当前注册表 | Tank |
|---------|-----------|-------------------|------|
| 版本控制 | 社会契约 | Git tags / 无 | **Semver(语义化版本)与升级检测** |
| Lockfile | `package-lock.json` | 无 | **带 SHA-512 的 `skills.lock`** |
| 权限 | 无 | 无 | **安装时声明并强制执行** |
| 静态分析 | 无内置 | 基础 / 无 | **6 阶段安全 pipeline** |
| 审计评分 | `npm audit`(仅 deps) | 无 | **透明的 0-10 评分** |
| 代码签名 | npm provenance (2023) | 无 | 计划中 (Sigstore) |
| 沙箱 | 无 | 无 | 计划中(第 3 阶段) |
## 快速预览
### 所有 CLI 命令
```
# 认证
tank login # Authenticate via GitHub OAuth
tank whoami # Show current user info
tank logout # Clear credentials
# Project 设置
tank init # Create skills.json interactively
# 发布
tank publish # Pack and publish a skill
tank publish --dry-run # Validate without uploading
# 安装与管理
tank install @org/skill # Install a specific skill
tank install # Install all from lockfile (like npm ci)
tank update @org/skill # Update within semver range
tank update # Update all skills
tank remove @org/skill # Remove a skill
# 验证与安全
tank verify # Verify lockfile integrity
tank permissions # Display resolved permission summary
tank audit # Show security analysis results
tank audit @org/skill # Audit a specific skill
# Discovery
tank search "query" # Search the registry
tank info @org/skill # Show skill metadata
```
**`skills.json`** — 声明你的 agent 被允许执行的操作:
```
{
"skills": {
"@vercel/next-skill": "^2.1.0",
"@community/seo-audit": "3.0.0"
},
"permissions": {
"network": { "outbound": ["*.anthropic.com"] },
"filesystem": { "read": ["./src/**"], "write": ["./output/**"] },
"subprocess": false
}
}
```
如果任何技能超出权限预算,安装将失败。这一单一功能本可以阻止 ClawHavoc。
## 开发
### 前置条件
- Node.js 24+
- pnpm 10+
- Python 3.14+(用于安全分析功能)
### 设置
```
git clone https://github.com/tankpkg/tank.git
cd tank
pnpm install
cp .env.example .env.local # fill in credentials
pnpm --filter=web admin:bootstrap # promotes FIRST_ADMIN_EMAIL to admin
```
### 命令
```
pnpm dev # Start web app in dev mode
pnpm build # Build all packages
pnpm test # Run all tests (445 TypeScript + 16 Python)
pnpm --filter=web admin:bootstrap # Promote bootstrap admin user
pnpm test:perf # Run performance tests (no-cache production build)
pnpm test --filter=cli # Run CLI tests only
pnpm test --filter=web # Run web tests only
pnpm test --filter=shared # Run shared package tests only
```
## 项目结构
```
tank/
├── apps/
│ ├── web/ # Next.js 15 web app + API (Vercel)
│ └── cli/ # Tank CLI (TypeScript)
├── packages/
│ └── shared/ # Shared schemas, types, constants
└── docs/ # Product brief, architecture, roadmap
```
## 项目状态
请参阅 [路线图](docs/roadmap.md) 了解我们要构建的内容及时间规划。
## 文档
| 文档 | 描述 |
|----------|-------------|
| [产品简报](docs/product-brief.md) | 完整愿景、功能和技术方向 |
| [路线图](docs/roadmap.md) | 带有里程碑的分阶段时间线 |
| [架构](docs/architecture.md) | 技术设计与决策 |
| [性能测试](docs/performance-testing.md) | 方法论与回归协议 |
| [贡献指南](CONTRIBUTING.md) | 如何参与 |
## 为什么叫 "Tank"?

在《黑客帝国》中,**Tank 是操作员** —— 负责将技能加载到人们脑海中的人。是他让“我会功夫”成为可能。但他不会盲目加载任何东西。他会验证、监控,他是最后一道防线。
这就是本项目为 AI agent 技能所做的事情。
## 贡献
Tank 是采用 [MIT 许可证](LICENSE) 的开源项目。我们欢迎各种形式的贡献 —— 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 开始参与。
## 许可证
[MIT](LICENSE) — 做你想做的,只需保留许可证声明。
标签:GNU通用公共许可证, LLM, MITM代理, Node.js, Sandbox, Skills, Unmanaged PE, 人工智能, 依赖管理, 包管理器, 大模型安全, 安全可观测性, 文档安全, 权限管理, 模型越狱, 版本控制, 用户模式Hook绕过, 统一API, 网络安全, 自动化攻击, 自动化攻击, 软件开发工具包, 逆向工具, 防篡改, 隐私保护