paseo.cafe
All plugins

paseo-feishu-ui

by Laokashouji

Feishu themes and desktop skin for Paseo 0.8–0.12; native mobile palette support

v0.3.12 Requires Paseo >=0.8.0 <0.13.0

Gallery

Background
#fafafa
Text
#1f2329
Raised
#fdfdfd
Control
#e7ebf7
Border
#dee0e3
Accent
#3370ff
Muted
#646a73
Focus
#3370ff
飞书 · 浅色light
Background
#181818
Text
#d1d1d1
Raised
#2c2c2c
Control
#1e1f22
Border
#3b3b3b
Accent
#4c88ff
Muted
#9b9b9b
Focus
#4c88ff
飞书 · 暗黑dark

Install

paseo plugin add Laokashouji/paseo-feishu-ui --ref c1d1301cee172e298929c58e91d505567a3f0f65

Git security status and fallback installation are pinned to commit c1d1301cee17.

From the plugin's README

Requires Paseo 0.8.x–0.12.x on both the app and daemon. The plugin manifest accepts >=0.8.0 <0.13.0.

paseo plugin install github: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

Paseo Feishu UI

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.

Install

Requires Paseo 0.8.x–0.12.x on both the app and daemon. The plugin manifest accepts >=0.8.0 <0.13.0.

paseo plugin install github: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.

Features

  • Light/dark palettes selected through native Appearance settings.
  • Responsive desktop navigation, workspace groups, native workspace list, and a separated chat pane.
  • A continuous visual bubble for adjacent thinking, tool, and assistant body rows, with one avatar gutter. Native rows retain their identity and virtualization.
  • Command cards show the first command line. Thinking cards show the first nonempty line of text exposed by the provider, with expand/collapse and full-text copy.
  • Read, Edit and Write cards show the native icon and path on one line, with ellipsis for long paths. The action name stays accessible to screen readers; missing paths keep the heading.
  • Claude Code Explore cards show a search icon and one description line. The visible Explore heading is hidden when a description exists; native details, disclosure and status cues remain.
  • Native tool details, file actions, permissions, attachments, composer and agent execution remain owned by Paseo.
  • Exact theme gating and shared adapter cleanup across connected hosts.

Platform support and limitations

Client Support
macOS desktop, Paseo 0.8.0 / 0.9.1 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.

Preview

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

Data access

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.

Development

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.

License

MIT. Product names belong to their respective owners.

Scanned 20 Oct 2026, 09:19 UTC from Laokashouji/paseo-feishu-ui.