English | 中文
Claude Code 为什么不是只有一个交互式 REPL,而是同时支持 print、MCP serve、direct connect、bridge 等多种运行面?
l1-startupl12-repl-ui
main.tsxcli/print.tsreplLauncher.tsxsetup.tsbridge/bridgeMain.ts
runHeadlesslaunchReplmcp serveCLAUDE_CODE_ENTRYPOINTbridgeMain
- 同一个核心系统如何被包装成不同入口
- 为什么有些能力适合 REPL,有些更适合 headless / print
- bridge 为什么更像一个长期运行的会话服务,而不是一次性命令
main.tsx:入口判定、--print、mcp serve、connect/ssh/assistant 等早期 argv 处理replLauncher.tsx:交互式 REPL 启动包装setup.ts:86-92:messaging server 与 simple / bare 模式差异bridge/bridgeMain.ts:1980:export async function bridgeMain
Claude Code 的核心能力不是“绑定在 REPL 里”的,而是被多个运行面消费。理解这一层后,你会更容易看懂为什么很多初始化逻辑写在 main.tsx 和 setup.ts,而不是写死在 REPL 组件里。
- 为什么
--print不是“静默版 REPL”,而是独立运行面? bridgeMain这种长期运行模式和普通 CLI 单次执行在设计上有什么根本差异?- 如果要增加一种新的运行入口,最可能落在哪几个文件?