Coding & Development🤖claude
Learn LikeCode
Claude Code 源码逆向恢复项目 | Source Map 逆向 · 架构分析 · 可运行版本 | 1900+ 文件 · 51万行代码 · 12章节课程
Quick Start
Install this Skill
npx skills add Harzva/learn-likecc# Learn LikeCode
> 从 Claude Code 学起,但不止于 Claude Code。一个面向「源码学习 + 可运行复刻 + 自由换模型」的 likecode 工程。
[](https://harzva.github.io/learn-likecc/)
[](https://github.com/Harzva/learn-likecc)
[](LICENSE)
---

## 顶部重点:我们现在最重要的事
这不是单纯“把 Claude Code 跑起来”的仓库了。
我们正在基于 **Claude Code 2.1.88 恢复工程**,持续做一批**来自真实使用需求**的定制化增强。
### 已经落地的关键定制
- ✅ **多 Provider 自由切换**
- 通过项目本地 `modelRoutes`,按模型自动切换 `baseURL / authToken / headers`
- ✅ **模型切换不再卡死在固定列表**
- `/model` 菜单会自动展示本地已经配置好的外部模型
#### 这类本地配置现在可以这样写
下面是一个已经脱敏过的示例。重点不是某一家 provider,而是:
- `env` 里继续放默认 Claude 相关模型名与基线地址
- `modelRoutes` 里按“模型名 => provider 路由”做映射
- `/model` 菜单会直接读取这里已经配好的外部模型并展示出来
```json
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.provider.example",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251015",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5-20250929",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-5-20251101"
},
"modelRoutes": {
"minimax/minimax-m2.5": {
"baseURL": "https://api.provider.example",
"authToken": "sk-provider-route-example-minimax",
"headers": {
"x-provider": "minimax"
}
},
"claude-sonnet-4-5-20250929": {
"baseURL": "https://api.provider.example",
"authToken": "sk-provider-route-example-sonnet"
}
},
"model": "minimax/minimax-m2.5",
"permissions": {
"defaultMode": "bypassPermissions"
}
}
```
这意味着:
- 切到 `minimax/minimax-m2.5` 时,会自动命中它自己的 `baseURL / authToken / headers`
- 切到 `claude-sonnet-4-5-20250929` 时,会自动走另一条 provider 路由
- `/model` 菜单不需要再手写死固定选项,而是把你已经配置在本地的模型直接列出来
- ✅ **配置自动重载**
- 修改 `.claude/settings.json` / `.claude/settings.local.json` 里的 API 与关键配置后,不需要退出 agent-cli 再重新开
- ✅ **终端内可直接查看详细配置**
- 支持 `/show`、`/show:global`、`/show:user`、`/show:project`、`/show:slash`
- ✅ **启动界面配置可见性**
- 启动头直接显示 Global / Project / Local 三层 `.claude` 摘要、当前命中的 `claude` 路径、当前工程仓库地址
- ✅ **启动界面开始给出 Web 工作台入口**
- 启动头现在会直接显示本地 `localhost` 工作台入口,方便用户不离开初始界面就能跳到 Web 侧观察台
- ✅ **启动 logo 已收成 Like Code 语义**
- 启动头图已进一步收成蓝色爱心,`Like` 以更大的多行字样压在爱心正上方,右侧标题改为更克制的 `code · Harzva restored · v2.1.88`
- ✅ **第三方兼容网关稳定性修复**
- 兼容非标准 `headers` 返回结构,避免切 provider 后直接崩掉
- ✅ **localhost Web 工作台不再只显示 API 索引**
- 现在打开根路径会直接渲染 dashboard,把 `session / pane / transcript / subagent / events` 结构化展示出来
- ✅ **localhost Web 工作台的视觉层已经重做**
- 当前页面已经从“开发态 JSON 面板”收成了更像正式工作台的结构:顶部总览、左侧 pane 导航、中间 workflow 主视图、右侧 subagent / events 观察栏
- ✅ **subagent 传输路径已经明确**
- 当前 Web 侧的 subagent 摘要主要来自 CLI 进程内的 `AppState.tasks`,再结合 `sessionTabs` 的 pane 绑定关系做归属展示
- ✅ **workflow 数据底座已经开始成形**
- 当前 coding 过程、对话历史和工作流方向,已经可以先通过 `pane transcript` 快照与 `events` 时间线接口对外暴露
- ✅ **Web UI transcript 已经开始细化**
- 当前 `pane transcript` 已额外输出 `thinking / tool_use / tool_result` 卡片和 pane 内 workflow 事件,Web 侧已经可以先按“消息流 + 卡片流 + 时间线”三层展示
- ✅ **pane 的 todo 恢复继续往真隔离推进**
- 初始化进入当前 active pane 时,也会优先恢复该 pane 自己保存下来的 todo 快照,而不只是继续沿用残留的全局 todo
- ✅ **workflow 回放继续细化**
- 当前 `pane transcript` 已继续补出 `stages`,并开始给 tool 卡片补 `input / output / toolUseId`,Web 侧现在可以更明确地看 prompt、thinking、tool、response 这些阶段节点
- ✅ **新 pane/tab 不再默认继承上一格的 todo 残留**
- 新开的 tab 会以空 transcript 与空 todo 快照起步,切过去时不会继续沿用上一格的 todo 状态
- ✅ **pane 输入态也开始按窗口保存和恢复**
- 当前 active pane 的 `inputMode / pastedContents / stashedPrompt` 已开始绑定到 pane,本轮继续减少不同 pane 之间共享同一份输入态的情况
- ✅ **workflow 已开始具备 turn replay**
- `pane transcript` 现在还会输出 `turns / toolPairs`,开始补“这一轮 prompt 触发了哪些工具、最后回到了什么 response”这类跨阶段回放线索
- ✅ **toolPairs 已经直接进 Web UI**
- 现在首页不只是接口里有 `toolPairs`,而是已经直接有 `Tool Pairs` 展示区,可以看每个工具调用的输入、输出、所属 turn 和 toolUseId
- ✅ **toolChains 已开始支撑跨 turn 回放**
- 当前 `pane transcript` 已继续补出 `toolChains`,并给 `toolPairs` 增加 `chainId / step / previous / next`,Web 侧现在能更清楚地看到“同一条工具链跨多条 message 是怎么串起来的”
- ✅ **tool progress 也开始接入工作流链**
- 当前 `progress` 消息也会开始挂到对应的 `toolUseId` 上,所以真实工具执行时,就算还没等到最终 `tool_result`,Web 侧也能先看到中间过程
- ✅ **启动头的 Like Code 已统一成蓝色**
- 蓝色爱心、蓝色 `Like` 和蓝色 `code` 已统一成一套更一致的品牌头图
- ✅ **pane 输入开关继续往窗口内收拢**
- 当前 pane 除了 `inputMode / pastedContents / stashedPrompt`,还会继续保存和恢复 `vimMode / history search / bashes dialog / help / message selector` 这些输入相关开关,减少不同 pane 共用一份 REPL 输入状态
- ✅ **message selector 的预选消息也开始跟随 pane**
- 当前 pane 会继续记录“准备恢复哪一条用户消息”,这样切 pane 之后再回来,不会把 message selector 的预选目标串到别的窗口里
- ✅ **pane 的对话节奏也开始独立**
- 当前 pane 会继续保存和恢复自己的 `conversationId / submitCount`,切 pane 时不再总共用同一份对话键空间与提交计数,更接近真正独立的多窗口会话
- ✅ **transcript 查看状态也开始跟随 pane**
- 当前 pane 会继续保存和恢复 `show all / dump mode` 这些 transcript 查看状态,左边展开全文、右边保持折叠时,不会再互相污染
- ✅ **transcript 搜索词也开始跟随 pane**
- 当前 pane 会继续保存和恢复自己的 transcript 搜索词,切 pane 时不会再把一格里的搜索上下文串到另一格里
- ✅ **transcript 搜索条打开状态也开始跟随 pane**
- 当前 pane 正在 transcript 搜索时,切走再回来不会统一掉回关闭态,搜索条本身也会跟着 pane 恢复
- ✅ **transcrip
... (truncated)Repository
103stars
18forks
Details
Related Skills
More coding & development skills you might like
Reticle
Coding & DevelopmentAI agents can generate code, but still struggle to understand what they build. Reticle brings Jev-style machine-native runtime perception to web & desktop applications.
🤖claude🌐universal
1.2k
190
View
agentscope-java
Coding & DevelopmentExpert Java developer skill for AgentScope Java framework - a reactive, message-driven multi-agent system built on Project Reactor. Use when working with reactive programming, LLM integration, agent orchestration, multi-agent systems, or when the user mentions AgentScope, ReActAgent, Mono/Flux, Project Reactor, or Java agent development. Specializes in non-blocking code, tool integration, hooks, pipelines, and production-ready agent applications.
🌐universal
6.0k
1.5k
View
ospec
Coding & DevelopmentDocument-driven OSpec workflow for initialization, change/goal routing, validation, archiving, and durable project knowledge.
✨gemini🤖claude💬gpt🌐universal
524
34
View
misakanet-failure-memory
Coding & Development📚 A zero-dependency, git-backed micro-lesson library for AI Agents to asynchronously share and search verified debugging experience. Python stdlib only. | https://misakanet.org
🤖claude⌨️cursor🌐universal
424
158
View