klovi

skill
SUMMARY

Desktop viewer for AI coding sessions — Claude Code, Codex, and OpenCode

README.md

Klovi

CI
License: MIT

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 on 127.0.0.1

Klovi homepage screenshot
Klovi homepage screenshot

Quick Start

Desktop app

Download the latest release for your platform from the
Releases page.

Browser-served npm package

bunx @cookielab.io/klovi

Klovi 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/klovi

For programmatic embedding:

import { startKloviServer } from "@cookielab.io/klovi/server";

const server = await startKloviServer({ host: "127.0.0.1", port: 3583 });

Advanced CLI overrides:

  • KLOVI_HOST
  • KLOVI_PORT
  • KLOVI_STATIC_DIR
  • KLOVI_SETTINGS_PATH

CLI flags:

  • --port <number>
  • --no-browser

Development

bun install

Use the root workspace scripts that match the runtime you want to exercise:

  • bun run dev:desktop starts the Electrobun desktop app
  • bun run dev:bun starts the browser-served package through Bun
  • bun run dev:node starts 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=native to use the native renderer fallback.

Workspace Layout

Apps

  • apps/package - npm/browser distribution source for @cookielab.io/klovi
  • apps/desktop - Electrobun desktop shell and release packaging

Packages

  • packages/server - backend services, RPC/HTTP server bootstrap, Effect runtime composition
  • packages/ui - shared React app shell and transport-neutral UI bootstrap
  • packages/plugin-core - plugin contracts and registry primitives
  • packages/plugin-claude-code - Claude Code discovery, parsing, frontend integration
  • packages/plugin-codex - Codex discovery, parsing, frontend integration
  • packages/plugin-opencode - OpenCode discovery, parsing, frontend integration
  • packages/ui-components - reusable Klovi-specific UI feature components
  • packages/design-system - design tokens, primitives, and global styles

Features

  • 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

Scripts

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

Documentation

Contributing

See CONTRIBUTING.md for setup and workflow details.

Trademark Notice

"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.

Yorumlar (0)

Sonuc bulunamadi