DeepSeek App

August 16, 2026 · View on GitHub

Every DeepSeek Harness Web client package is mapped to a desktop surface. Do not add Grok-only features (official xAI account, Imagine, Remote IM).

wired = surface + RPC exist. Not the same as official Web parity. See HANDOFF.md §7 for gaps.

DSH packageDesktop surfaceStatus
ui-layoutThree-column workbench + resizewired
ui-sidebarWorkspace / session nav, archive, search, 项目折叠(记忆)+ 折叠全部, 新建会话为草稿页(同工作区仅一个待创建;发送时复用 blank), 项目记忆回填输入框, 拖文件夹进侧栏添加项目, 多选(组全选/Shift 范围/批量归档;删除置灰=引擎无 RPC), 项目行悬停新建/菜单, 置顶/未读(本地语义), 右键菜单(选择/置顶/重命名/分叉/复制会话 ID/归档/导出/诊断包)wired (2026-08-14)
ui-workspaceAdd / rename / delete / reorder workspacewired
ui-conversationChat, composer, empty/hero, stats, queue;新建/空白会话:输入框垂直居中 + Web 同款鱼 logo /「探索未至之境」/ 预览版徽章;思考走 Grok chrome(流式展开,完成后收成「思考了 Xs」);思考+工具在本轮结束后合并为可折叠「工作了 Xs」组;最后一条用户气泡可编辑并重发session.fork({ atSeq }) 切到该轮之前再 session.prompt;首条用户则新建会话);对话吸底 + 流式跟随useStickToBottom:短会话贴底、流式长高跟底、上滚脱锁、发送/切会话强制回底、「回到最新」按钮);右侧消息节点跳转条(用户/助手各一格,悬停预览,上/下步进,滚动高亮当前);执行中合并 token 帧 + 侧栏/输入框不跟流式重绘(避免 Win11 整窗卡住点不了)wired (2026-08-16)
ui-toolGrok 时间线工具行(分组、$ 命令、可折叠输出);与思考合并进同一工作组wired (2026-08-14)
ui-plan顶栏 PlanStatusBar(进度/当前步/可展开步骤列表)+ composer 计划 chip + /plan;对话内 todo 用 Grok 计划卡wired (2026-08-14)
ui-goal顶栏 goal strip(关闭目标);不再把 Goal dock 放在输入框旁wired (2026-08-14)
ui-jobsSession header job listwired
ui-commandsSlash / command palette + executewired
ui-skillSlash skill list (invoke via session.prompt);草稿页 / 未选项目时用通用工作区 blank session 拉 skill.listwired (2026-08-14)
ui-input-triggerComposer + / / 面板(命令+技能+kind 过滤+搜索+Grok 式命令图标;方向键滚动跟随)与 @ 工作区文件面板;skill / @ 文件在输入框渲染为整段芯片(Backspace 整颗删除),发送后用户气泡同样解析为标签,可与正文穿插wired (2026-08-14)
ui-model-selectionSession model + effort picker(Grok 两段式 cmm:根层「模型 / 思考强度」行,子层分组搜索或 adapter efforts);未选项目时用 llm.models + 通用工作区 cwd,发送时 session.selectModel;模型与思考强度随会话保留,目录刷新不会打回默认 / DeepSeekwired (2026-08-15)
ui-permission-presetsComposer 底栏可选权限审核(引擎 permissions 投影:工作区写入=越权需批准;完全访问=不再弹审批;Full access 危险确认;草稿页记住选择,建会话后 /permissionwired
ui-user-questionsAsk-user modal (/api/respond)wired
ui-agent-presetPreset list / select / copy / remove / openwired
ui-attachment拖文件/文件夹到聊天区附加(侧栏=加项目、主区=附件条;拦截 Electron 弹窗);+ 选文件;图片粘贴/预览;文件走 @path 发给 Agent(空格路径加引号);发送后用户气泡上方用 Grok 附件卡片展示,编辑器 @ 引用标签仍在气泡内穿插。DeepSeek 官方接口不收像素,只发路径wired (2026-08-15)
ui-subagentChild list, history, prompt, interruptwired
ui-trajectoryDetails 轨迹:与 web 对齐的事件账本(用户/助手/思考/工具/计划/压缩;工具行展示参数 + 结果预览,点击展开全文),样式沿用 plane-timeline 卡片;会话运行后顶栏环境按钮左侧出现轨迹 icon,点击打开侧栏轨迹标签wired (2026-08-14)
ui-deliverablesTurn-tail produced fileswired
ui-workflow-runNested workflow run disclosurewired
ui-message-feedbackAssistant feedbackwired
ui-themeDark / light (data-theme);设置外观页:主题分段 + 按时切换 + 配色皮肤 + 背景图wired
ui-settings全页设置壳(grok SettingsPage 布局:左导航 rail + 搜索 + personal/system 分组 + 内容列;替代原弹窗)wired (2026-08-14)
ui-settings-generalLocale, theme, busy-enter, open configwired
ui-settings-modelsDeepSeek + catalog + custom providerswired
ui-settings-pluginsHost-plane plugin cardswired
ui-settings-plugin-inventoryLoader inventory tabwired
ui-settings-archived已归档会话列表(只读;引擎无 unarchive RPC,提供导出)wired (2026-08-14)
Desktop-only: settings-iaGrok 设置 IA:catalog 搜索 + 页内 tab;服务商/插件/预设/Cordis/引擎连接分别落在账号/扩展/运行时,不再作为一级导航wired
Desktop-only: settings-runtime运行时页:引擎状态 / 端口 / 重启(端口不再出现在顶栏)wired
Desktop-only: settings-network运行时 → 网络:系统/手动/直连代理 + 生效代理展示 + Grok/DeepSeek 端点探测;注入引擎 HTTP_PROXY + NODE_USE_ENV_PROXYwired
ui-directory-picker-*Native + browse workspace pickerwired
Desktop-only: open-locationGrok 式「打开位置」:访达 / 系统默认 / 本机已装编辑器(VS Code、Zed、Cursor…)+ 图标;面板按内容撑开,不预设宽高wired
Desktop-only: general-workspace未选项目时的公共 cwd:{userData}/workspaces/general(对齐 Grok workspaces/general);不出现在侧栏项目里,会话进「其他会话」wired
Desktop-only: env-info顶栏环境面板:下拉显示变更 / 本地 / 分支 / 推送 / PR;「本地」打开文件工作台;变更跳转等 review tab(resources-git)落地;会话运行后左侧出现轨迹 icon,打开侧栏轨迹标签wired
localezh / zh-TW / en;默认跟随系统(system),设置可锁定;首次运行按 OS 语言wired
CompactionCollapsed checkpoint rowwired
Session fork / rename / exportSession menuwired
Desktop-only: user-edit-resendGrok 式用户气泡编辑:铅笔按钮 + 行内表单(取消 / 保存并重发)。DSH 无 rewind,重发走 fork@上一轮用户 seq 或 mint 新会话,再 promptwired
Session queue edit/remove/steerQueue dockwired
Session searchSidebar searchwired
OnboardingWelcome + DeepSeek keywired
Desktop-only: resourcesDetails 资源 tab:工作区文件树 + 预览/编辑 + 多文件 tab + 右键(复制路径/显示/打开/引用到会话),底层 window.desktop.fs.*(主进程围栏 + 权限门控)wired (P-R1)
Desktop-only: resources-git变更 tab:git status / diff / apply / restore(grok ReviewTab 逻辑,主进程 git)planned (P-R3)
Desktop-only: resources-terminal终端 tab:xterm + node-pty(grok TerminalTab,window.desktop.terminal.* → utility 进程 ctx.subprocess.spawnTerminalwired (P-T1)
Desktop-only: side-workbenchGrok 右侧资源面板完整复刻:共享标签条(SideTabBar:+ 面板选择器 / 展开 / 关闭侧栏 / 右键关闭菜单 / 中键关闭 / 溢出 fade)+ 空态 SidePicker;可打开类型 = 文件 / 浏览器 / 终端 / 技能 / 轨迹(lib/sideWorkbench.ts 纯模型,轨迹为 DeepSeek App 新增 picker kind);浏览器/终端跨标签保活(persist-host);文件脏标记 + 批量关闭确认;侧栏常挂载(标签与文件缓冲在收起后保留)wired (G4)
Desktop-only: skins皮肤系统:6 皮肤(rose/gothic/mist/ocean/ember)× 暗/亮,data-skin token 重映射(grok themeSkin + skins.css 照搬)wired (P-S1)
Desktop-only: wallpaper壁纸系统:图/gif/video 上传 → 压缩 → IndexedDB 持久化 + 裁剪(聚焦 pan/zoom)+ 视频裁剪(in/out)+ scrim 滑杆(grok Wallpaper* 照搬)wired (P-S2)
Desktop-only: shortcuts快捷键系统 + 可视化重映射 UI(grok shortcuts + shortcutRemap + ShortcutsSettingsPanel)wired (P-S3)
Desktop-only: notify-prefs通知免打扰时段 + 音效(grok notifyQuietHours/notifySound/desktopNotify)wired (P-S3)
Desktop-only: zen-mode禅模式(隐藏 chrome 专注对话)wired (P-S3)
Desktop-only: chat-find对话内搜索定位 ⌘F(grok ChatFindBar)wired (P-S3)
Desktop-only: message-node-rail会话右侧快捷跳转指示条(grok MessageNodeRail):用户/助手节点 ticks、悬停预览、prev/next、滚动同步高亮wired (2026-08-14)
Desktop-only: providers-gallery服务商管理:预设画廊 + 自定义服务商表单(grok ProvidersPanel 搬运),DSH 侧 schema 驱动(settings.describe)+ credentials + llm.discoverModels左侧只列已保存服务商,未配置进预设画廊;账户/插件双栏各自滚动wired (P-S5)
Desktop-only: grok-oauth模型 → 服务商 → Grok:Grok App 同款账号/额度布局;official-aux MCP(web_search / x_ / vision / Imagine)可注入给其它模型*wired
Desktop-only: modlens-extras模型 → 扩展:托管 ModLens 看图配置(引擎 / 复用本机登录),标明功能来自该插件retired (replaced by media-route)
Desktop-only: media-route模型 → 扩展:应用内置图/视频识别分流(Grok 官方 / 已配服务商 / OpenAI 兼容),不依赖再装插件;同一附件只识一次,识图期间走工具行等待态wired
Desktop-only: plugins-console插件控制台:host 行卡片 + 显式 ns 映射的第一方配置卡(shell / agent-loop / web-search:覆盖徽章 / 重置 / 暂存 / 密钥空不写)+ 未暴露 ns 隐藏表单;启停写 $DSH_HOME/cordis.patch.yml(danger-full-access + confirm)wired (P-P1, P0/P1 2026-08-14)
Desktop-only: plugin-install设置 → 插件:粘贴官方 dsh plugin --profile web add <spec>(或裸包名)写入 $DSH_HOME/profiles/web,pnpm + bundles 对账后重启引擎;不写应用包、不影响在线更新。官方 Web UI 槽位(侧栏/第四栏/抽屉/皮肤)明确不生效wired
Desktop-only: preset-studio预设工作室:组合查看器 + 可视化 cordis.yml 编辑器 + 信任徽章 + 每会话预设 chip(agentPreset. + dump-config)*wired (P-P2)
Desktop-only: cordis-consoleCordis 控制台:动态插件全生命周期(Run 卡 + 版本指针 + run/update/rollback/stop/undefine + 审批复用 + 客户端代码查看),读 dynamicCordisRunner/inventory,与 Agent 工具同 registrywired (P-P3)
Desktop-only: session-plane会话插件视图 + 插件活动流:当前组合(host ∩ 预设 ∩ 动态)三色视图,插件事件并入轨迹wired (P-P4)
Desktop-only: diagnostics-bundle统一诊断 zip:设置运行时 / 会话菜单 / 错误门;非 session.export。启动不再弹「上次异常退出」wired
Desktop-only: token-usage设置 → 用量:本机 token 热力图(Grok 活动热力图视觉)+ 近期会话日志;扫 $DSH_HOME/sessions/**/session.jsonl.zstdassistant/message.usage,不编造数字wired
Desktop-only: app-auto-update设置 → 关于:应用内更新(打包版 electron-updater;本地 / Linux 非 AppImage 走 GitHub 下载)。不编造版本,安装前不关引擎wired
Desktop-only: automations已安排:侧栏入口 + 任务卡 / 收件箱 + 创建抽屉(skill 芯片流水线)。主进程 30s tick,到点 session.create + session.prompt;关窗可留托盘,完全退出暂停。不假装有独立守护进程wired

Wire

  • Unary: POST /api/<method> { type, rpcId, method, payload }
  • Respond: POST /api/respond
  • Remote (Typert): POST /api/<ns>/<method> payload { args }
  • Events: WebSocket /api/events.mux + /api/events.host
  • Export: GET /api/session.export

Main process owns every DSH HTTP call (trust fence is loopback).