人工智能AI 应用Vibe Coding开发工具IDE桌面应用【免费下载链接】nezhaCode Editor for the AI Agents Era. Run multiple Claude Code and Codex agents across projects on your machine.项目地址https://gitcode.com/gh_mirrors/nezha7/nezha点击查看免费下载Nezha哪吒是一款专为 AI 编程打造的跨平台轻量级 IDE它的核心亮点之一是会话自动发现无需任何 API Key、无需修改 Agent 源码它就能实时追踪 Claude Code 与 Codex 的每一次对话自动识别等待用户输入本轮已完成等状态并可视化回放会话详情。本文带你拆解这套零 API 集成背后的完整技术细节看看 Nezha 是如何读懂两个 AI Agent 的。1. 核心问题AI Agent 的对话记录藏在哪儿很多人以为 Nezha 调用了 Claude 或 OpenAI 的接口来获取对话内容——恰恰相反。它的思路是每个 Agent 会话在本地都会落盘一个JSONL 转录文件一行一条 JSON 事件Nezha 只需要找到这个文件、盯住它、逐行解读新增内容就能还原整个会话并推断状态。两个 Agent 的会话文件位置各不相同Agent会话文件位置文件特征Claude Code~/.claude/projects/编码后的项目路径/session-id.jsonl文件名即会话 UUIDCodex项目/.codex/sessions/或~/.codex/sessions/文件名以rollout-开头、.jsonl结尾其中 Claude 的路径编码规则很巧项目路径中所有非字母数字的字符包括/都替换成-例如/Users/me/my-app→Users-me-my-app。定位与编码逻辑见 claude_sessions_dir_for_projectCodex 侧的双根目录扫描见 codex_sessions_roots。2. 发现通路一/status输出流监听通用兜底方案这是兼容所有版本的基础方案整个链路全部由 pty.rs 与 session.rs 完成启动 AgentNezha 用 PTY 伪终端拉起claude或codex进程同时拿到它的输出流悄悄发送/statusClaude 在启动 1.5 秒后发送一次Codex 则等收到首个输出后再等 1 秒因为此时会话可能尚未创建发送时机判断逻辑见 should_send_status_command从输出中提取 Session ID剥离 ANSI 颜色码后搜索Session ID:/Session:关键词并校验 UUID 格式。这里有个易踩的坑——两个 Agent 都使用光标定位转义序列渲染状态面板剥离 ANSI 后多行会塌缩成一行所以代码特意用整串查找而非逐行匹配参见 strip_ansi 与 extract_claude_status_session_id失败自动重试发送后 3 秒没提取到 ID 就重发最多 5 次Codex 还有 8 秒全局兜底相关重试逻辑在 run_status_session_watcher。3. 发现通路二--session-id预置快速路径Claude 新版专属Claude Code 自2.1.87版本起支持在启动时直接指定会话 ID。Nezha 会探测版本若满足条件则启动前预生成一个 UUID通过--session-id参数传给 Claude见 pty.rs 命令构建跳过/status探测直接后台轮询等待对应的uuid.jsonl文件落盘最多等 10 秒逻辑在 register_and_watch_session若文件始终没出现如空 prompt 启动进入交互模式的场景则进入懒加载挂载先注册一条占位会话后台最长等待 2 分钟文件一旦出现立即升级为真实会话并开始监听见 spawn_claude_lazy_session_attach若预置路径失败自动回退到/status方案保证可用性调度入口是 spawn_status_session_watcher。4. 发现通路三Hook 事件流最优雅的现代方案对版本足够新的环境Claude ≥ 2.1.87、Codex ≥ 0.131.0 且本机有 Node.jsNezha 会启用更高效的Hook 链路一次性安装写入共享 Hook 脚本到~/.nezha/hooks/nezha-hook.mjs并通过--settings参数注入 Claude、以标记块注入 Codex 的配置文件——不破坏用户已有的任何配置运行时注入启动 Agent 时附带NEZHA_TASK_ID、NEZHA_EVENT_DIR等环境变量见 setup_nezha_envHook 脚本据此把 Agent 触发的生命周期事件SessionStart、Stop、PostToolUse等统一落盘到~/.nezha/events/task_id/events.jsonl事件驱动监听event_watcher.rs 中的长驻线程用文件监听外加 1 秒兜底轮询增量读取该文件SessionStart事件直接携带session_id和转录文件路径一步完成会话注册见 handle_session_start完全无需/status探测。三条通路的对比一目了然通路适用条件延迟特点Hook 事件流新版 Agent Node 环境近乎即时信息最全还能拿到审批/完成等状态信号--session-id预置Claude ≥ 2.1.87约 10 秒内跳过探测UUID 已知/status监听所有版本1.5 秒起最多重试 5 次通用兜底永不失效系统按Hook 可用 → 预置 ID → /status 探测的顺序自动降级细节可在 knowledge/references/agent-hooks-support.md 中查阅前端设置入口在 HooksPanel。5. 盯住会话文件增量读取与状态推断拿到会话文件路径后Nezha 为每个任务spawn 一个专属监听线程用notify文件监听 1 秒超时兜底监听不可用时退化为 400ms 轮询只在文件真正有写入时醒一次空闲时几乎零开销通过字节偏移量 半行缓冲实现增量读取只解析新增的完整行绝不重复解析历史内容见 read_session_lines_since用claimed_session_paths集合做去重认领防止同一个会话文件被多个任务重复绑定见 claim_session_path。然后就是读心术时刻——逐行解析 JSONL 推断任务真实状态Claude看到type: assistant且stop_reason为tool_use说明它停下来等你审批工具 → 状态置为input_required看到用户侧出现tool_result说明你已批准 → 恢复running见 process_claude_session_lineCodex规则更细致——exec_command/apply_patch会先过一遍只读命令白名单ls、grep、git status等免审批真正危险的调用才会记入待确认集合request_user_input、以问号结尾的最终回答都会标记为等待你回复收到你的下一条消息则自动复位见 process_codex_session_line 与 is_read_only_segment。这些状态变化通过 Tauri 事件task-status/task-session推给前端App.tsx 中的监听器把会话路径、等待状态实时同步到任务卡片上——于是应用角标、看板分列、等待审批提示全都活了起来。6. 顺带解锁的能力会话可视化与续聊会话文件被认领之后同一个解析器parse_claude_session / parse_codex_session还顺带支撑了几项核心功能会话可视化回放任务结束后自动渲染完整对话含思考块与工具调用可一键导出 Markdown见 export_session_markdown随时 Resume / Fork点击任务即可恢复对话甚至从某个会话分叉出并行任务Fork 参数构建见 append_fork_session_args安全防线所有来自前端的路径参数都会先做canonicalize白名单校验确保只允许读取会话根目录内的*.jsonl杜绝路径遍历见 validate_session_path。7. 总结为什么零 API反而更稳Nezha 的会话自动发现本质上是把三个朴素事实组合成了一台精密状态机Agent 的对话本来就落在本地 JSONL 文件里——这是天然的数据源PTY 输出流里藏着 Session ID——这是把任务和文件对上的钥匙JSONL 的行级事件足以推断对话状态——这是等待输入/已完成提示的依据。再加上Hook 优先、预置 ID 次之、/status兜底的三级降级策略无论你的 Claude / Codex 是新是旧Nezha 总有一条通路能追踪到对话。这正是它敢称为 AI Agent 时代而生的底气所在 赞分享人工智能AI 应用Vibe Coding开发工具IDE桌面应用【免费下载链接】nezhaCode Editor for the AI Agents Era. Run multiple Claude Code and Codex agents across projects on your machine.项目地址https://gitcode.com/gh_mirrors/nezha7/nezha点击查看免费下载相关推荐MLflow 与 Claude Code 集成指南自动追踪 AI 编程会话到 MLflowMLflow 与 Claude Code 集成指南自动追踪 AI 编程会话到 MLflow 导读 本指南围绕 MLflow 仓库中 mlflow/claudeMLOpsLLMOps人工智能大模型模型评测LLM 网关可观测性cc-switch 会话管理器实战指南一处浏览、搜索与恢复 Claude Code / Codex 等 CLI 的对话会话cc switch 会话管理器实战指南一处浏览、搜索与恢复 Claude Code / Codex 等 CLI 的对话会话 会话管理器是 cc switchAI 应用开发者工具桌面应用5分钟上手Nezha从零到第一个Claude Code会话的完整快速开始指南5分钟上手Nezha从零到第一个Claude Code会话的完整快速开始指南 Nezha哪吒 是一款专为 AI 编程打造的跨平台轻量级 IDE能在本机同人工智能AI 应用Vibe Coding开发工具IDE桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考