npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mumucc

v0.4.2

Published

Open-source AI coding assistant CLI with multi-model support (Anthropic, OpenAI/GPT, DeepSeek, GLM, Ollama, etc.), MCP integration, agent swarms, and out-of-the-box developer experience.

Readme

Open Claude Code — 开源 Claude Code CLI

本项目是基于 Claude Code CLI 源码二次开发的开源项目,新增了三方模型支持、企业级代理配置等功能。


项目起源

本项目基于 Claude Code CLI 源码进行开源开发,新增了三方模型支持、企业级代理配置等企业级功能。

  • 语言: TypeScript
  • 运行时: Bun
  • 终端 UI: React + Ink (React for CLI)
  • 规模: ~2,000 个文件,516,000+ 行代码

新增功能 ✨

三方 Anthropic 兼容模型支持

在保留原有 Anthropic 登录/认证的基础上,新增了对第三方 Anthropic 兼容 API 供应商的完整支持。

核心能力:

| 功能 | 说明 | |------|------| | 多供应商配置 | 在 settings 中配置多个三方厂商的 endpoint 和模型 | | /login 交互式登录 | 支持选择 Anthropic 或三方供应商,交互式输入 API key | | /model 模型切换 | 支持在所有平台模型间自由切换,包括三方模型 | | Agent 多模型调度 | AgentTool 子 Agent 可指定任意平台的模型 | | 动态模型发现 | Agent 工具描述动态列出所有可用三方模型 | | Allowlist 兼容 | 现有 Anthropic allowlist 不会阻断三方模型 |

