claude-code-safety-net

GitHub
1.2k 56 简单 1 次阅读 2天前MIT插件
AI 解读 由 AI 自动生成,仅供参考

claude-code-safety-net 是一款专为 AI 编程助手设计的“安全网”插件,旨在防止自动化代理在执行代码时误删文件或破坏版本控制。它通过拦截并分析即将运行的命令,在 destructive(破坏性)的 Git 操作或文件系统指令实际执行前将其阻断,从而避免类似 rm -rf 或强制重置代码库等灾难性后果。

这一工具解决了单纯依靠提示词或软性规则无法有效约束 AI 行为的痛点。以往开发者需在配置文件中反复叮嘱 AI“不要删除文件”,但 AI 仍可能因理解偏差造成数据丢失。claude-code-safety-net 将防护机制从“口头约定”升级为“硬性技术约束”,无需复杂配置即可开箱即用。

它特别适合频繁使用 Claude Code、GitHub Copilot CLI 等终端编程助手的软件开发者和工程师,尤其是那些希望在不牺牲效率的前提下提升项目安全性的团队。

其技术亮点在于采用语义化命令分析而非简单的通配符匹配,能更精准地识别潜在风险;支持多种运行模式(如严格模式、偏执模式),并可检测壳包装器和解释器单行命令等高级绕过手段。此外,它还具备审计日志和敏感信息脱帽功能,为开发环境提供多层防护。对于重视代码资产安全的技术人员而言,这是一个轻量却至关重要的守护工具。

使用场景

资深后端工程师小李正利用 Claude Code 辅助重构一个遗留微服务项目,试图清理冗余代码并优化 Git 提交历史。

没有 claude-code-safety-net 时

  • AI 在理解“清理未使用文件”指令时产生幻觉,误将包含核心业务逻辑的 src/utils/legacy 目录当作垃圾文件,准备执行 rm -rf 删除。
  • 当被要求“重置混乱的提交记录”时,AI 直接运行了 git reset --hard HEAD~5,导致过去两天精心编写的功能分支代码瞬间丢失且无法找回。
  • 仅靠 CLAUDE.md 中的文字警告无法形成硬性约束,AI 仍可能忽略上下文提示,在复杂推理链中触发危险命令。
  • 一旦破坏性命令执行,开发者只能依赖本地备份或远程仓库强制回滚,严重打断开发心流并造成数小时的工作损失。

使用 claude-code-safety-net 后

  • claude-code-safety-net 作为前置钩子拦截了指令,通过语义分析识别出 rm -rf 针对的是非空业务目录,直接在执行前阻断并报警。
  • 面对 git reset --hard 请求,工具检测到该操作会丢弃未提交的更改,立即阻止执行并建议更安全的 git stash 替代方案。
  • 无需手动配置复杂的通配符拒绝规则,工具开箱即用,自动覆盖各类变形的 Shell 包装器和解释器单行命令。
  • 系统在状态栏实时显示拦截详情,让小李在不中断对话的情况下确认风险,既保障了代码库安全又维持了高效的协作节奏。

claude-code-safety-net 将原本依赖自觉的“软性提醒”升级为不可绕过的“硬性防线”,彻底消除了 AI 编程助手误删库或清空历史的灾难性风险。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具是一个 Node.js 插件,主要用于拦截破坏性的 git 和文件系统命令。它不依赖 GPU 或大量内存,核心运行环境要求是安装 Node.js 18 或更高版本。支持通过插件市场或直接配置安装在 Claude Code、OpenCode、Gemini CLI 和 GitHub Copilot CLI 中。建议使用 bunx 或 npx 运行状态行集成。
python未说明
Node.js >= 18
Claude Code
OpenCode
Gemini CLI
GitHub Copilot CLI
claude-code-safety-net hero image

快速开始

克劳德代码安全网

CI codecov Version Claude Code OpenCode Gemini CLI Copilot CLI License: MIT

CC 安全网

一个克劳德代码插件,充当安全网,在破坏性 Git 和文件系统命令执行前将其拦截。

