









官方下载地址 https://docs.qoder.cn/qoder/overview
TL;DR:这是阿里系 Qoder 的桌面端「AI Agent 工作台」(v0.1.6,deb 安装),不是 VS Code 套壳,而是一个自研 Electron 应用(Electron 43 / Chromium 150 / React 19)。它的核心设计是:Electron 壳负责 UI 和本地系统集成,真正干活的 AI 引擎是内嵌的 qoder-worker-runtime(即 Qoder CLI CN,31MB 混淆 JS)子进程,两者通过 stdio + JSONL/protobuf 通信;周边配了一套带权限模型的插件系统、基于 SQLite 的会话存储、以及多模型云端推理网关。
┌─────────────────────────────────────────────────────────┐
│ Electron 43 壳 (qoder-cn, ~220MB, Chromium 150/V8) │
│ ┌──────────────┐ ┌─────────────────────────────────┐ │
│ │ Main 主进程 │ │ Renderer 渲染层 (React 19 SPA) │ │
│ │ index.js 5.9MB│◄─►│ workbench / chat / xterm 终端 │ │
│ │ + 服务化 chunks│IPC│ Shiki/KaTeX/mermaid 渲染 │ │
│ └──────┬───────┘ └─────────────────────────────────┘ │
│ │ spawn (stdio) ┌────────────────────┐ │
│ ┌──────▼──────────────────┐ │ Plugin Host 插件宿主 │ │
│ │ qoder-worker-runtime │ │ (带代际隔离+故障上报) │ │
│ │ (Qoder CLI CN, 混淆JS) │ └────────────────────┘ │
│ │ 工具执行/沙箱/ripgrep │ │
│ └─────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
resources/app.asar(123MB),结构为 out/main、out/preload、out/renderer,Vite 打包(chunk 哈希命名)。package.json 自述:"Qoder - Agent workbench for human and AI software teams"。product.json 定义应用标识 com.qodercn.app、协议 scheme qoder-cn、更新源 static.qoder.com.cn(electron-updater generic provider)。主进程不是单一大文件,而是按服务拆分的 chunks,包括:chatSessionProjectionService、chatSessionSearchWorker、chatSessionSubagentTranscriptWorker、gitWorker/gitRepositoryWatch(Git 状态监听与快照)、officeArtifactPreviewWorker(Office 文件预览)、pluginHost。IPC 面向渲染层暴露了约 10 个命名空间、100+ 通道:workspace:*(46 个,含完整 Git 操作和文件读写)、mcp:*、auth:*(登录/套餐/用量/积分热力图)、agent:*、terminal:*、appshot:*(截图捕捉)、byok:*(自带 API Key 的多供应商配置)、quest:*(云端任务)等。
会话与状态全部落在 Node 内置 SQLite(node:sqlite):chat_sessions_v*、chat_generated_image_assets、chat_session_sidebar_placements 等表,数据库文件包括 local.db、agents.db、main.sqlite,另有 sessionMigration/memoryMigration 两个迁移模块(@qoder-space/session-migration、memory-migration)负责升级历史数据。凭据用 keytar 存系统钥匙串。
app.asar.unpacked/node_modules/@qoder-ai/qoder-cn-agent-sdk/dist/_worker/ 是整个产品的执行核心:
qoder-worker-runtime.obf.mjs(31MB,混淆):runtime-info.json 显示它就是 qoderclicn(Qoder CLI 中国版)v1.1.40,主进程以 QODERCLI_PATH 子进程方式拉起,走 stdio + 双向 JSONL(配套 TS SDK 文档明确写了 query() 返回 AsyncGenerator 的模式),聊天消息协议另定义了 proto/chat.proto(OpenAI 兼容的 ChatCompletion 结构 + reasoning/tool 字段,包名 com.qoder.grpc)。policies/sandbox-default.toml 定义 plan(只读+断网)/default/accepting_edits 三种模式,按命令白名单放行(cat/ls/grep/sed/awk…);另附 6 份 macOS sandbox-exec profile(strict/permissive × open/proxied)。与 Claude Code / Codex 的沙箱思路一致。builtin/ 下有 agent-creator、skill-creator、hook-config、sdk 四个 SKILL.md —— 说明 Agent 系统支持用户自建子 Agent、技能和钩子(与 Claude Code 的 Skills/Hooks 机制同构)。rg 二进制)和 Qoder Security 插件(v0.8.9,SAST 式编辑告警 + Stop 时云端 diff 审查 + commit/push 代理审查,逻辑在跨平台 qodersec 二进制中)。bundled-resources 以 SHA-256 全量钉扎(每个文件有 hash、zip 有大小/条目数上限,防供应链篡改)分发 qoder-cn-context-plugin v1.0.27,包含:ripgrep、qoder-search.bundle.mjs(4.8MB 搜索打包)、mtree 原生模块(.node,Rust/N-API 写的 Merkle 树文件索引,用于增量工作区扫描)、syncWorkspaceScanWorker,以及 hooks + mcp.json —— 这是代码库语义索引/检索的本地侧。
resources/extensions/catalog.v1.json):manifest 格式类似 VS Code 但独立演进(engines.qoder),有显式 权限声明(如 auth.readUserToken、chat.createSession、node.callService、workspace.read),可贡献 views(工作区侧边栏视图,通过 本地 HTTP 服务 127.0.0.1 随机端口 托管,渲染层 CSP frame-src http://127.0.0.1:* 白名单放行)。pluginHost.js 用 AsyncLocalStorage 做按插件/按代际的操作追踪,捕获 uncaughtException 后上报 plugin.runtimeFault 并支持重启——故障隔离不靠多进程,靠代际+钩子。.qoder-plugin/plugin.json):跑在 Agent 侧,贡献 skills/hooks/MCP server。内置三个应用扩展:qoder.find-extensions、qoder.knowledge.center(知识中心视图)、qoder.security。@modelcontextprotocol/{client,node,server},主进程代码中 mcpServers 出现 80+ 次,插件也能注册 MCP。native-messaging-host/qoder-app-host.cjs 是 Chrome Native Messaging 主机,通过心跳文件(~/.qoder/browser-connector/clients/*.json,30 秒过期 + PID 存活检测)发现本机 Qoder 的本地中继端口。gateway.qoder.com.cn(inferBaseUrl)做模型转发,openapi.qoder.com.cn/mind(记忆/账号 OpenAPI),测试环境全套 -test- 域名。dynamic-text/qoder-cn.json 实现服务端下发的模型清单文案:自研 Cantus(长程自主任务模型)+ DeepSeek-V4-Pro/Flash、GLM-5.3、Kimi-K2.7-Code、MiniMax-M3、Qwen3.7-Plus,外加 BYOK(自带 Key)接入其他供应商。static.qoder.com.cn/qoder-app/releases/remote-runtime 拉取 4 个 tarball(qoder-remote-host / qoder-worker-runtime / node / qoder-context),在云端沙箱环境里重建与本地相同的 Agent 运行时——本地与远程执行同构。rum-electron,上报到 log.aliyuncs.com)、aoq-electron-sdk(阿里内部在线质量/崩溃 SDK,来自 anpm.alibaba-inc.com 内部源)。React 19 + react-i18next(55 个 locale pak),编辑/渲染类:xterm.js 6(终端,node-pty 后端)、Shiki 4(几百个按语言懒加载的语法 chunk)、KaTeX、mermaid 类图表(architectureDiagram/blockDiagram chunks)、Slate(富文本,Markdown 编辑器 WorkspaceMarkdownEditor)、TanStack Virtual、framer-motion + GSAP。UI 文案走 dynamic-text 服务端下发。CSP 相当严格:script-src 'self'、worker-src blob:,仅 frame 放行本地 Surface 和 qoder 域名。
aoneci-runner 路径,构建站点 cn、产品名 qoderclicn),核心 Agent 运行时发布即混淆(.obf.mjs)。chrome-sandbox(setuid)和 apparmor-profile;数据目录 com.qodercn.app.stable。app.asar + app.asar.unpacked,Agent 运行时可经 umid manifest(含 sha256)独立校验更新。总结:Qoder CN = 「Electron 工作台壳 + 内嵌 Qoder CLI Agent 运行时 + 双层插件/技能/MCP 体系 + SQLite 会话存储 + 云端多模型网关与 Quest 远程环境」的桌面 Agent IDE;其 Agent 执行、沙箱、技能、上下文索引均与终端 CLI 共用同一套运行时,桌面端主要是会话管理、工作区可视化和云本协同的载体。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。