模型标识格式: providerId:modelId(例如 minimax:MiniMax-M2.7

内置供应商预设:

| 供应商 | Endpoint | 模型 | |--------|----------|------| | MiniMaxCodingPlan | https://api.minimaxi.com/anthropic | MiniMax-M2.7, MiniMax-M2.7-highspeed | | GLMCodingPlan | https://open.bigmodel.cn/api/anthropic | glm-5-turbo, glm-5.1 | | KIMICodingPlan | https://api.kimi.com/coding | kimi-for-coding | | ALiyunCodingPlan | https://coding.dashscope.aliyuncs.com/apps/anthropic | qwen3.5-plus, glm-5 |

API Key 解析优先级:

  1. apiKeyEnv 环境变量
  2. apiKeyenv:VAR_NAME 引用
  3. 通用环境变量 PROVIDER_<ID>_API_KEY
  4. apiKey 字面值

/login 升级

原有的 /login 命令从单一 Anthropic OAuth 流程升级为多供应商交互式登录:

/login
  → 选择供应商列表
    ├─ Anthropic (Official) → 原有 OAuth 浏览器流程
    ├─ MiniMaxCodingPlan    → 输入 API key → 保存到 settings
    ├─ GLMCodingPlan        → 输入 API key → 保存到 settings
    ├─ KIMICodingPlan       → 输入 API key → 保存到 settings
    └─ ALiyunCodingPlan     → 输入 API key → 保存到 settings

Agent 多模型调度

主 Agent 可以在 AgentTool 调用中通过 model 参数自由指定任意已配置平台的模型:

{
  "name": "Agent",
  "input": {
    "prompt": "帮我搜索这个 bug",
    "model": "minimax:MiniMax-M2.7",
    "description": "Search for bug"
  }
}

模型解析优先级链:

| 优先级 | 来源 | 说明 | |--------|------|------| | 1(最高) | CLAUDE_CODE_SUBAGENT_MODEL 环境变量 | 全局强制覆盖 | | 2 | AgentTool model 参数 | 主 Agent 在 tool_use 中指定 | | 3 | Agent 定义文件 model frontmatter | ~/.claude/agents/ 中声明 | | 4(最低) | 继承父级模型 | 默认行为 |


目录结构

src/
├── main.tsx                 # 入口(Commander.js CLI 解析器)
├── commands.ts              # 命令注册
├── tools.ts                 # 工具注册
├── Tool.ts                  # 工具类型定义
├── QueryEngine.ts           # LLM 查询引擎(核心 Anthropic API 调用者)
├── context.ts               # 系统/用户上下文收集
├── cost-tracker.ts          # Token 成本追踪
│
├── commands/                # 斜杠命令实现(~50 个)
├── tools/                   # Agent 工具实现(~40 个)
├── components/              # Ink UI 组件(~140 个)
├── hooks/                   # React 钩子
├── services/                # 外部服务集成
├── screens/                 # 全屏 UI(Doctor、REPL、Resume)
├── types/                   # TypeScript 类型定义
├── utils/                   # 工具函数
│
├── bridge/                  # IDE 集成桥接(VS Code、JetBrains)
├── coordinator/             # 多 Agent 协调器
├── plugins/                 # 插件系统
├── skills/                  # 技能系统
├── keybindings/             # 快捷键配置
├── vim/                     # Vim 模式
├── voice/                   # 语音输入
├── remote/                  # 远程会话
├── server/                  # 服务器模式
├── memdir/                  # 记忆目录(持久化记忆)
├── tasks/                   # 任务管理
├── state/                   # 状态管理
├── migrations/              # 配置迁移
├── schemas/                 # 配置 Schema(Zod)
├── entrypoints/             # 初始化逻辑
├── ink/                     # Ink 渲染器封装
├── buddy/                   # 伴侣精灵(彩蛋)
├── native-ts/               # 原生 TypeScript 工具
├── outputStyles/            # 输出样式
├── query/                   # 查询管线
└── upstreamproxy/           # 代理配置

核心架构

1. 工具系统 (src/tools/)

Claude Code 可调用的每个工具都实现为自包含模块,包含输入 schema、权限模型和执行逻辑。

| 工具 | 说明 | |------|------| | BashTool | Shell 命令执行 | | FileReadTool | 文件读取(图片、PDF、Notebook) | | FileWriteTool | 文件创建/覆盖 | | FileEditTool | 文件局部修改(字符串替换) | | GlobTool | 文件模式匹配搜索 | | GrepTool | 基于 ripgrep 的内容搜索 | | WebFetchTool | 获取 URL 内容 | | WebSearchTool | 网页搜索 | | AgentTool | 子 Agent 生成 | | SkillTool | 技能执行 | | MCPTool | MCP 服务器工具调用 | | LSPTool | 语言服务器协议集成 | | NotebookEditTool | Jupyter Notebook 编辑 | | TaskCreateTool / TaskUpdateTool | 任务创建与管理 | | SendMessageTool | Agent 间消息传递 | | TeamCreateTool / TeamDeleteTool | 团队 Agent 管理 | | EnterPlanModeTool / ExitPlanModeTool | 计划模式切换 | | EnterWorktreeTool / ExitWorktreeTool | Git worktree 隔离 | | ToolSearchTool | 延迟工具发现 | | CronCreateTool | 定时触发器创建 | | RemoteTriggerTool | 远程触发器 | | SleepTool | 主动模式等待 | | SyntheticOutputTool | 结构化输出生成 |

2. 命令系统 (src/commands/)

用户通过 / 前缀调用的斜杠命令。

| 命令 | 说明 | |------|------| | /commit | 创建 git 提交 | | /review | 代码审查 | | /compact | 上下文压缩 | | /mcp | MCP 服务器管理 | | /config | 设置管理 | | /doctor | 环境诊断 | | /login / /logout | 认证(已升级支持三方供应商) | | /model / /models | 模型切换(已升级支持三方模型) | | /memory | 持久化记忆管理 | | /skills | 技能管理 | | /tasks | 任务管理 | | /vim | Vim 模式切换 | | /diff | 查看变更 | | /cost | 查看使用成本 | | /theme | 更换主题 | | /context | 上下文可视化 | | /pr_comments | 查看 PR 评论 | | /resume | 恢复历史会话 | | /share | 分享会话 | | /desktop | 桌面应用交接 | | /mobile | 移动应用交接 |

3. 服务层 (src/services/)

| 服务 | 说明 | |------|------| | api/ | Anthropic API 客户端、文件 API、启动引导 | | mcp/ | Model Context Protocol 服务器连接与管理 | | oauth/ | OAuth 2.0 认证流程 | | lsp/ | 语言服务器协议管理 | | analytics/ | 基于 GrowthBook 的特性开关和分析 | | plugins/ | 插件加载器 | | compact/ | 会话上下文压缩 | | policyLimits/ | 组织策略限制 | | remoteManagedSettings/ | 远程托管设置 | | extractMemories/ | 自动记忆提取 | | tokenEstimation.ts | Token 计数估算 | | teamMemorySync/ | 团队记忆同步 |

4. 桥接系统 (src/bridge/)

连接 IDE 扩展(VS Code、JetBrains)与 Claude Code CLI 的双向通信层。

  • bridgeMain.ts — 桥接主循环
  • bridgeMessaging.ts — 消息协议
  • bridgePermissionCallbacks.ts — 权限回调
  • replBridge.ts — REPL 会话桥接
  • jwtUtils.ts — 基于 JWT 的认证
  • sessionRunner.ts — 会话执行管理

5. 权限系统 (src/hooks/toolPermission/)

在每次工具调用时检查权限。根据配置的权限模式(defaultplanbypassPermissionsauto 等)提示用户批准/拒绝或自动解析。

6. 特性开关

通过 Bun 的 bun:bundle 实现构建时死代码消除:

import { feature } from 'bun:bundle'

// 未激活的代码在构建时完全剥离
const voiceCommand = feature('VOICE_MODE')
  ? require('./commands/voice/index.js').default
  : null

主要开关:PROACTIVEKAIROSBRIDGE_MODEDAEMONVOICE_MODEAGENT_TRIGGERSMONITOR_TOOL


重要文件说明

QueryEngine.ts(~46K 行)

LLM API 调用的核心引擎。处理流式响应、工具调用循环、思考模式、重试逻辑和 Token 计数。

Tool.ts(~29K 行)

定义所有工具的基础类型和接口——输入 schema、权限模型和进度状态类型。

commands.ts(~25K 行)

管理所有斜杠命令的注册和执行。使用条件导入按环境加载不同命令集。

main.tsx

基于 Commander.js 的 CLI 解析器 + React/Ink 渲染器初始化。启动时并行化 MDM 设置、钥匙串预取和 GrowthBook 初始化以加快启动速度。


技术栈

| 类别 | 技术 | |------|------| | 运行时 | Bun | | 语言 | TypeScript(严格模式) | | 终端 UI | React + Ink | | CLI 解析 | Commander.js(extra-typings) | | Schema 验证 | Zod v4 | | 代码搜索 | ripgrep(通过 GrepTool) | | 协议 | MCP SDK、LSP | | API | Anthropic SDK | | 遥测 | OpenTelemetry + gRPC | | 特性开关 | GrowthBook | | 认证 | OAuth 2.0、JWT、macOS Keychain |


设计模式

并行预取

启动时间通过并行预取 MDM 设置、钥匙串读取和 API 预连接优化——在重量级模块求值开始前执行。

// main.tsx — 作为副作用在其他 import 之前触发
startMdmRawRead()
startKeychainPrefetch()

惰性加载

重量级模块(OpenTelemetry ~400KB、gRPC ~700KB)通过动态 import() 延迟到实际需要时才加载。

Agent 集群

子 Agent 通过 AgentTool 生成,coordinator/ 处理多 Agent 编排。TeamCreateTool 支持团队级并行工作。

技能系统

可复用工作流定义在 skills/ 中,通过 SkillTool 执行。用户可添加自定义技能。

插件架构

内置和第三方插件通过 plugins/ 子系统加载。


主要新增功能

| 文件 | 类型 | 说明 | |------|------|------| | src/utils/model/thirdPartyProviders.ts | 新增 | 三方供应商核心:注册、查找、客户端创建、内置预设 | | src/commands/login/ThirdPartyLogin.tsx | 新增 | 三方供应商交互式登录组件 | | src/commands/login/login.tsx | 修改 | 新增 LoginRouter 供应商选择 | | src/services/api/client.ts | 修改 | 新增 getAnthropicClientForModel() 路由 | | src/services/api/claude.ts | 修改 | 流式/非流式查询支持三方客户端 | | src/utils/model/model.ts | 修改 | 模型解析、显示名、API 标准化 | | src/utils/model/agent.ts | 修改 | Agent 模型解析、选项列表 | | src/utils/model/modelOptions.ts | 修改 | 模型选择器注入三方模型 | | src/utils/model/modelAllowlist.ts | 修改 | Allowlist 三方模型兼容 | | src/utils/settings/types.ts | 修改 | Settings schema 新增 providers 字段 | | src/commands/model/index.ts | 修改 | 新增 /models 别名 | | src/commands/model/model.tsx | 修改 | 模型验证跳过三方模型 | | src/tools/AgentTool/AgentTool.tsx | 修改 | model 参数扩展为 string,动态描述 |


许可证

本项目采用 MIT 许可证开源。