tankpkg/tank

GitHub: tankpkg/tank

专为 AI Agent 技能设计的安全优先包管理器,通过版本控制、权限管理和安全扫描解决技能供应链安全问题。

Stars: 3 | Forks: 1

Tank — Security-first package manager for AI agent skills

Tank logo

Tank

安全优先的 AI agent 技能包管理器。
“我会功夫。” — 但经过了验证、锁定和扫描。

GitHub Stars License npm CI

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