目录

为何存在此项目

我们以惨痛的教训认识到,仅靠指令并不能有效约束 AI 代理的行为。Reddit 上的一则帖子生动地展示了这一点:克劳德代码在悄无声息间执行了 rm -rf ~/git checkout -- 等命令,瞬间清空了数小时的工作成果。这清楚地表明,仅仅依靠 CLAUDE.mdAGENTS.md 文件中的软性规则,无法替代硬性的技术限制措施。因此,当前的做法是利用专门的钩子程序来自动阻止代理运行破坏性命令。

为何不使用权限拒绝规则?

克劳德代码的 .claude/settings.json 支持带有通配符匹配的拒绝规则(例如 Bash(git reset --hard:*))。而本插件与之相比有以下区别:

一目了然

权限拒绝规则 安全网
设置 需手动配置 开箱即用
解析 通配符模式匹配 语义化命令分析
执行顺序 第二步执行 第一步执行(PreToolUse 钩子)
Shell 包装 不能自动处理(需匹配包装形式) 递归分析(最多 5 层)
解释器单行命令 不能自动处理(需匹配解释器形式) 能够检测并阻止

权限规则存在已知绕过途径

即便使用通配符匹配,Bash 的权限模式也存在诸多局限性,容易被多种方式绕过:

绕过方法 示例
选项置于值之前 curl -X GET http://evil.com 可绕过 Bash(curl http://evil.com:*)
Shell 变量 URL=http://evil.com && curl $URL 可绕过 URL 模式
标志位重新排序 rm -r -f / 可绕过 Bash(rm -rf:*)
多余空格 rm -rf /(双空格)可绕过模式
Shell 包装 sh -c "rm -rf /" 可完全绕过 Bash(rm:*)

安全网能处理模式无法应对的情况

场景 权限规则 安全网
git checkout -b feature(安全) Bash(git checkout:*) 阻止 允许
git checkout -- file(危险) Bash(git checkout:*) 阻止 阻止
rm -rf /tmp/cache(安全) Bash(rm -rf:*) 阻止 允许
rm -r -f /(危险) 因标志位顺序获准执行 阻止
bash -c 'git reset --hard' 因使用包装获准执行 阻止
python -c 'os.system("rm -rf /")' 因使用解释器获准执行 阻止

多层防御

PreToolUse 钩子会在权限系统之前执行。这意味着安全网会优先检查每一条命令,无论你的权限配置如何。即使你误配置了拒绝规则,安全网仍能提供最后一道保护屏障。

建议两者结合使用:权限拒绝规则适合快速、用户可配置的拦截;而安全网则提供更强大、难以绕过的保护机制,且开箱即用。

沙箱又如何?

克劳德代码提供了原生的沙箱功能,可在操作系统层面实现文件系统和网络隔离。以下是它与安全网的对比:

不同层次的保护

沙箱 安全网
执行方式 操作系统级别(Seatbelt/bubblewrap) 应用程序级别(PreToolUse 钩子)
方法 封闭式——限制文件系统和网络访问 命令分析——阻止破坏性操作
文件系统 默认限制写入(仅当前目录);读取权限较宽 仅阻止破坏性操作
网络 域名级代理过滤
Git 意识 针对破坏性 Git 操作有明确规则
抗绕过能力 高——由操作系统强制边界 较低——仅分析命令字符串

为什么沙箱还不够

沙箱会限制文件系统和网络访问,但它并不了解在这些限制范围内哪些操作是具有破坏性的。以下命令不会被沙箱边界阻止:

[!NOTE] 这些命令是自动执行还是需要确认,取决于你的沙箱模式(自动允许 vs. 普通权限),而网络访问仍然取决于你允许的域名策略。Claude Code 还可以通过 dangerouslyDisableSandbox 在沙箱外重试命令(需用户授权);这可以通过设置 allowUnsandboxedCommands: false 来禁用。

