Skip to content

ling0727-ai/codex-ide-bridge

v1.1.1

Live IDE control, standalone semantic retrieval and editing, project onboarding and persistent memories.

Codex IDE Bridge 1.1.1

包含原来的 8 个 IDE 工具,以及 22 个项目、语义和记忆工具。独立代码操作无需运行 IDE 或 Serena。

安装或更新

从插件集目录运行 install.ps1 -Plugin codex-ide-bridge;安装到日常环境后重启 Codex,打开新聊天。命令行也可以运行 codex plugin add codex-ide-bridge@codex-local,前提是已经注册插件集的本地市场。

首次使用先调用 initial_instructions,然后以项目绝对路径调用 activate_project。workspace_root 可为单次调用指定项目,不改变已激活项目。必须显式激活或传入工作区,避免在插件缓存目录中误操作。

独立后端

语言实现前置条件
JavaScript / TypeScript / JSX / TSX随包 TypeScript 编译器语言服务无额外服务器;遵循 tsconfig/jsconfig 的项目范围
Python随包 Pyright stdio LSP可在个人配置指定解释器和分析设置
Go独立 goplsgopls 与 Go 工具链可用
Rust独立 rust-analyzer对应服务器与 Rust 工具链可用
C / C++独立 clangd对应服务器、编译数据库等项目配置可用
其他语言可配置 stdio LSP需要该语言服务器,并提供 extensions 配置

配置 JSON 通过启动 Codex 前设置的 CODEX_IDE_BRIDGE_CONFIG 路径读取。不要把个人配置写入安装缓存。例如:

{
  "languageServers": {
    "go": { "command": "gopls", "args": ["serve"] },
    "ruby": { "command": "ruby-lsp", "args": [], "extensions": [".rb"] },
    "python": {
      "command": "C:/Program Files/nodejs/node.exe",
      "args": ["C:/path/to/pyright-langserver.js", "--stdio"],
      "settings": { "python": { "pythonPath": "C:/path/to/python.exe" } }
    }
  }
}

不配置 python 时使用插件内置 Pyright。设置某个语言为 false 可停用该后端。外部命令直接以 argv 启动,不经过 shell;Windows 的 .cmd 启动器请改为 Node 可执行文件加入口脚本。项目文件不用于配置服务器可执行命令。服务器启动、联网安装和系统依赖安装不会由查询工具自动完成。

工具

  • 项目:activate_project、get_current_config、initial_instructions、check_onboarding_performed、onboarding。
  • 语义:get_symbols_overview、find_symbol、find_referencing_symbols、find_declaration、find_implementations、get_diagnostics_for_file。
  • 编辑:rename_symbol、replace_symbol_body、insert_before_symbol、insert_after_symbol、restart_language_server。
  • 记忆:list_memories、read_memory、write_memory、edit_memory、delete_memory、import_serena_memories。
  • 现有 ide_* 工具保留。状态始终区分 IDE 是否连接;选区、打开编辑器、界面命令仍需 IDE。

新增编辑工具默认 dry_run: true;检查计划后,在用户已经授权的任务内用 dry_run: false 应用。replace_symbol_body 替换整个定义。源文本中的缩进和换行由调用者明确提供。find_symbol(include_body: true) 返回 file_hash,可作为编辑的 expected_hash 防止使用过期内容。

预览列出文件、哈希以及具体修改前后文本。单处文本和整体预览都有大小限制,preview_truncated: true 表示需要进一步检查源文件;写入仍应用全部已验证的修改。

路径和符号范围采用零起始 UTF-16 行/字符坐标,ide_* 的既有行列输入仍为一起始。查询返回 backend_errors、truncated、诊断 pending 时要保留这些状态,不能把不完整结果当成“没有引用/没有错误”。全项目扫描最多 5000 个源文件;跳过 .git、依赖、构建目录、符号链接及忽略文件。多根 tsconfig 项目引用仍可能需要分项目激活。

连接 IDE 时优先使用 IDE 工具,保证未保存缓冲区、编辑器撤销和诊断一致。只有在确认没有发现 IDE 端点时,ide_symbols、ide_diagnostics、ide_edit、ide_rename_symbol 才回退到独立后端。远程写入超时或出错不会触发第二次磁盘写入。独立操作不能修改未保存的 IDE 缓冲区。

项目记忆与 Serena 迁移

项目元数据、初始化摘要和原生记忆分别位于 .codex-ide-bridge/project.json、.codex-ide-bridge/onboarding.md、.codex-ide-bridge/memories/,跨插件升级和服务器重启保留。

现有 .serena/memories/*.md 可带 source: "serena" 只读读取。read_memory 默认优先原生同名记忆;列表返回来源。import_serena_memories 复制到原生目录,默认跳过已存在名称;不会编辑或删除原 Serena 文件。项目激活不会自动迁移真实项目的记忆。

onboarding 不带摘要时检查项目清单,返回建议命令但不执行;了解项目并验证相关事实后,再调用 onboarding(summary: "...") 保存摘要。记忆是项目数据,应核对其适用性;不要写入密钥。

替代范围

见 能力对照。实现了常用工作流的功能对齐,并非 Serena 全量 API 或所有语言后端的兼容实现。没有导入 Serena 运行时,也不需要启动它。

TypeScript、Pyright、ignore 等依赖的许可证随包保留。源代码位于 source/ide/,完整重建脚本位于插件集的 development/。

与 DSH 共用核心

本版与 DSH IDE Bridge 0.4.0 共用源码。DSH 项目的 core/ 为维护入口;development/sync-ide.mjs 同步到 upstream/DSH-IDE-Bridge/core/,Codex 从快照构建,运行时不依赖 DSH。两端共用项目中的 .codex-ide-bridge/ 元数据与记忆。