Feishu themes and desktop skin for Paseo 0.8; native mobile palette support
Supported platforms: macOS.
paseo plugin add Laokashouji/paseo-feishu-ui --ref mainSecurity status covers commit c50f96b01bdb. This command tracks main. Refresh the listing before installing if the branch changed.
From the plugin's README
Requires Paseo 0.8.x on both the app and daemon. The plugin manifest accepts >=0.8.0 <0.9.0; older and newer major API revisions are not supported.
paseo plugin install Laokashouji/paseo-feishu-ui --ref main
Select 飞书 · 浅色 (light) or 飞书 · 暗黑 (dark) in Settings → Appearance. Install on every daemon whose conversations should receive thinking previews; timeline contributions belong to the conversation's host.
paseo plugin update paseo-feishu-ui
paseo plugin disable paseo-feishu-ui
paseo plugin enable paseo-feishu-ui
paseo plugin remove paseo-feishu-ui
Git pushes do not automatically update installed copies. For local source development, run paseo plugin reload paseo-feishu-ui after changes; no daemon restart is needed.
README
English | 简体中文
Feishu-inspired light and dark themes for Paseo, with a desktop workspace layout, continuous assistant bubbles, compact tool cards, and first-line thinking previews.
An independent community project. It is not affiliated with Feishu/Lark, ByteDance, or the Paseo maintainers, and does not integrate with Feishu services.
Requires Paseo 0.8.x on both the app and daemon. The plugin manifest accepts >=0.8.0 <0.9.0; older and newer major API revisions are not supported.
paseo plugin install Laokashouji/paseo-feishu-ui --ref main
Select 飞书 · 浅色 (light) or 飞书 · 暗黑 (dark) in Settings → Appearance. Install on every daemon whose conversations should receive thinking previews; timeline contributions belong to the conversation's host.
paseo plugin update paseo-feishu-ui
paseo plugin disable paseo-feishu-ui
paseo plugin enable paseo-feishu-ui
paseo plugin remove paseo-feishu-ui
Git pushes do not automatically update installed copies. For local source development, run paseo plugin reload paseo-feishu-ui after changes; no daemon restart is needed.
| Client | Support |
|---|---|
| macOS desktop, Paseo 0.8.0 | Layout, bubbles, thinking/tool cards; exercised in the installed app |
| Browser | DOM adapter and compact layouts; Chrome fixture tests at 1342px and 390px |
| Official iOS / Android | Theme colors only; native bubbles, tools and thinking are unchanged |
| Windows / Linux desktop | Not tested |
The desktop adapter depends on version-specific Paseo DOM structure. It is not a public host styling API; verify it after a Paseo upgrade. The UI labels are currently Chinese.
Native mobile appearance requires additional upstream APIs: compatibility details, upstream request #4697. The mobile HTML prototype in design/ is a design reference, not an implemented iOS feature.
Thinking previews use only provider-exposed text; the plugin cannot make a provider disclose otherwise unavailable reasoning. Switching away from the Feishu theme restores native reasoning and resets that row's expansion state. Tool status is inferred from native visual state; idle calls show a neutral details hint because the DOM cannot reliably distinguish completed from canceled calls.
These are design references with fictional data, not captures of a user's conversations. The implementation preserves native controls and differs in some details; the current thinking and command headings show first-line content.
Interactive design · Thinking/tool design
The plugin is client-only: no server entry, extra network connection, telemetry, credentials, model requests or workspace-file access. It reads Paseo's local appearance preference and rendered transcript structure to apply styles. The public reasoning transformer receives provider-exposed thought text; copy buttons write that text to the clipboard only when clicked. Dependencies are public npm packages, and package-lock.json uses registry.npmjs.org exclusively.
Paseo plugins execute trusted code inside the app. Inspect the adapter contract and the publication audit for the exact boundaries.
Node.js 20.19.4+ and npm:
npm ci --registry=https://registry.npmjs.org
npm run typecheck
npm test
npm run test:browser
Browser tests require an installed Chrome; set CHROME_PATH=/path/to/chrome outside the default macOS path. Tests use fictional RNW-shaped content and do not count as iPhone verification. See verification for native checks and coverage limits. The historical message-grouping.browser.js check is superseded by response-bubble.browser.js for shared bubbles.
index.client.tsx registers themes and settings. client/web.ts isolates browser integration and lifecycle cleanup. client/thinking.tsx renders exposed reasoning only while the web adapter's exact theme gate is active. Native iOS/Android exit before browser integration or reasoning replacement.
MIT. Product names belong to their respective owners.
Scanned 14 Sep 2026, 08:28 UTC from Laokashouji/paseo-feishu-ui.