命令 沙箱限制 安全网
git reset --hard 允许(在当前工作目录内) 阻止
git checkout -- . 允许(在当前工作目录内) 阻止
git stash clear 允许(在当前工作目录内) 阻止
git push --force 允许(如果远程域名被允许) 阻止
rm -rf . 允许(在当前工作目录内) 阻止

沙箱会认为 git reset --hard 是一个安全的操作——它只修改当前目录内的文件。但这样一来,你所有未提交的工作就都丢失了。

何时应该使用沙箱

当你的主要关注点是以下情况时,使用沙箱更为合适:

  • 提示注入攻击 — 通过限制出站域名来降低数据泄露风险(取决于你允许的域名策略)
  • 恶意依赖 — 默认情况下限制文件系统写入和网络访问(受你的沙箱配置影响)
  • 执行不受信任的代码 — 操作系统级别的隔离比模式匹配更强大
  • 网络控制 — 安全网没有网络保护功能

推荐:同时使用两者

它们分别针对不同的威胁提供保护:

  • 沙箱 可以控制破坏范围——即使出现问题,损害也仅限于当前工作目录和已批准的网络域名。
  • 安全网 可以防止误操作——它可以捕获那些从沙箱角度看“安全”的 Git 特定错误。

同时运行两者可以提供纵深防御。沙箱处理未知威胁;安全网则处理沙箱允许的已知破坏性模式。

先决条件

  • Node.js:运行此插件需要版本 18 或更高。

快速开始

Claude Code 的安装

/plugin marketplace add kenryu42/cc-marketplace
/plugin install safety-net@cc-marketplace
/reload-plugins

Claude Code 自动更新

  1. 运行 /plugin → 选择 Marketplaces → 选择 cc-marketplace → 启用自动更新

OpenCode 的安装

选项 A:让 LLM 自动完成

将以下内容粘贴到任何 LLM 代理中(Claude Code、OpenCode、Cursor 等):

按照 https://opencode.ai/config.json 中的模式,在 `~/.config/opencode/opencode.json`(或 `.jsonc`)中安装 cc-safety-net 插件。

选项 B:手动设置

  1. 将插件添加到你的配置文件 ~/.config/opencode/opencode.json(或 .jsonc):
{
  "plugin": ["cc-safety-net"]
}

Gemini CLI 的安装

gemini extensions install https://github.com/kenryu42/gemini-safety-net

GitHub Copilot CLI 的安装

/plugin install kenryu42/copilot-safety-net

[!NOTE] 安装插件后,你需要重启 Copilot CLI 才能使插件生效。


状态栏集成

安全网可以在 Claude Code 的状态栏中显示其状态,表明保护是否启用以及启用了哪些模式。

通过斜杠命令设置

配置状态栏最简单的方式是使用内置的斜杠命令:

/set-statusline

这个交互式命令会:

  1. 询问你更倾向于使用 bunx 还是 npx
  2. 检查现有的状态栏配置
  3. 提供替换或与现有命令管道连接的选项
  4. 将配置写入 ~/.claude/settings.json

手动设置

将以下内容添加到你的 ~/.claude/settings.json 中:

使用 Bun(推荐):

{
  "statusLine": {
    "type": "command",
    "command": "bunx cc-safety-net --statusline"
  }
}

使用 Claude X:

{
  "statusLine": {
    "type": "command",
    "command": "BUN_BE_BUN=1 claude x cc-safety-net --statusline"
  }
}

[!NOTE] claude x 命令仅与原生版 Claude Code 兼容。如果你通过 npm 安装,请改用 npxbunx

使用 NPM:

{
  "statusLine": {
    "type": "command",
    "command": "npx -y cc-safety-net --statusline"
  }
}

与现有状态栏命令管道连接:

如果你已经有状态栏命令,可以在末尾加入安全网:

{
  "statusLine": {
    "type": "command",
    "command": "your-existing-command | bunx cc-safety-net --statusline"
  }
}

更改会立即生效——无需重启。

模式指示表情符号

状态栏会根据当前配置显示不同的表情符号:

