Skip to main content

Overview

Effuse is a lightweight, type-safe UI framework built natively on Effect TypeScript. In the OpenAgents repo it is shipped as @openagentsinc/effuse and powers most user-facing UI in the Autopilot Web MVP (apps/web). Autopilot Desktop no longer uses Effuse: the legacy Tauri + Effuse desktop UI has been removed in favor of the Rust + WGPU stack described in WGPUI.

Usage in Autopilot Web (today)

  • Marketing shell + login pages are Effuse templates.
  • /modules, /signatures, and /tools routes are rendered by Effuse pages (with React/TanStack still used for loaders, auth, Convex, and navigation).
  • The Autopilot chat column is Effuse (effuse-pages/autopilot.ts), with some surrounding scaffolding still in React.
  • A React-free Effuse Storybook exists for templates + visual regression testing.

Where It Lives (OpenAgents repo)

  • packages/effuse/ - @openagentsinc/effuse package (templates, components, EZ, services)
  • apps/web/src/effuse-pages/ - server-rendered page templates
  • apps/web/src/effuse-app/ - routing/controller glue and integration points
  • docs/STORYBOOK.md - Effuse storybook + visual regression workflow

Core Ideas

  • Effect-native UI: rendering and events are expressed as Effect and Stream.
  • No virtual DOM: updates are explicit, focus-safe DOM swaps.
  • Two primitives:
    • Components: stateful render loops driven by StateCell.
    • EZ actions: HTMX-inspired, attribute-driven Effects (data-ez-*) for targeted swaps.
  • Service-driven: DOM + state + registries are injected as Effect services for testability.

Signature-Driven UI (UITree)

Effuse also ships an optional signature-driven UI runtime (@openagentsinc/effuse/ui) built around a typed UITree and patch application. This was originally designed for the legacy desktop canvas and is still maintained as a standalone library for experiments and future UI protocols.

Learn More (OpenAgents repo)

  • packages/effuse/README.md - package overview + API surface
  • packages/effuse/docs/INDEX.md - apps/web integration notes + doc map
  • packages/effuse/docs/MASTER-PLAN-EFFECT-EFFUSE-COMPLETE.md - long-range plan/spec