V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
echoVic
V2EX  ›  程序员

造了个 Cli Coding Agent,内置免费模型,开箱即用

  •  
  •   echoVic · 1 天前 · 608 次点击

    起因

    一直在用 Claude Code ( Anthropic 官方的 CLI 工具),体验很好,但是闭源的,想加点自己的功能没法搞。

    于是花了点时间逆向了一下源码,搞清楚了实现原理,然后自己复刻了一个。

    好处是:

    • 完全掌控,想加什么功能就加什么功能
    • 比如我加了个 Spec 模式(规格驱动开发),这是 Claude Code 没有的
    • 可以用自己喜欢的模型和 API Key
    • 顺便学习了一波 Agent 的实现原理

    既然都写了,就开源出来了。

    项目介绍

    Blade Code - 一个基于 React + Ink 的 AI 编程助手 CLI 工具。

    GitHub: https://github.com/echoVic/blade-code

    几个特点

    1. 真·开箱即用

    npx blade-code
    

    就这一行,不需要配置任何东西。内置了免费的 GLM-4.7 模型(智谱提供的),虽然不是最强的,但日常写代码够用了。

    当然你也可以配置自己的 API Key ,支持 OpenAI 、Claude 、Gemini 、Qwen 等等。

    2. 工具很全

    内置了 20+ 工具,基本覆盖了日常编码需求:

    • 文件读写、代码搜索(基于 ripgrep )
    • Shell 执行、Git 操作
    • Web 搜索、网页抓取
    • 任务管理、会话管理
    • ...

    3. 权限可控

    这个是我最在意的。提供了 5 种权限模式:

    • default: 敏感操作需要确认
    • autoEdit: 自动编辑文件,但其他操作需要确认
    • plan: 先规划后执行
    • spec: 规格驱动开发(我自己加的,写需求 → 生成规格 → 确认后执行)
    • yolo: 完全自动(慎用)

    还可以设置工具白名单/黑名单,精确控制 AI 能用哪些工具。

    4. MCP 支持

    支持 Model Context Protocol ,可以接入各种 MCP 服务器。比 Claude Desktop 的配置简单多了:

    blade mcp add filesystem
    blade mcp add github
    

    5. 会话管理

    支持多会话、会话恢复、会话 Fork 。写到一半想切换任务?没问题,随时恢复。

    使用体验

    基础用法

    # 交互模式
    blade
    
    # 直接提问
    blade "帮我重构这个函数"
    
    # 打印模式(适合管道)
    blade --print "写个快排" > sort.js
    

    实际场景

    场景 1: 代码审查

    blade "review 一下最近的改动"
    

    AI 会自动 git diff ,然后给出建议。

    场景 2: 生成文档

    blade --print "给这个项目写个 README" > README.md
    

    场景 3: 调试问题

    blade "帮我看看为什么测试失败了"
    

    AI 会读取测试输出,分析代码,给出修复建议。

    技术实现

    简单说几个有意思的点:

    1. 无状态 Agent 设计

    Agent 本身不保存状态,所有状态通过 context 传递。这样做的好处是:

    • 会话可以随时序列化/反序列化
    • 支持会话 Fork
    • 方便做分布式(虽然现在还没做)

    2. 工具系统

    基于 Zod 的工具定义和验证,类型安全,扩展方便。内置工具和 MCP 工具用同一套系统。

    3. React + Ink

    用 React 写 CLI 的体验还挺爽的,组件化、状态管理都很自然。Ink 的性能也不错。

    最后

    项目刚开源不久,肯定有不少 bug 和不完善的地方。欢迎试用,欢迎提 issue ,欢迎 PR 。

    如果觉得有用,给个 star 吧 ⭐️


    相关链接

    交流群 微信: VIc-Forever (备注「 Blade 」)


    P.S. 项目名叫 Blade 是因为想做一个"锋利"的工具,简单、快速、有效。Logo 是一把剑 🗡️

    6 条回复    2026-01-14 10:38:26 +08:00
    buaishi
        1
    buaishi  
       1 天前
    冒昧问一下,对比 opencode ?
    echoVic
        2
    echoVic  
    OP
       1 天前
    @buaishi OpenCode 项目很赞!我做 Blade Code 主要是:

    1. 想深入理解 Claude Code 的实现原理,所以逆向了一遍
    2. 想加一些自己的功能,比如 Spec 模式(规格驱动开发)


    两个项目定位不太一样,OpenCode 更通用,Blade Code 更贴近 Claude Code
    的使用体验。

    建议都试试,或者可以用我的项目二开
    iorilu
        3
    iorilu  
       1 天前
    想问问

    你说的逆向 claude code, 是指包含了所有 claude code 功能, 并在此基础上强化了吗

    还是说, 只是学习了 claude code 的代码架构原理等, 自己重新开发的
    echoVic
        4
    echoVic  
    OP
       1 天前
    @iorilu claude code 没有源码,所以看 claude code 压缩后的代码,根据自己的理解重新开发了一个,也加入了自己的一些想法
    keakon
        5
    keakon  
       22 小时 23 分钟前
    其实可以参考 https://github.com/NoeFabris/opencode-antigravity-auth 来白嫖 Antigravity 。
    自己的 GLM Coding Plan 可能存在盗用的情况。
    echoVic
        6
    echoVic  
    OP
       9 小时 38 分钟前
    @keakon 支持 Antigravity auth 的
    盗用就盗用吧,这个也不贵
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3254 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:16 · PVG 20:16 · LAX 04:16 · JFK 07:16
    ♥ Do have faith in what you're doing.