状态 显示 含义
插件已禁用 🛡️ Safety Net ❌ 安全网插件未启用
默认模式 🛡️ Safety Net ✅ 使用默认设置进行保护
严格模式 🛡️ Safety Net 🔒 SAFETY_NET_STRICT=1 — 对无法解析的命令采取失败关闭
偏执模式 🛡️ Safety Net 👁️ SAFETY_NET_PARANOID=1 — 启用所有偏执检查
仅限 RM 的偏执模式 🛡️ Safety Net 🗑️ SAFETY_NET_PARANOID_RM=1 — 即使在当前工作目录内也会阻止 rm -rf
仅限解释器的偏执模式 🛡️ Safety Net 🐚 SAFETY_NET_PARANOID_INTERPRETERS=1 — 阻止解释器单行命令
严格 + 偏执模式 🛡️ Safety Net 🔒👁️ 同时启用严格和偏执模式

当设置了多个环境变量时,模式表情符号会组合显示。

诊断

运行诊断命令以验证你的安装并排查问题:

npx cc-safety-net doctor
# 或使用 bun
bunx cc-safety-net doctor

诊断命令会检查:

检查 描述
钩子集成 验证插件是否为每个支持的平台正确配置
自我测试 运行示例命令以确认阻止功能正常工作
配置 验证用户和项目配置中的自定义规则
环境 显示模式标志的状态(SAFETY_NET_STRICT、SAFETY_NET_PARANOID 等)
最近活动 总结过去 7 天内被阻止的命令
系统信息 显示所有相关工具的版本
更新检查 检查是否有新版本可用

选项

标志 描述
--json 以 JSON 格式输出(便于在 bug 报告中分享)
--skip-update-check 跳过 npm 版本检查

解释(调试分析)

跟踪安全网如何逐步分析一条命令。这对于调试为什么某条命令会被阻止或允许,或者在开发自定义规则时非常有用。

npx cc-safety-net explain "git reset --hard"
# 或使用 bun
bunx cc-safety-net explain "git reset --hard"

选项

标志 描述
--json 将分析结果输出为 JSON
--cwd <path> 使用自定义工作目录进行分析

示例

npx cc-safety-net explain "rm -rf /"
npx cc-safety-net explain --json "git checkout -- file.txt"
npx cc-safety-net explain --cwd /tmp "git status"

被阻止的命令

命令模式 危险原因
git checkout -- files 永久丢弃未提交的更改
git checkout <ref> -- <path> 用引用版本覆盖工作区
git checkout <ref> <path> 当 Git 无法区分引用和路径规范时,可能会覆盖工作区
git restore files 丢弃未提交的更改
git restore --worktree 显式丢弃工作区更改
git reset --hard 销毁所有未提交的更改
git reset --merge 可能会丢失未提交的更改
git clean -f 永久删除未跟踪文件
git push --force / -f 破坏远程历史
git branch -D 强制删除分支,不检查是否已合并
git stash drop 永久删除暂存的更改
git stash clear 删除所有暂存的更改
git worktree remove --force 强制删除工作树,不检查是否有更改
rm -rf(当前目录外的路径) 递归删除当前目录外的文件
rm -rf / 或 ~ 或 $HOME 根目录/主目录的删除极其危险
find ... -delete 永久删除符合条件的文件
xargs rm -rf 动态输入使目标不可预测
xargs <shell> -c 可以执行任意命令
parallel rm -rf 动态输入使目标不可预测
parallel <shell> -c 可以执行任意命令

允许的命令

命令模式 安全原因
git checkout -b branch 创建新分支
git checkout --orphan 创建孤立分支
git restore --staged 仅取消暂存,不丢弃
git restore --help/--version 输出帮助信息或版本号
git branch -d 安全删除,会检查是否已合并
git clean -n / --dry-run 仅预览
git push --force-with-lease 安全强制推送
rm -rf /tmp/... 临时目录是短暂存在的
rm -rf /var/tmp/... 系统临时目录
rm -rf $TMPDIR/... 用户临时目录
rm -rf ./...(在当前目录内) 限制在当前工作目录内

