sandstream/kit
GitHub: sandstream/kit
kit 是一款本地优先、零 LLM 的安全优先开发者 CLI,通过声明式配置统一管理项目工具、服务认证、密钥和初始化流程。
Stars: 0 | Forks: 0
# kit
面向 AI agent 和人类。管理工具、认证、密钥和项目设置。零 LLM 调用,本地优先,多保险库。
🌐 [sandstre.am/kit](https://sandstre.am/kit)
```
npx sandstream-kit setup
```
## 问题
每次你(或 agent)开始一个新项目时:
- 缺少 CLI 工具(supabase、vercel、eas、gcloud...)
- 未登录服务
- 缺少 API 密钥和机密
- 版本错误
- 不知道需要什么
## 为什么会有 kit
同样的障碍反复出现,无论是对于换了一台新笔记本的人类,还是对于刚拉取了全新代码库的 AI agent:API 密钥散落在各种 `.env` 文件、shell 历史记录和密码管理器中(有些有效,有些已过期,没有一个能集中管理);相同的设置提示浪费着 token,去重新发现上次会话已经知道的内容;而 agent 仅需一次 `npm install`,就可能拉取一个无人审查的包。
kit 让“安全地让这个项目跑起来”变得声明式且可复现:一份配置以相同的方式每次具现化工具、登录和密钥,将凭证保存在保险库中而不是到处乱放,并在新依赖项前加入安装前的 **triage(审查)** 步骤,以便在引入未知的包之前对其进行检查。零 LLM 调用,本地优先,无遥测,智能保留在你放置它的地方。
## 解决方案
每个项目使用 `.kit.toml`:
```
[tools]
node = "22"
pnpm = "latest"
supabase = "2.78"
[services.supabase]
login = "supabase login"
check = "supabase projects list"
link = "supabase link --project-ref {project_ref}"
project_ref = "your-project-ref"
[services.vercel]
login = "vercel login"
check = "vercel whoami"
[services.stripe]
login = "stripe login"
check = "stripe config --list"
# auth strategy 会被推断(此处为 interactive,因为存在 `login` 命令);
# 显式覆盖方式为:auth = "vault" | "capture" | "interactive"
# `kit login --plan` 会在登录前显示每个服务的 resolved strategy。
[secrets]
store = "1password" # or env, dotenvx, vault, aws-sm, gcp-sm, azure-kv, infisical, doppler, bitwarden, eas
template = ".env.template"
[secrets.keys]
SUPABASE_URL = { source = "config", value = "https://{supabase.project_ref}.supabase.co" }
STRIPE_SECRET_KEY = { source = "1password", ref = "op://Development/Stripe/secret-key" }
REVENUECAT_KEY = { source = "eas", name = "REVENUECAT_APPLE_API_KEY" }
[setup]
install = "pnpm install"
migrate = "supabase db push"
seed = "pnpm seed"
verify = "pnpm dev & sleep 5 && curl localhost:3000"
```
## 命令
完整参考:[`docs/COMMANDS.md`](./docs/COMMANDS.md)。简要列表:
- `kit init`:自动检测项目技术栈 → 生成 `.kit.toml`
- `kit setup`:完整流水线:install → hooks → login → secrets → check
- `kit check`:检查工具、服务、密钥、钩子、安全和测试的状态
- `kit fix`:自动修复缺陷(工具、gitignore、hooks、.env.template)
- `kit login --plan`:在不登录的情况下,显示每个服务已确定的认证策略(vault/capture/interactive)
- `kit secrets {set,migrate,rotate,propagate,onecli,validate}`:密钥生命周期
- `kit memory {index,search,suggest,pal,share,backup}`:本地优先的第二大脑 + 待办操作账本
- `kit auth {elevate,setup-totp,status,revoke}`:提权门控 + TOTP
- `kit mcp {list,auth,set-token,clear}`:MCP-server 编排器
- `kit env {list,switch,current,diff}`:环境路由 + 偏差检测
- `kit triage {npm,pip,docker,repo,skill}`:安装前安全检查
- `kit security {scan-build,scan-staged,verify-pull,costs,policy}`:安全运维
- `kit hooks {install,add,sync}`:Git hooks + 绕过检测器
- `kit governance` / `kit audit`:策略 + 审计日志检查
- `kit --read-only `:在会话范围内拒绝所有写入操作
### 你将看到的内容
`kit init`,检测技术栈,预览 `.kit.toml`,然后运行设置:
```
kit init
──────────────────────────────────────────────────
✓ Detected: TypeScript / Next.js (confidence: 92%)
Preview, .kit.toml
+ [tools]
+ node = "22"
...
✓ Generated .kit.toml
```
`kit setup`,六阶段流水线,每个阶段都以上一阶段为关卡:
```
kit setup
──────────────────────────────────────────────────
[1/6] Install
✓ node installed v22.22.2
[2/6] Git Hooks ✓ pre-commit installed
[3/6] Login ✓ supabase authenticated
[4/6] Secrets ✓ Wrote .env.local (from keys)
[5/6] Agent config ✓ Claude Code → CLAUDE.md (created)
[6/6] Verify
Setup complete, you're ready to go! ✓
```
第 5 步会教导仓库中的 agent(Claude Code、Codex、Cursor、Cline)去*使用* kit,它会在 agent 的规则文件(`CLAUDE.md`、`AGENTS.md`、`.cursorrules`、`.clinerules`)中写入一小段受管理的内容:“在 install 前运行 kit check / triage / 将你的机密存入 vault”。你可以随时通过 `kit agent-config` 单独运行它。重新运行时,该代码块会在原处重新生成;你可以自由编辑其标记之外的内容。
`kit check`,带有通过/失败汇总的分组状态表:
```
Tools
✓ node 22.22.2 (need 22)
✗ supabase not installed (need 2.78)
Services
✓ vercel authenticated
Security
✓ .env gitignored pass all .env patterns in .gitignore
✓ pinned versions pass all dependencies pinned
7/8 checks passed (1 issues)
Run kit install to fix tools, kit login to fix auth
```
`kit fix`,六个修复步骤,然后是已修复/需手动处理的汇总:
```
kit fix
──────────────────────────────────────────────────
[1/6] Tools ✓ supabase installed v2.78.0
[2/6] Lock Files ✓ Generated cli-lock.json
[5/6] .gitignore ✓ Added 2 pattern(s) to .gitignore
[6/6] Git Hooks ✓ Installed 1 hook(s): pre-commit
Summary
✓ Fixed 4 issue(s) automatically
! 1 issue(s) require manual intervention:
• Login to stripe: run 'kit login' or 'stripe login'
```
`kit secrets`,从 vault 中解析每个密钥并写入 `.env.local`:
```
Generating secrets... (env=dev)
✓ SUPABASE_URL resolved Derived from config
✓ STRIPE_SECRET_KEY resolved op://Development/Stripe/secret-key
✗ REVENUECAT_KEY missing not found in eas
✓ Wrote .env.local (from keys)
```
`kit triage `,在安装前给出安全裁决:
```
Running triage on npm: left-pad
Health score: 7/10
Critical issues: 0
Warnings: 1
TRIAGE PASSED
```
信任模型记录在 [`docs/THREAT_MODEL.md`](./docs/THREAT_MODEL.md) 中;
每个命令的数据流向见 [`docs/DATA_FLOW.md`](./docs/DATA_FLOW.md);
发布验证见 [`docs/VERIFY.md`](./docs/VERIFY.md)。
- `kit doctor`:深度诊断:Node.js 版本、mise、.env.local、PATH 中的工具、git hooks
- `kit env`:检查 .env.local 中的环境变量(`--show-values`、`--missing`、`--json`)
- `kit mcp`:通过 stdio 为 AI 助手运行 MCP server(自动检测:无子命令 + 非 TTY)。在交互模式下,`kit mcp list|auth|set-token|clear` 用于管理已声明的 server
- `kit analyze`:检测技术栈 + 根据 git 历史和框架标记生成 `CLAUDE.md` / `RULES.md` 草稿
### 密钥管理
端到端的密钥生命周期,从 `.env*` 明文发现,到 vault 迁移,再到部署平台同步,最后是破坏性的历史记录清理。
- `kit secrets`:从配置的 vault 存储中具现化 `.env.local`
- `kit secrets set --stdin | --value `:直接将值捕获到 vault 中(支持 stdin,绝不经过 argv)。这是服务背后的 `auth = "capture"` 策略的执行方式
- `kit secrets migrate`:将明文凭证从 `.env*` 移动到 vault 中
- `kit secrets rotate `:生成新值(`--random` 不透明 token / `--value ` 显式指定)
- `kit secrets rotate --from-cli`:提供商原生操作手册(Stripe / AWS-IAM / GCP-IAM / GitHub PAT / OpenAI)
- `kit secrets rotate --via supabase-mgmt-api --project `:通过 Supabase Mgmt API 实现完全自动化。自动检测 scoped-key-mint 还是 jwt-secret-roll。
- `kit secrets propagate --to vercel,github,...`:将值推送到部署目标(通过 `--stdin` 支持 stdin 安全输入)
- `kit secrets revoke-old --via supabase-mgmt-api --key-id `:撤销之前生成的 scoped key
- `kit secrets onecli register --host `:向 OneCLI gateway 注册,以便 agent 进程永远不会看到真实值
- `kit secrets purge-history --force-history`:破坏性操作:重写 git 历史记录以清除泄漏的值(封装了 `git filter-repo` / `bfg`)。需要提权 + 显式标志。
### 安全扫描器
- `kit security scan-staged`:pre-commit:扫描暂存区的 blob 以查找已知的凭证模式
- `kit security scan-build`:遍历 `.next/`、`dist/`、`build/` 以查找内联到制品中的凭证(`NEXT_PUBLIC_` 拼写错误)
- `kit security scan-transcripts`:遍历 `.claude/`、`~/.claude/projects/`、`.opencode/` 以查找重放密钥导致的泄漏
- `kit security check-gitignore [--fix]`:验证 `.env*`、`*.pem`、`id_rsa`、`.kit/elevation.json` 已被忽略
- `kit security verify-pull [--base ]`:在 `git pull` 之后:审计新依赖、gitignore 删除、引入的密钥、策略变更
- `kit security policy [init|add |check]`:依赖项白名单强制执行 + 每个密钥的支出上限/TTL/scope
- `kit security costs`:每个密钥的支出与策略上限的快照对比(Stripe 实时;OpenAI/Anthropic/Resend/Vercel 已打桩)
- `kit security clear-cache`:重置缓存的供应链扫描器二进制文件(在有意重新构建后使用)
### 内置 git hooks
`kit hooks add ` 会安装一个回调到 kit 的受管理 hook。不需要 `.kit.toml` 配置。
- `secret-scan` (pre-commit):阻止引入已知凭证模式的提交
- `post-pull-audit` (post-merge):在每次 `git pull` / merge 之后运行 `verify-pull`
### 环境与提权
生产凭证受到显式环境切换和短期提权的限制。
- `kit env switch `:切换活动的环境标记
- `kit env current`:显示活动环境(带颜色标识),使用 `kit env list` 查看可用环境
- `kit auth elevate [--scope ] [--ttl-minutes N]`:生成具有 TTL 的提权标记(TOTP 或 yes 确认提示)。在任何破坏性密钥操作之前必需。
- `kit auth setup-totp`:一次性 TOTP 注册(以 0600 权限写入 `~/.kit/totp-secret`)
- `kit auth status`:显示当前的提权状态
- `kit auth revoke`:提前取消提权标记
- `kit audit secrets [--since-days N] [--key ]`:取证分析:谁在何时触碰了哪个密钥
### 质量门控(基线感知)
- `kit check --enforce-tests`:当全新新增的源文件缺少同级 `.test.ts` 时失败
- `kit design`:静态 a11y 扫描(img-alt、button-empty、anchor-no-href、input-no-label)+ design-token 一致性检查(绕过原始的 `#hex` / `px`)。使用 `--enforce` 进行门控,`--json` 用于机器输出
- `kit review`:元运行器:在一个命令中执行 `check` + `design`。作为 AI agent 的单一 PR 门控入口点使用
- `kit baseline freeze`:将当前的检查结果(未测试的文件、a11y、token)快照存入 `.kit-baseline.json` 中,使先前存在的警告保持为警告,只有全新新增的检查失败项才会导致失败
- `kit baseline show`:打印当前的基线
### 供应链
- **Bumblebee**:内置供应链扫描器。根据 `bumblebee.lock.json` 中锁定的 SHA-256 校验和验证每一个依赖项。在复用前重新验证缓存,以便捕获被篡改的本地文件(类别 `integrity`)。在 CI 中的每个 PR 上运行
- `kit triage npm|pip|docker|repo|skill `:通过 triage 技能进行安装前安全评估
- `kit triage npm --sandbox`:离线行为检查:`npm pack` → 解压 → 扫描 install 脚本、eval/base64/网络模式、意外脚本、超大文件。不执行任何代码
- 供应链检查结果会自动附加到 `.kit-audit.jsonl`(每个结果占一行 JSON)以便 SIEM 提取
- 发布版本随附 SLSA 来源(`npm publish --provenance`)、每次 GitHub 发布的 CycloneDX + SPDX SBOMs、cosign 签名的 Docker 镜像,以及每周的 OpenSSF Scorecard
## 记忆
`kit memory` 为 agent 提供了一个本地优先、确定性的第二大脑,它存储你的原始对话历史,并在*回答之前*对其进行搜索,因此它提供的是确凿证据而不是猜测。基于 SQLite + FTS5,只需两个 hook,无向量,无模型调用。
它为**七款**编程 agent(Claude Code、Codex、Gemini、Continue、Cursor、Amazon Q 和 Cline)的记录建立索引,每一条都根据 agent 自身的序列化格式进行解析,绝不靠猜。一个私人的个人层级(加密备份,这样即使笔记本被盗也不会丢失你的上下文),加上一个精心策划、按区域组织的**共享**层级,它会跟随代码库移动并像代码一样被审查。
```
kit memory install && kit memory index
kit memory search "what did we decide about X" # project-scoped recall
kit memory area stripe # shared: how we built it, status, security
kit memory suggest | your-llm # zero-LLM core; pipe a review prompt to YOUR model
```
完整参考:[`docs/MEMORY.md`](docs/MEMORY.md)。Schema 和双 hook 设计
归功于 [cloudctx](https://github.com/chadptk1238/cloudctx) (MIT)。
## 锁定文件
kit 使用 `.kit/` 中的锁定文件来跟踪技能和工具的精确版本:
- `.kit/kit.json`:标识此项目使用的 kit(例如,“sandstream/standard@1.3.0”)
- `.kit/skills-lock.json`:包含版本和元数据的 Agent 技能
- `.kit/cli-lock.json`:包含版本和安装来源的 CLI 工具
这允许团队将其开发方法编纂成典并进行版本控制,类似于依赖项的 `package-lock.json`。
_BLOCK_9/>
## 服务开通
kit 可以自动为你的项目开通和配置服务,专为原生 agent 工作流设计(无需浏览器):
```
kit add stripe/payments # Set up Stripe with API keys
kit add supabase/db # Initialize Supabase project
kit add vercel/hosting # Link repository to Vercel
```
### 工作原理
1. 检查是否已安装并认证了服务 CLI
2. 通过 CLI/API 开通资源(无需浏览器)
3. 提取凭证和配置
4. 将密钥写入 `.env.local`
5. 将开通元数据记录在 `skills-lock.json` 中
### 可用服务
- **stripe/payments**:使用 Stripe 处理支付
- 要求:`stripe` CLI([安装](https://stripe.com/docs/stripe-cli))
- 开通:API 密钥,创建测试模式配置
- 密钥:`STRIPE_SECRET_KEY`、`STRIPE_PUBLISHABLE_KEY`
- 示例:
brew install stripe/stripe-cli/stripe
stripe login
kit add stripe/payments
- **supabase/db**:使用 Supabase 进行数据库和认证
- 要求:`supabase` CLI([安装](https://supabase.com/docs/guides/cli))
- 开通:本地开发实例或链接现有项目
- 密钥:`SUPABASE_URL`、`SUPABASE_ANON_KEY`、`SUPABASE_SERVICE_ROLE_KEY`
- 示例:
brew install supabase/tap/supabase
supabase login
kit add supabase/db
- **vercel/hosting**:使用 Vercel 进行托管和部署
- 要求:`vercel` CLI([安装](https://vercel.com/docs/cli))
- 开通:链接仓库,设置部署
- 密钥:`VERCEL_PROJECT_ID`、`VERCEL_ORG_ID`
- 示例:
npm i -g vercel
vercel login
kit add vercel/hosting
- **expo/eas**:使用 Expo EAS 构建移动应用
- 要求:`eas` CLI([安装](https://docs.expo.dev/eas/))
- 开通:EAS 项目,构建配置
- 密钥:`EXPO_TOKEN`,EAS 凭证
- 示例:
npm i -g eas-cli
eas login
kit add expo/eas
- **searxng/instance**:尊重隐私的搜索引擎
- 要求:`docker` 和 `docker-compose`
- 开通:本地 SearXNG 实例
- 密钥:`SEARXNG_URL`、`SEARXNG_SECRET`
- 示例:
kit add searxng/instance
完整的适配器集合(每个都会开通/复用相关的密钥;运行 `kit add `):
| Service | Purpose |
|---|---|
| `stripe/payments` | Stripe 支付处理(产品 + 价格 ID) |
| `supabase/db` | Supabase 数据库 + 认证 |
| `vercel/hosting` | Vercel 托管 + 部署 |
| `flyio/hosting` | Fly.io 容器部署 |
| `railway/hosting` | Railway(Heroku 风格)部署 |
| `neon/db` | Neon serverless Postgres |
| `planetscale/db` | PlanetScale serverless MySQL |
| `upstash/redis` | Upstash serverless Redis |
| `cloudflare/r2` | Cloudflare R2 对象存储(兼容 S3) |
| `clerk/auth` | Clerk 认证 + 用户管理 |
| `resend/email` | Resend 事务性邮件 |
| `loops/email` | Loops 营销 + 事务性邮件 |
| `sentry/monitoring` | Sentry 错误跟踪 + 性能监控 |
| `posthog/analytics` | PostHog 产品分析 + 会话记录 |
| `tinybird/analytics` | 基于 ClickHouse 的 Tinybird 实时分析 |
| `liveblocks/realtime` | Liveblocks 协作实时功能(状态、光标) |
| `trigger/background` | Trigger.dev 后台任务 |
| `inngest/background` | Inngest 事件驱动的后台任务 |
| `flagsmith/flags` | Flagsmith 功能开关 + 远程配置 |
| `expo/eas` | Expo Application Services(移动应用构建) |
| `searxng/instance` | 自托管的 SearXNG 搜索引擎 |
使用 `kit create-plugin ` 添加你自己的适配器(请参阅 [docs/PLUGIN_DEVELOPMENT.md](./docs/PLUGIN_DEVELOPMENT.md))。
### 示例工作流
**新项目设置:**
```
# 克隆项目
git clone https://github.com/user/my-app
cd my-app
# 检查所需内容
kit check
# 一次性 provision 所有服务
kit add stripe/payments
kit add supabase/db
kit add vercel/hosting
# 验证所有配置
kit check
```
**Agent 驱动的开通:**
```
# Agent 会自动 provision 服务
kit add stripe/payments
# → 检查是否已安装 stripe CLI
# → 验证身份验证
# → 创建 API keys
# → 写入 .env.local
# → 更新 skills-lock.json
# 检查已 provision 的内容
cat .env.local | grep STRIPE
cat skills-lock.json | jq '.provisioned["stripe/payments"]'
```
**创建自定义适配器:**
有关创建自定义服务适配器的完整指南,请参阅 [docs/CUSTOM_ADAPTERS.md](./docs/CUSTOM_ADAPTERS.md)。
**故障排除:**
常见问题及解决方案:
- **“未安装必需的工具”**:安装服务的 CLI 工具(参见上面的示例)
- **“未认证”**:运行服务的登录命令(例如 `stripe login`)
- **“开通失败”**:检查 CLI 是否在你的 PATH 中:`which stripe`
- 如需更多帮助,请参阅 [docs/CUSTOM_ADAPTERS.md](./docs/CUSTOM_ADAPTERS.md#troubleshooting)
## Agent 集成
Agent 在启动时运行 `kit check`。如果有任何检查失败:
1. 自动修复可以修复的问题(`kit fix`)
2. 将需要浏览器认证的问题升级交给人类处理(`kit escalate`)
3. 继续处理当前可用的工作
## 治理与访问控制
kit 包含用于管理 agent 对生产系统访问的治理功能:
```
[governance]
enabled = true
environment = "dev" # dev, staging, prod
[governance.access]
dev = { read = true, write = true, delete = true }
staging = { read = true, write = true, delete = false }
prod = { read = true, write = false, delete = false }
[governance.agent]
id = "agent-123"
name = "Founding Engineer"
max_tokens_per_day = 1000000
max_operations_per_hour = 100
[governance.audit]
enabled = true
log_file = ".kit-audit.jsonl"
[governance.approval]
destructive_operations = ["delete", "drop", "truncate"]
production_writes = true
[governance.revocation]
enabled = true
revocation_endpoint = "https://audit.example.com/agents/{agent_id}/status"
```
### 功能
- **基于环境的访问控制**:每个环境具有不同的权限
- **审计日志**:所有操作都会记录,并自动隐去密钥
- **预算限制**:跟踪 token(每天)和操作(每小时)
- **批准关卡**:针对破坏性操作的交互式提示
- **撤销**:通过 API 检查远程状态
- **密钥过期**:监控并警告即将过期的密钥
### 环境检测
kit 会自动使用以下方式检测当前环境:
1. **NODE_ENV** 环境变量(最高优先级)
2. **Git 分支**名称(回退机制:main/master→prod,staging→staging,其他→dev)
3. 如果两者均不可用,则**默认**为 dev
在你的 `.env.local` 中设置 NODE_ENV:
```
# 选项:development, staging, production
NODE_ENV=development
```
这会影响治理访问控制、安全策略和审计日志记录。
详情请参阅 [GOVERNANCE.md](./GOVERNANCE.md)。
## AI 助手设置
kit 将其功能作为 MCP server 公开,使得 Claude Code、Cursor、Windsurf、Cline 以及任何其他兼容 MCP 的 AI 助手可以直接使用它。注册后,助手可以调用 `kit_check`、`kit_fix`、`kit_add` 和其他工具,而无需离开它们的上下文。
### Claude Code
模板配置包含在 `claude-mcp.json` 中。复制它以激活:
```
cp claude-mcp.json .claude/mcp.json
```
或者手动添加到 `.claude/mcp.json`(或 `~/.claude/mcp.json` 以应用于所有项目):
```
{
"mcpServers": {
"kit": {
"command": "npx",
"args": ["sandstream-kit", "mcp"]
}
}
}
```
或者如果全局安装了(`npm install -g sandstream-kit`):
```
{
"mcpServers": {
"kit": {
"command": "kit",
"args": ["mcp"]
}
}
}
```
### Cursor
`.cursor/mcp.json` 已包含在此 repo 中。对于其他项目,请将其添加到项目根目录的 `.cursor/mcp.json` 中:
```
{
"mcpServers": {
"kit": {
"command": "npx",
"args": ["sandstream-kit", "mcp"]
}
}
}
```
### Windsurf / Cline
在 Windsurf 中,打开 **Settings → MCP Servers** 并添加:
```
{
"kit": {
"command": "npx",
"args": ["sandstream-kit", "mcp"],
"transport": "stdio"
}
}
```
对于 Cline,请将相同的配置添加到你的 `cline_mcp_settings.json` 中。
### 可用的 MCP 工具
| Tool | Description |
|------|-------------|
| `kit_check` | 运行所有检查,返回结构化的状态 JSON |
| `kit_install` | 通过 mise 安装缺失的工具 |
| `kit_login` | 尝试(以非交互方式)进行服务登录 |
| `kit_secrets` | 从配置的来源生成 `.env.local` |
| `kit_fix` | 自动修复问题(安装工具,生成锁定文件) |
| `kit_add` | 开通服务集成(stripe、supabase 等) |
| `kit_env` | 检查 `.env.local`,列出包含已设置/缺失状态及隐去值后的密钥 |
### 示例:kit_check 响应
```
{
"ok": true,
"tools": [
{ "name": "node", "required": "latest", "installed": "22.22.2", "ok": true }
],
"secrets": [
{ "name": "APP_NAME", "source": "config", "available": true, "detail": "Derived from config" }
],
"security": [
{ "category": "secrets", "name": ".env gitignored", "status": "pass", "detail": "all .env patterns in .gitignore" },
{ "category": "supply-chain", "name": "pinned versions", "status": "pass", "detail": "all dependencies pinned" }
],
"locks": [
{ "category": "cli-lock", "exists": true, "inSync": true, "missing": [], "detail": "all tools locked" }
]
}
```
## 社区与支持
### 获取帮助
- 📚 **插件开发**:[docs/PLUGIN_DEVELOPMENT.md](docs/PLUGIN_DEVELOPMENT.md),[docs/ADAPTER_GUIDE.md](docs/ADAPTER_GUIDE.md),[docs/MCP_TOOLS_GUIDE.md](docs/MCP_TOOLS_GUIDE.md)
- 💬 **讨论**:[github.com/sandstream/kit/discussions](https://github.com/sandstream/kit/discussions)
- 🐛 **问题**:[github.com/sandstream/kit/issues](https://github.com/sandstream/kit/issues)
- 🤝 **贡献**:[CONTRIBUTING.md](CONTRIBUTING.md),[COMMUNITY.md](COMMUNITY.md)
### 行为准则
请参阅 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)。
## 技术栈
- [mise-en-place](https://mise.jdx.dev):工具版本管理
- [1Password CLI](https://developer.1password.com/docs/cli/):机密管理
- Node.js CLI (TypeScript)
标签:MITM代理, Python安全, SOC Prime, 开发工具, 文档结构分析, 本地优先, 环境管理, 自动化攻击, 自动化配置