rinDBeans/codex-ui 预览 preview

rinDBeans/codex-ui

Codex appearance for DSH Web: window edges, sidebar divider, model picker and reasoning power rail, composer, theme colors

catalog descriptioncatalog 简介 / catalog description:DSH Web 的 Codex 化界面插件 · A Codex-style interface plugin for DSH Web

Project Overview项目介绍

codex-ui is a community-maintained interface theme plugin built specifically for DeepSeek Harness (DSH) Web, packaging itself as a DSH Web Plugin badge and shipping a bundle-manifest consumed by the host. The repository targets DSH exclusively: the README documents verification against the npm-global @deepseek-ai/dsh@0.1.7-rc.2 and the Windows desktop app.asar shell, with fixtures reading the shipped host CSS and rendering code directly so that structural host changes fail their assertions. Installation means dropping the built artifact into the DSH Web skins directory and tracking the host's 0.1.x upgrade path; no other agent or IDE is mentioned.

The plugin rebuilds window hairlines, sidebar dividers, the model picker with its reasoning "power rail" slider, the composer card geometry, and the light/dark palettes by per-pixel sampling of Codex screenshots kept under assets/reference/. Beyond color tokens it adds behavioral patches such as releasing the composer's blank header slots so subagent/preset/job entries render again, and floating a "← Chat" exit pill inside the Trajectory view because hiding the tab strip would otherwise strand the user. A toggleable "Model picker, face B" replaces the host menu with a custom component that owns optimistic updates and respects prefers-reduced-motion. The intended users are DSH Web operators who want Codex-style visual consistency and developers maintaining the skin across host releases.

Dependencies require Node.js 22 or later and a working @deepseek-ai/dsh@0.1.7-rc.2 installation (npm global or the packaged Windows app.asar); CI in .github/workflows/ci.yml only runs scripts/check.mjs on Ubuntu and Windows across Node 22/24. The full fixture and live-browser suites still need a Chromium plus the host, so they stay local rather than in CI. The license is MIT, and the maintainers explicitly note this is not an official DeepSeek AI product. Migration caveat: before 0.5.0 the composer chip radius inherited the host's --dsw-radius-sm (8px), so older builds will look noticeably sharper until reinstalled against a current host.

codex-ui 是一款面向 DeepSeek Harness(DSH)Web 的社区维护界面主题插件,专门用于把 DSH Web 的视觉外观重塑为 Codex 风格。它在打包形态上属于 DSH Web 插件(README 标注 "DSH Web Plugin" 徽章、依赖 npm 全局安装的 @deepseek-ai/dsh,并在 bundle-manifest 中声明),仅针对 DSH 这一宿主进行适配。安装方式为将构建产物挂载到 DSH Web 的皮肤目录中,并随宿主版本迭代。

该插件逐像素对 Codex 截图进行测量,覆盖窗口边线、侧边栏分割线、模型选择器与推理力度滑轨、Composer 卡片几何、浅色与深色调色板等区域,还提供了 Composer 顶部槽位释放、Trajectory 视图回退入口等行为补丁。它面向希望 DSH Web 拥有 Codex 视觉一致性的用户,以及需要长期跟进宿主 0.1.x 升级路径的开发者。

依赖方面要求 Node.js 22 或更高版本,宿主为 @deepseek-ai/dsh@0.1.7-rc.2(含 npm 全局与 Windows app.asar 两种发行),CI 在 Ubuntu 与 Windows 上跨 Node 22/24 验证 scripts/check.mjs。fixture 与实时校验仍依赖宿主与 Chromium,因此仅本地运行;许可证为 MIT,0.5.0 之前的 --dsw-radius-pill 等关键变量曾直接继承宿主,迁移时需留意。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:rinDBeans/codex-ui

把 rinDBeans/codex-ui 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

codex-ui

codex-ui

Codex appearance for DSH Web: window edges, sidebar divider, model picker and reasoning power rail, composer, theme colors

简体中文 · Changelog · MIT

License: MIT DSH Web Plugin Node.js 22 or later CI

codex-ui is a community-maintained interface plugin for DeepSeek Harness (DSH), not an official DeepSeek AI product.

This plugin rebuilds DSH Web interface elements to match Codex: edge shadows and hairlines, the sidebar divider, the model and reasoning-effort menu, composer structure, and the light and dark palettes. Values come from Codex screenshots and its color picker, measured per pixel. The measurements and the source images are in the sections below and in assets/reference/.

