Klovi lets you browse, search, and present AI coding session history from Claude Code, Codex CLI, and OpenCode. It ships in two distribution modes that share the same backend, plugin, and UI packages:
- Desktop app: native Electrobun shell with menus, updater integration, and directory picker support
- Browser-served package:
bunx @cookielab.io/klovi, serving the shared UI in your browser on127.0.0.1
macOS (Apple Silicon) via Homebrew:
brew install --cask cookielab/tap/kloviOr download the latest release for your platform from the Releases page.
bunx @cookielab.io/kloviKlovi starts a localhost-only server on http://127.0.0.1:3583, opens your
browser by default, and reads session data directly from the local storage used
by each supported tool.
Compatibility run:
npx @cookielab.io/kloviFor programmatic embedding:
import { startKloviServer } from "@cookielab.io/klovi/server";
const server = await startKloviServer({ host: "127.0.0.1", port: 3583 });Advanced CLI overrides:
KLOVI_HOSTKLOVI_PORTKLOVI_STATIC_DIRKLOVI_SETTINGS_PATH
CLI flags:
--port <number>--no-browser
bun installUse the root workspace scripts that match the runtime you want to exercise:
bun run dev:desktopstarts the Electrobun desktop appbun run dev:bunstarts the browser-served package through Bunbun run dev:nodestarts the browser/npm variant through Node/tsx
Linux note:
- Klovi defaults to CEF on Linux. If a Wayland/X11 setup is unstable, launch with
KLOVI_LINUX_RENDERER=nativeto use the native renderer fallback.
apps/package- npm/browser distribution source for@cookielab.io/kloviapps/desktop- Electrobun desktop shell and release packaging
packages/server- backend services, RPC/HTTP server bootstrap, Effect runtime compositionpackages/ui- shared React app shell and transport-neutral UI bootstrappackages/plugin-core- plugin contracts and registry primitivespackages/plugin-claude-code- Claude Code discovery, parsing, frontend integrationpackages/plugin-codex- Codex discovery, parsing, frontend integrationpackages/plugin-opencode- OpenCode discovery, parsing, frontend integrationpackages/ui-components- reusable Klovi-specific UI feature componentspackages/design-system- design tokens, primitives, and global styles
- Unified browsing for Claude Code, Codex CLI, and OpenCode sessions
- Project merging across tools that share the same working directory
- Search across discovered sessions
- Session presentation mode for demos and talks
- Per-plugin enable/disable and data-directory settings
- Security warning onboarding for local session access
- Desktop-native capabilities in the Electrobun app, including update checks
- Browser-served mode through a single npm package
- Plugin-specific tool summaries, input formatting, and resume commands
| Script | Description |
|---|---|
bun run dev:desktop |
Start the Electrobun desktop app in development |
bun run dev:bun |
Start the npm/browser variant with Bun |
bun run dev:node |
Start the npm/browser variant with Node/tsx |
bun run build |
Build the desktop app |
bun run build:web |
Build the shared UI bundle |
bun run build:package |
Build the npm/browser package source artifact |
bun run stage:npm |
Stage the sanitized npm publish artifact |
bun run verify:packed-artifact |
Verify the staged npm artifact under Node and Bun |
bun test |
Run the full Bun test suite |
bun run test:node-smoke |
Run the Node plugin runtime smoke test |
bun run typecheck |
Run TypeScript type checking |
bun run check |
Run Biome lint/format checks |
bun run storybook |
Start the design-system Storybook |
- docs/architecture.md - runtime/package architecture
- docs/components.md - UI layers and wrapper composition
- docs/testing.md - test setup and verification workflow
- CONTENT_TYPES.md - JSONL content type catalog
See CONTRIBUTING.md for setup and workflow details.
"Claude" and "Claude Code" are trademarks of Anthropic, PBC. "OpenAI", "ChatGPT", and "Codex" are trademarks of OpenAI, Inc. "OpenCode" is a trademark of its respective owner. This project is not affiliated with, endorsed by, or sponsored by Anthropic, OpenAI, or any other AI tool vendor.

