Repository navigation
Vscode Extension
英文名:
vscode-extension· 领域:插件与扩展 · 返回功能索引
官方的 Claude Code VS Code 插件本身不带模型逻辑:它在后台启动一个 claude 进程,用 stream-json 和它对话,面板里的 /status、/usage、/memory 等界面也是向这个进程发「控制请求」拿数据再自己画出来。
把插件的 claude 换成本 fork 的 binary,就能在 VS Code 面板里用本 fork 的功能(例如 OpenAI provider)。本 fork 补齐了插件 2.1.303 会发的大部分控制请求,面板里的对话框不再报 Unsupported control request subtype。
1. 让插件启动本 fork。 在 VS Code 设置里把 claudeCode.claudeProcessWrapper 指向本 fork 的可执行文件(例如 make build 产出的 built-claude),然后重新打开 Claude 面板。
2. 正常使用。 面板里聊天、批准工具、看 diff 都走本 fork。插件以 CLAUDE_CODE_ENTRYPOINT=claude-vscode 启动进程,这时环境变量里的 ANTHROPIC_API_KEY 只有在 ~/.claude.json 里批准过才会使用(和官方一致),否则显示 Not logged in;在终端里跑一次 claude 按提示批准即可。
3. 面板对话框能用了。 下面是模拟插件发出的控制请求和本 fork 的回执(-p --input-format stream-json --output-format stream-json,CLAUDE_CODE_ENTRYPOINT=claude-vscode):
r1 initialize success {"capabilities": ["ui_surface_v1"], "commands": [...], ...}
r2 get_status success {"sections": [{"title": "Session", "rows": [{"label": "Version", "value": "2.1.292"}, ...
r3 get_binary_version success {"version": "2.1.292", "buildTime": "2026-03-30T21:59:52Z"}
r4 get_skills_dialog success {"skills": []}
r5 background_tasks success {}
get_status 返回的分区就是面板 /status 里看到的内容(Session、Environment 等)。
| 面板功能 | 控制请求 |
|---|---|
/status、版本号 |
get_status、get_binary_version
|
| 账号信息 |
initialize 和 claude auth status --json:用 ChatGPT 登录的 OpenAI 模式回报 ChatGPT 邮箱、账号名和套餐,不回报 apiProvider,插件因此照常显示账号、套餐和用量条(否则插件会当成第三方 provider 把它们隐藏) |
/usage、本次花费 |
get_usage、get_session_cost(ChatGPT 登录的 OpenAI 模式回报 5 小时 / 7 天额度;API key 回报无额度信息) |
| 模型列表 |
list_models(含 resolvedModel) |
@ 文件补全 |
file_suggestions |
| 计划、导出、重命名 |
get_plan、export_conversation、rename_session
|
/memory、/skills、/hooks、/permissions
|
get_memory_dialog、get_skills_dialog、get_hooks_listing、list_permission_rules
|
/sandbox |
get_sandbox_dialog 读取沙箱状态,插件通过 claude edit-sandbox-settings --json 写回设置(检查与官方 2.1.311 一致) |
| diff 与后台任务 |
get_workspace_diff、get_task_output(任务结束后仍可读输出末尾 8 KiB)、background_tasks
|
| 回答评分、反馈 |
message_rated、submit_feedback(返回 unavailable_reason,不从插件上传反馈;请在终端用 /feedback) |
| 其他 |
set_prompt_suggestions_paused、mcp_status、--thinking-display 参数 |
通用的 SDK 控制请求(initialize、set_model、read_file 等)见 agent-sdk.md。
- 尚未支持:
get_chrome_*、mcp_call、register_repo_root、set_mcp_permission_mode_override。 - 本容器无法下载 VS Code 插件,以上用官方 Agent SDK 0.3.303 和原始 stream-json 按插件的启动方式模拟验证;ChatGPT 额度窗口只有单元测试覆盖。
回执来自实际运行本 fork 的 binary(测试用假 API),为便于阅读每行只截取开头。
本页由 docs/features/vscode-extension.md 自动同步,请在仓库中修改。
- Agent SDK 与 stream-json 控制协议
- Agent Teams
- Agent 与后台任务
- 自动模式(Auto mode)
- 背景会话、daemon 与 agents 视图
- 自定义 UI / Branding 与 Status line
- 构建、发布与终端验收工具
- Channels
- Codex Apps
- 自动压缩窗口
- 调试日志
- /diff 视图
- Direct Connect
- Effort 档位
- 自主 Goal
- Hooks 事件、匹配与输出校验
- 快捷键与 Vim 模式
- MCP 配置与认证
- 记忆:auto memory 与 SQLite FTS5 检索
- 模型自动发现与 Gateway
- Mods 远程客户端(stream-json)
- Mods / Function Hooks
- Monitor 工具
- OpenAI / Codex provider
- 独立会话通信
- 权限规则、权限模式与 Safe mode
- 插件与 Marketplace
- Prompt context 与 Tool search
- 请求韧性:重试、回退模型与默认模型
- Bash 沙箱
- 定时任务:Cron、/loop 与 ScheduleWakeup
- 会话命令
- Skills
- SSH Remote
- 遥测与反馈
- 终端程序状态(OSC 7501)
- Terminal 工具
- 用量、成本与状态
- VS Code 插件
- Dynamic Workflow