被阻止时的行为

当检测到破坏性命令时,插件会阻止工具执行,并给出原因。

示例输出:

被安全网阻止

原因:git checkout -- 会永久丢弃未提交的更改。请先使用 'git stash'。

命令:git checkout -- src/main.py

如果确实需要执行此操作,请明确征得用户同意,并由用户手动运行该命令。

测试钩子

您可以通过尝试在 Claude Code 中运行被阻止的命令来手动测试钩子:

# 这应该会被阻止
git checkout -- README.md

# 这应该会被允许
git checkout -b test-branch

开发

有关如何参与本项目的详细信息,请参阅 CONTRIBUTING.md

自定义规则(实验性)

除了内置保护之外,您还可以定义自己的阻止规则,以执行团队约定或项目特定的安全策略。

[!TIP] 使用 /set-custom-rules 可以通过自然语言交互方式创建自定义规则。

GitHub Copilot CLI 用户:由于 Copilot CLI 不支持自定义斜杠命令,请向您的代理发送以下提示:

运行 npx cc-safety-net --custom-rules-doc 并帮我设置自定义规则

快速示例

在项目根目录下创建 .safety-net.json 文件:

{
  "version": 1,
  "rules": [
    {
      "name": "block-git-add-all",
      "command": "git",
      "subcommand": "add",
      "block_args": ["-A", "--all", "."],
      "reason": "请使用 'git add <具体文件>',而不是一次性添加所有文件。"
    }
  ]
}

现在,git add -Agit add --allgit add . 都将被阻止,并显示您的自定义消息。

配置文件位置

配置文件从两个作用域加载并合并:

  1. 用户作用域~/.cc-safety-net/config.json(如果存在则始终加载)
  2. 项目作用域:当前工作目录中的 .safety-net.json(如果存在则加载)

合并行为

  • 来自两个作用域的规则会被合并
  • 如果两个作用域中存在同名规则,则 项目作用域优先
  • 规则名称比较不区分大小写(MyRulemyrule 被视为重复)

这使得您可以在用户作用域中定义个人默认规则,同时允许项目覆盖特定规则。

如果在任一位置都没有找到配置文件,则仅应用内置规则。

配置模式