Host compatibility

Developed against DSH 0.1.7-rc.1 (npm global install) and 0.1.7-rc.2 (Windows desktop shell app.asar); the full 0.7.0 verification ran on the npm release @deepseek-ai/dsh@0.1.7-rc.2 (fixtures against both its node_modules and an app.asar packed from it, the live checks on a dsh web booted from it; see "Host and browser"). Fixtures read the shipped host CSS and render code directly, so a structural host change fails their assertions.

Features

Id Content
⑳ Model picker, face B (on by default): a component of our own takes over the composer model seat — model list (grouped by provider, with descriptions) plus the Codex reasoning power rail (24px track / 4px ticks / 28px white thumb, real drag, ←/→/Home/End, levels from the data); during the round trip it shows the new level optimistically with a spinner and never clears the list (the optimistic value prefers the host's pending and falls back to the seat's own record — 0.1.7-rc.1 has no such field); the slider's form follows dsh-claude-style (a 26px groove with an 8px radius, a 26% ink fill, a 16×30 knob, and a Faster/Smarter row under the groove), and the top rung swaps in a violet dot matrix (5 rows of hash-scattered blocks, #8b7ad0 light / #9d8ce0 dark, stopped by both prefers-reduced-motion and the script's data-reduced-motion); the trigger cross-fades the effort label with blur. Can be switched off in settings
⑫ Model picker, face A (the host menu when ⑳ is off): opaque white menu (18px radius), 28px rows with 13px radius (concentric: 18 − 5px inset), permanent check column, pending spinner
⑬ Composer header turned blank, panel buttons keep the official icons
⑬c Both header slots released: entries registered there render again (subagent descendant count / job roster / preset badge / open-in-app); the view tabs stay hidden. The entries are conditionally rendered, so the top bar is unchanged in the common case
⑬d An exit for the Trajectory view: once ⑬ hides the tab strip, Trajectory has an entrance but no way out — a tool card's expanded Inspect goes through openView('trajectory', callId), and the only route back was that strip. While the Trajectory view is showing, a "← Chat" pill floats at the lower-left of the view area; clicking it clicks that very tab, the same selectView callback a real click uses, with no host internals involved. Structure in src/client/trajectory-exit.js, looks in skins/codex-ink/trajectory-exit.css. Which tab is Chat is calibrated from aria-selected while Chat renders, falling back to the tab's own text; with neither, no button is shown at all. If the strip ever becomes visible again this layer steps aside. Any mismatch with the host layout warns and skips
⑭ Composer card: radius (card 20/25, top strip = the card's own radius), shadow, geometry, tool row, hero layout; the follow-up queue that stacks against the card's top edge is pulled into the same family (top corners = --dsw-radius-card, and no 40px backdrop blur)
⑯ Right panel guide entries: no border, no fill, 52px rows, 20px icons, filled shortcut pills
⑰ Composer bottom controls: add button has no box until hover; model and permission controls share the hover chip and, like the add button, are fully rounded (Codex reference measures R = h/2)
② Sidebar colors match the Codex light sidebar; sidebar rows align with the workspace list, and row states are mapped from the host's own semantics — the current session (aria-selected) gets its own fill, kept distinct from hover (measured 0.08 vs 0.04, where the host gives both the same token)
②c Conversation window edge: 0.5px hairline plus a 24px ambient shadow
②d Right panel: hairline only on its left edge, shadow bleeds upward only; the dockkit 1px border is removed; its scroll areas follow the skin's scrollbar rule (::-webkit-scrollbar, the same tokens the menus use)
②e Right divider handle: center-darkest gradient on hover
⑱ Settings card on the plugin manager's codex-ui bundle page: theme / accent / background / foreground / UI font / code font / translucent sidebar / Codex model picker / contrast
㉑ Settings modal, full-page Codex pass: the settings dialog gets a grouped sidebar (a "← Back to app" row, a search box that filters host items, group headers), a page header in the content area, white cards with hairlines on every sub-page and sticky save bars. Structure comes from src/client/settings-modal.js (host anchors only, host nodes never moved or cloned, hiding driven by a durable data-* attribute), looks from skins/codex-ink/settings-modal.css. Any step that does not match the host layout warns and skips — the layer degrades, it never throws

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev dsh-task-board 下一个 Next matlab-modelsim-vivado-plugin →