@cnwenf/occ
v2.1.367
Published
> 安全、开源的编码智能体 —— 能力完全对齐 Claude Code。
Readme
Open C Code (OCC)
安全、开源的编码智能体 —— 能力完全对齐 Claude Code。
English · 简体中文
这是什么
Open C Code(OCC) 是一个开源的编码智能体。能力与 Claude Code 对齐(当前跟踪 2.1.286:OCC-143 追齐轮(2026-10-02)落地了字节级验证的 2.1.286 子集(88 个 changelog 条目逐条 triage + v285↔v286 linux-x64 ELF 全量二进制对比,官方 v286 md5 7a1a1bf1…,仅 strings/dd 取证、绝不执行官方二进制)——重点:整套 v286 密钥脱敏引擎重写逐字节移植进 src/utils/secretRedaction/(changelog #17–21:Bearer/Basic 前置于键名时的凭证泄露、percent-encoded token 仅部分打码、键名含零宽/不可见字符、URL 密码含标点/引号/]/&/第二个 @ 或越过 / 进入 [::1] 方括号主机、transcript JSONL 解析→深度脱敏→重序列化保持合法 JSON——api-request 行整行丢弃、不可判定行以 line-withheld 占位),并接线到 feedback 提示词构建、/feedback 提交与会话共享 transcript 上传;24 个新字节级测试 + 全套件 git-stash A/B 零回归;轮中官方发布 2.1.287,按轮次范围纪律记入下一轮;完整台账在 docs/upstream-version-gap-occ143-2026-10.md;OCC-102 追齐轮(2026-10-01)落地了字节级验证的 2.1.285 子集(136 个 changelog 条目逐条 triage + v284↔v285 linux-x64 ELF 全量二进制对比,官方 v285 md5 95fadb74…,仅 strings/dd 取证、绝不执行官方二进制)——重点:#85 后台 shell 期限回收子系统(30 分钟默认 / 2 小时上限、先通知后 kill、<note> 用量指引)、#54 max-turns 退出提交恢复,以及安全移植集——sandbox 受信层级授权收敛(项目/本地设置不能再重开被拒的文件读路径或扩大网络白名单)、allowedProviders 管理式设置(完整解析+执行架构)、fork 子代理权限模式继承 + ExitPlanMode fork 拒绝、OS 拒读管理式设置 warn+start、ANTHROPIC_AUTH_TOKEN 组织策略、git URL 具名拒绝 + worktree/teleport SSH fail-fast、MCP CLI 输出净化——外加 git/mcp/plugin 批量移植(plugin CLI 第 9–13 项 PORTED-core + STAGED-wiring),完整台账在 docs/upstream-version-gap-occ102-2026-10.md;OCC-101 追齐轮(2026-09-30)落地了字节级验证的 2.1.284 子集(16 个二进制条目逐条 triage + v283↔v284 linux-x64 ELF 全量二进制对比,官方 v284 md5 16a758eb…)——重点:Sonnet 5.5 发布(claude-sonnet-5-5 目录注册,0→24 ELF 命中 + SONNET_ID 翻转;目录/别名/[1m] 变体/成本/effort/上下文/Vertex 全套对齐,default_effort:"medium"、max_tokens {default:128000}、知识截止 "June 2026"、SKILL_MODEL_VARS 逐字节一致,约 18 个文件),以及安全移植集——Foundry 资源名校验守卫、rules 文件 symlink 逃逸 → 外部导入审批链、elicitation hook {"decision":"block"} 生效、/help 的 /keybindings to customize 门控默认值对齐官方 true(插桩项 3/5 如实 STAGED),完整台账在 docs/upstream-version-gap-occ101-2026-09.md,679 文件全量套件 6977 pass + 真实 REPL tmux e2e;OCC-138 追齐轮(2026-09-27)落地了 2.1.283 的可移植子集(P1a sandbox 逐字段 fail-closed 策略机制、claude-ai 保留命名空间回退、拼写错误 keybinding 修饰符校验、x-claude-code-prompt-id 网关提示头、OTEL tool.output span 事件,合并 OCC-98 轮的管理式模型治理键与完整 prompt-id 逐消息解析器,台账见 docs/upstream-version-gap-occ138.md/-occ98-2026-09.md);OCC-97 追齐轮(2026-09-26)落地了 2.1.282 的 P1 设置信任安全集群(A–E,含中间模式 :* 规则修复、策略源严格解析、telemetry 环境变量块名单、frontmatter 授权门控、macOS kernel path/symlink 门),台账见 docs/upstream-version-gap-occ97-2026-09.md;OCC-96 落地 2.1.281 的 39 个字节级验证移植(含 9 项安全移植,S1 dangerous-rm 命令替换目标守卫),OCC-134 落地 2.1.280 子集;2.1.276 已完全对齐(经 OCC-90 + OCC-130);2.1.271–2.1.275 部分对齐(各轮台账见对应 docs/upstream-version-gap-occ*.md);2.1.270→2.1.272 增量中仍未落地:/config 全屏鼠标支持(PORTABLE-LARGE)与 spinner 状态文案阶梯(STAGED),另有先于 2.1.270 已存在的 sandbox 按命令 allowed_domains 缺口;此前对齐至 2.1.270 经 OCC-122/OCC-123/OCC-84/OCC-124/OCC-85/OCC-125 落地)。代码全开放、可审计、无暗门,数据由你掌控。
如果你担心闭源 CLI 可能植入后门、担心代码与凭据被上传到不可审计的服务,OCC 就是为你准备的:全部源码开放、无混淆,构建产物可由源码复现,API 凭据只发往你自己配置的端点。
定位
- 🔓 开源可审计 —— 全部源码开放,无混淆,可逐行审查。
- 🛡️ 安全透明 —— 无遥测黑盒、无隐藏上报;行为由你监督。
- 🎯 能力对齐 —— REPL、工具系统、权限模型、MCP、子代理、斜杠命令……与 Claude Code 一致。
- 🔧 数据自主 —— API Key / Bedrock / Vertex / Azure 凭据留在本机,请求只发往你指定的端点。
现状
- 跟踪 Claude Code
2.1.286(2.1.286 对齐——OCC-143 追齐轮落地整套 v286 密钥脱敏引擎重写(#17–21:Bearer/Basic 前置键名、percent-encoded token、不可见字符键名、URL 密码标点/方括号主机、JSONL 安全 transcript 脱敏)+ feedback/会话共享接线,88 条目 triage + v285↔v286 ELF 全量对比,24 个新测试 + stash A/B 零回归,台账见docs/upstream-version-gap-occ143-2026-10.md;2.1.285 部分对齐——OCC-102 追齐轮落地 #85 后台 shell 期限回收 + #54 max-turns 退出提交 + 安全移植集(sandbox 受信层级授权收敛、allowedProviders管理式设置、fork 权限继承、OS 拒读管理式设置 warn+start、git URL 具名拒绝 + SSH fail-fast、MCP CLI 输出净化)+ git/mcp/plugin 批量移植,136 条目 triage + v284↔v285 ELF 全量对比,台账见docs/upstream-version-gap-occ102-2026-10.md;2.1.284 部分对齐——OCC-101 追齐轮落地 Sonnet 5.5 发布 + 安全移植集:Foundry 资源名校验守卫、rules symlink 逃逸审批链、elicitation hook block 生效、/keybindings to customize门控默认true,计划标的 3/5 如实 STAGED,台账见docs/upstream-version-gap-occ101-2026-09.md;2.1.283 部分对齐——OCC-138 轮落地 sandbox 逐字段 fail-closed 策略机制 +claude-ai保留命名空间回退等五集群,合并 OCC-98 管理式模型治理,台账见-occ138.md/-occ98-2026-09.md;2.1.282 部分对齐——OCC-97 轮落地 P1 设置信任安全集群 A–E,台账见-occ97-2026-09.md;2.1.281 部分对齐——OCC-96 轮落地 39 个字节级验证移植(含 9 项安全),台账见-occ96.md;2.1.280 部分对齐——OCC-134 轮落地 26 个字节级验证的移植,含 Opus 5.5 发布注册、symlink 落点写权限子系统等五项安全修复,台账见-occ134.md;2.1.276 完全对齐(经 OCC-90 + OCC-130);2.1.271–2.1.275 部分对齐(OCC-127/OCC-129/OCC-130 等轮,见对应台账);2.1.270→2.1.272 增量中仍未落地:/config全屏鼠标支持(PORTABLE-LARGE)与 spinner 状态文案阶梯(STAGED),另有先于 2.1.270 已存在的 sandbox 按命令allowed_domains缺口;此前对齐至 2.1.270 经 OCC-122/OCC-123/OCC-84/OCC-124/OCC-85/OCC-125 落地)。 - 代码库有约 1300 个不阻塞的
tsc类型错误(大量松散的unknown/never/{}类型),不影响 Bun 运行时执行。门槛是 Biome lint,不是tsc。 - 所有内部 feature flag(
feature(...))已被 polyfill 为false—— 内部功能(COORDINATOR_MODE、KAIROS、PROACTIVE 等)全部关闭。 - 已发布到 npm:
@cnwenf/occ。
安装
npm i -g @cnwenf/occ
occ需要有效的 Anthropic API Key(或 Bedrock / Vertex / Azure Foundry 凭据)。
快速开始
# 交互式 REPL
occ
# 管道模式(-p)
echo "say hello" | occ -p能力
核心系统
- REPL —— Ink 终端渲染,完整交互界面。
- API 层 —— Anthropic Direct、AWS Bedrock、Google Vertex、Azure Foundry(API Key + OAuth / 凭据刷新)。
- 查询循环 —— 流式对话、工具调用循环、自动压缩、token 追踪(
query.ts)。 - 会话引擎 —— 对话状态、归因、文件历史快照(
QueryEngine.ts)。 - 上下文 —— git status、CLAUDE.md 层级、memory 文件。
- 权限系统 —— plan / auto / manual 模式,YOLO 分类器、路径校验、规则匹配。
- Hook —— pre/post tool use,通过
settings.json配置。 - 会话恢复(
/resume)、诊断(/doctor)、自动压缩。
工具 —— 始终可用
Bash、FileRead、FileEdit、FileWrite、NotebookEdit、Agent(子代理派生:fork / async / background / remote)、WebFetch、WebSearch、AskUserQuestion、SendMessage、Skill、EnterPlanMode、ExitPlanMode、TodoWrite(v1)、Brief、TaskOutput、TaskStop、ListMcpResources、ReadMcpResource、SyntheticOutput。
工具 —— 条件启用
Glob、Grep(默认启用);TaskCreate/Get/Update/List(Todo v2)、EnterWorktree/ExitWorktree、TeamCreate/Delete(agent swarms)、ToolSearch、PowerShell(Windows)、LSP(ENABLE_LSP_TOOL)。
关闭 / Stub
- Feature flag 关闭(所有
feature()返回 false):Sleep、Cron、RemoteTrigger、Monitor、WebBrowser、Workflow、PushNotification 等。 - ANT-only stub:Tungsten、REPL、SuggestBackgroundPR。
- 移除 / 简化:Computer Use(
@ant/*)、多数*-napi包(audio/image/url/modifiers —— 仅color-diff-napi完整实现)、Analytics / GrowthBook / Sentry(空实现)、Magic Docs / Voice Mode / LSP server、Plugins / Marketplace、MCP OAuth(简化)。
斜杠命令
已实现数十个:/add-dir、/agents、/branch、/clear、/compact、/config、/context、/cost、/doctor、/effort、/export、/fast、/goal、/help、/init、/login、/mcp、/memory、/model、/permissions、/resume、/review、/status、/todo 等。
MCP
通过 Model Context Protocol 接入外部工具(--mcp-config、.mcp.json)。OAuth 流程已简化。
从源码构建
需要 Bun >= 1.3.11。
bun install
bun run dev # 从源码运行;版本号显示 2.1.286(dev polyfill;build 用 pkg.version 覆盖)即正常
bun run build # 产物:dist/cli.js(~26MB,5300+ 模块,单文件 bundle)
bun test # 测试套件
bun run lint # Biome lint(禁用格式化以避免大 diff)更详细的架构、入口/启动、工具系统、UI 层、模块状态说明见 CLAUDE.md。
项目结构
src/entrypoints/cli.tsx # 真正的入口(运行时 polyfill、宏)
src/main.tsx # Commander CLI 定义
src/query.ts # 主 API 查询循环
src/QueryEngine.ts # 会话编排
src/screens/REPL.tsx # 交互式 REPL 屏幕
src/services/api/ # API 客户端(Anthropic / Bedrock / Vertex / Azure)
src/tools/<Name>/ # 每个工具一个目录
src/ink/ # 自研 Ink 框架
packages/ # workspace stub(@ant/*、*-napi)许可证
MIT 许可证 — 详见 LICENSE。