字段 类型 必需 描述
version 整数 模式版本(必须为 1
rules 数组 自定义阻止规则列表(默认为空)

规则模式

字段 类型 必需 描述
name 字符串 唯一标识符(字母、数字、连字符、下划线;最多 64 个字符)
command 字符串 要匹配的基础命令(例如 gitnpmdocker
subcommand 字符串 要匹配的子命令(例如 addinstall)。如果省略,则匹配任何子命令。
block_args 数组 触发阻止的参数(至少需要一个)
reason 字符串 被阻止时显示的消息(最多 256 个字符)

匹配行为

  • 命令会被规范化为基本名称(/usr/bin/gitgit
  • 子命令是命令之后的第一个非选项参数
  • 参数会逐字匹配(不使用正则表达式或通配符),短选项会被展开
  • 如果 block_args 中的 任意一个 参数出现,命令就会被阻止
  • 短选项会被展开:-Ap 会匹配 -A(捆绑的标志会被拆开)
  • 长选项采用精确匹配:--all-files 不会匹配 --all
  • 自定义规则只会增加限制——它们不能绕过内置保护。

已知局限性

  • 短选项展开-Cfoo 会被视为 -C -f -o -o,而不是 -C foo。阻止 -f 可能会导致对附加选项值的误判。

示例

阻止全局 npm 安装

{
  "version": 1,
  "rules": [
    {
      "name": "block-npm-global",
      "command": "npm",
      "subcommand": "install",
      "block_args": ["-g", "--global"],
      "reason": "全局 npm 安装可能导致版本冲突。请使用 npx 或本地安装。"
    }
  ]
}

阻止危险的 Docker 命令

{
  "version": 1,
  "rules": [
    {
      "name": "block-docker-system-prune",
      "command": "docker",
      "subcommand": "system",
      "block_args": ["prune"],
      "reason": "docker system prune 会移除所有未使用的数据。建议使用更精确的清理方式。"
    }
  ]
}

多条规则

{
  "version": 1,
  "rules": [
    {
      "name": "block-git-add-all",
      "command": "git",
      "subcommand": "add",
      "block_args": ["-A", "--all", ".", "-u", "--update"],
      "reason": "请使用 'git add <具体文件>',而不是一次性添加所有文件。"
    },
    {
      "name": "block-npm-global",
      "command": "npm",
      "subcommand": "install",
      "block_args": ["-g", "--global"],
      "reason": "请使用 npx 或本地安装,而非全局安装。"
    }
  ]
}

错误处理

自定义规则采用静默回退的错误处理机制。如果您的配置文件无效,安全网将静默回退到仅使用内置规则:

场景 行为
未找到配置文件 静默 — 仅使用内置规则
空配置文件 静默 — 仅使用内置规则
JSON 语法无效 静默 — 仅使用内置规则
缺少必填字段 静默 — 仅使用内置规则
字段格式无效 静默 — 仅使用内置规则
规则名称重复 静默 — 仅使用内置规则

[!重要]
如果您手动添加或修改自定义规则,请务必使用 npx -y cc-safety-net --verify-config 或编码代理中的 /verify-custom-rules 斜杠命令对其进行验证。

阻断输出格式

当自定义规则阻止某个命令时,输出中会包含规则名称:

被安全网阻止

原因:[block-git-add-all] 请使用 'git add <具体文件>',而不是一次性添加所有文件。

命令:git add -A

高级功能

严格模式

默认情况下,无法解析的命令会被允许通过。启用严格模式后,当钩子输入或 shell 命令无法被安全分析时(例如,JSON 格式无效、引号未闭合、bash -c 包装格式错误),系统将采取失败关闭策略:

export SAFETY_NET_STRICT=1

强硬模式

强硬模式会启用更为严格的安全检查,这可能会对正常工作流程造成干扰。您可以全局启用,也可以通过特定开关进行启用:

# 启用所有强硬检查
export SAFETY_NET_PARANOID=1

# 或者启用特定的强硬检查
export SAFETY_NET_PARANOID_RM=1
export SAFETY_NET_PARANOID_INTERPRETERS=1

强硬行为:

  • rm:即使在当前工作目录内,也会阻止非临时性的 rm -rf 命令。
  • 解释器:会阻止类似 python -cnode -eruby -eperl -e 这样的解释器单行命令(这些命令可能隐藏破坏性操作)。

Shell 包装检测

该防护机制会递归分析被 shell 包装的命令:

bash -c 'git reset --hard'    # 被阻止
sh -lc 'rm -rf /'             # 被阻止

解释器单行命令检测

能够检测隐藏在 Python/Node/Ruby/Perl 单行命令中的破坏性操作:

python -c 'import os; os.system("rm -rf /")'  # 被阻止

敏感信息脱敏

阻断消息会自动脱敏敏感数据(如令牌、密码、API 密钥),以防止日志中泄露机密信息。

审计日志记录

所有被阻断的命令都会被记录到 ~/.cc-safety-net/logs/<session_id>.jsonl 文件中,用于审计目的:

{"ts": "2025-01-15T10:30:00Z", "command": "git reset --hard", "segment": "git reset --hard", "reason": "...", "cwd": "/path/to/project"}

日志条目中的敏感数据会被自动脱敏。

许可证

MIT

版本历史

v0.8.22026/03/25
v0.8.12026/03/24
v0.8.02026/03/21
v0.7.12026/01/25
v0.7.02026/01/23
v0.6.22026/01/19
v0.6.02026/01/15
v0.5.12026/01/11
v0.5.02026/01/10
v0.4.12026/01/08
v0.4.02026/01/07
v0.3.22026/01/02
v0.3.12026/01/02
v0.3.02026/01/01
v0.2.02025/12/29
v0.1.02025/12/25

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.6k|★★★☆☆|今天
语言模型Agent开发框架

gpt4free

gpt4free 是一个由社区驱动的开源项目,旨在聚合多种可访问的大型语言模型(LLM)和媒体生成接口,让用户能更灵活、便捷地使用前沿 AI 能力。它解决了直接调用各类模型时面临的接口分散、门槛高或成本昂贵等痛点,通过统一的标准将不同提供商的资源整合在一起。 无论是希望快速集成 AI 功能的开发者、需要多模型对比测试的研究人员,还是想免费体验最新技术的普通用户,都能从中受益。gpt4free 提供了丰富的使用方式:既包含易于上手的 Python 和 JavaScript 客户端库,也支持部署本地图形界面(GUI),更提供了兼容 OpenAI 标准的 REST API,方便无缝替换现有应用后端。 其技术亮点在于强大的多提供商支持架构,能够动态调度包括 Opus、Gemini、DeepSeek 等多种主流模型资源,并支持 Docker 一键部署及本地推理。项目秉持社区优先原则,在降低使用门槛的同时,也为贡献者提供了扩展新接口的便利框架,是探索和利用多样化 AI 资源的实用工具。

66k|★★☆☆☆|2天前
插件语言模型Agent

gstack

gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置,旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战,gstack 提供了一套标准化解决方案,帮助开发者实现堪比二十人团队的高效产出。 这套配置特别适合希望提升交付效率的创始人、技术负责人,以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具,涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令(如 `/review` 进行代码审查、`/qa` 执行测试、`/plan-ceo-review` 规划功能),即可自动化处理从需求分析到部署上线的全链路任务。 所有操作基于 Markdown 和斜杠命令,无需复杂配置,完全免费且遵循 MIT 协议。gstack 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。

64.3k|★★☆☆☆|今天
Agent插件

meilisearch

Meilisearch 是一个开源的极速搜索服务,专为现代应用和网站打造,开箱即用。它能帮助开发者快速集成高质量的搜索功能,无需复杂的配置或额外的数据预处理。传统搜索方案往往需要大量调优才能实现准确结果,而 Meilisearch 内置了拼写容错、同义词识别、即时响应等实用特性,并支持 AI 驱动的混合搜索(结合关键词与语义理解),显著提升用户查找信息的体验。 Meilisearch 特别适合 Web 开发者、产品团队或初创公司使用,尤其适用于需要快速上线搜索功能的场景,如电商网站、内容平台或 SaaS 应用。它提供简洁的 RESTful API 和多种语言 SDK,部署简单,资源占用低,本地开发或生产环境均可轻松运行。对于希望在不依赖大型云服务的前提下,为用户提供流畅、智能搜索体验的团队来说,Meilisearch 是一个高效且友好的选择。

57k|★★☆☆☆|今天
图像Agent数据工具

awesome-claude-skills

awesome-claude-skills 是一个精心整理的开源资源库,旨在帮助用户挖掘和扩展 Claude AI 的潜力。它不仅仅是一份列表,更提供了实用的“技能(Skills)”模块,让 Claude 从单纯的文本生成助手,进化为能执行复杂工作流的智能代理。 许多用户在使用 AI 时,常受限于其无法直接操作外部软件或处理特定格式文件的痛点。awesome-claude-skills 通过预设的工作流解决了这一问题:它不仅能教会 Claude 专业地处理 Word、PDF 等文档,进行代码开发与数据分析,还能借助 Composio 插件连接 Slack、邮箱及数百种常用应用,实现发送邮件、创建任务等自动化操作。这使得重复性任务变得标准化且可复用,极大提升了工作效率。 无论是希望优化日常办公流程的普通用户、需要处理复杂文档的研究人员,还是寻求将 AI 深度集成到开发管线中的开发者,都能从中找到适合的解决方案。其独特的技术亮点在于“技能”的可定制性与强大的应用连接能力,让用户无需编写复杂代码,即可通过简单的配置让 Claude 具备跨平台执行真实任务的能力。如果你希望让 Claude

51.3k|★★☆☆☆|今天
Agent插件