Skip to content

Commit dfbaef3

Browse files
docs(readme): align documentation with current repo state
Update the top-level and package docs to match the current workspace layout, supported tools, settings flow, and verification commands. Co-Authored-By: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
1 parent 9bed64c commit dfbaef3

5 files changed

Lines changed: 92 additions & 28 deletions

File tree

README.md

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE.md)
55

66
Klovi lets you browse, search, and present AI coding session history from
7-
Claude Code, Codex, and OpenCode. It ships in two distribution modes that share
8-
the same core UI and backend logic:
7+
Claude Code, Codex CLI, and OpenCode. It ships in two distribution modes that
8+
share the same backend, plugin, and UI packages:
99

10-
- Desktop app: native Electrobun shell with updater, menus, and directory picker
11-
- npm package: `npx @cookielab.io/klovi` or `bunx @cookielab.io/klovi`, serving
12-
the shared UI in your browser on `127.0.0.1`
10+
- Desktop app: native Electrobun shell with menus, updater integration, and
11+
directory picker support
12+
- Browser-served package: `bunx @cookielab.io/klovi`, serving the shared UI in
13+
your browser on `127.0.0.1`
1314

1415
![Klovi homepage screenshot](docs/screenshot-homepage.png)
1516
![Klovi homepage screenshot](docs/screenshot-session.png)
@@ -24,15 +25,20 @@ Download the latest release for your platform from the
2425
### Browser-served npm package
2526

2627
```bash
27-
# Node.js
28-
npx @cookielab.io/klovi
29-
30-
# Bun
3128
bunx @cookielab.io/klovi
3229
```
3330

34-
That starts a localhost-only server and opens your browser. For programmatic
35-
embedding:
31+
Klovi starts a localhost-only server on `http://127.0.0.1:3583`, opens your
32+
browser by default, and reads session data directly from the local storage used
33+
by each supported tool.
34+
35+
Compatibility run:
36+
37+
```bash
38+
npx @cookielab.io/klovi
39+
```
40+
41+
For programmatic embedding:
3642

3743
```ts
3844
import { startKloviServer } from "@cookielab.io/klovi/server";
@@ -47,6 +53,11 @@ Advanced CLI overrides:
4753
- `KLOVI_STATIC_DIR`
4854
- `KLOVI_SETTINGS_PATH`
4955

56+
CLI flags:
57+
58+
- `--port <number>`
59+
- `--no-browser`
60+
5061
## Development
5162

5263
```bash
@@ -56,7 +67,7 @@ bun install
5667
Use the root workspace scripts that match the runtime you want to exercise:
5768

5869
- `bun run dev:desktop` starts the Electrobun desktop app
59-
- `bun run dev:bun` starts the browser/npm variant through Bun
70+
- `bun run dev:bun` starts the browser-served package through Bun
6071
- `bun run dev:node` starts the browser/npm variant through Node/tsx
6172

6273
## Workspace Layout
@@ -68,7 +79,7 @@ Use the root workspace scripts that match the runtime you want to exercise:
6879

6980
### Packages
7081

71-
- `packages/server` - internal backend API, Effect-based, dual runtime
82+
- `packages/server` - backend services, RPC/HTTP server bootstrap, Effect runtime composition
7283
- `packages/ui` - shared React app shell and transport-neutral UI bootstrap
7384
- `packages/plugin-core` - plugin contracts and registry primitives
7485
- `packages/plugin-claude-code` - Claude Code discovery, parsing, frontend integration
@@ -79,11 +90,13 @@ Use the root workspace scripts that match the runtime you want to exercise:
7990

8091
## Features
8192

82-
- Unified browsing for Claude Code, Codex, and OpenCode sessions
93+
- Unified browsing for Claude Code, Codex CLI, and OpenCode sessions
8394
- Project merging across tools that share the same working directory
8495
- Search across discovered sessions
8596
- Session presentation mode for demos and talks
86-
- Desktop-native capabilities in the Electrobun app
97+
- Per-plugin enable/disable and data-directory settings
98+
- Security warning onboarding for local session access
99+
- Desktop-native capabilities in the Electrobun app, including update checks
87100
- Browser-served mode through a single npm package
88101
- Plugin-specific tool summaries, input formatting, and resume commands
89102

@@ -103,13 +116,13 @@ Use the root workspace scripts that match the runtime you want to exercise:
103116
| `bun run test:node-smoke` | Run the Node plugin runtime smoke test |
104117
| `bun run typecheck` | Run TypeScript type checking |
105118
| `bun run check` | Run Biome lint/format checks |
119+
| `bun run storybook` | Start the design-system Storybook |
106120

107121
## Documentation
108122

109123
- [docs/architecture.md](docs/architecture.md) - runtime/package architecture
110124
- [docs/components.md](docs/components.md) - UI layers and wrapper composition
111125
- [docs/testing.md](docs/testing.md) - test setup and verification workflow
112-
- [docs/ARCH2-VISION.md](docs/ARCH2-VISION.md) - canonical Arch2 target state
113126
- [CONTENT_TYPES.md](CONTENT_TYPES.md) - JSONL content type catalog
114127

115128
## Contributing

apps/package/README.md

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
# @cookielab.io/klovi
22

3-
Browse and present AI coding session history. Supports Claude Code, Codex (CLI & app), and OpenCode.
3+
Browse and present AI coding session history. Supports Claude Code, Codex CLI,
4+
and OpenCode.
45

56
## Quick Start
67

78
```bash
8-
# Run with Node.js
9-
npx @cookielab.io/klovi
10-
11-
# Run with Bun
129
bunx @cookielab.io/klovi
1310
```
1411

15-
Klovi starts a local server on `http://127.0.0.1:3583` and opens your browser. All data stays on your machine — sessions are read directly from each tool's local storage.
12+
Klovi starts a local server on `http://127.0.0.1:3583` and opens your browser.
13+
All data stays on your machine. Sessions are read directly from each tool's
14+
local storage.
15+
16+
Compatibility run:
17+
18+
```bash
19+
npx @cookielab.io/klovi
20+
```
1621

1722
## CLI Options
1823

@@ -65,9 +70,21 @@ Starts the Klovi backend server. Returns `{ url, stop() }`.
6570
## Supported Tools
6671

6772
- **Claude Code** — reads from `~/.claude/projects/`
68-
- **Codex** (CLI & app) — reads from `~/.codex/sessions/`
73+
- **Codex CLI** — reads from `~/.codex/sessions/`
6974
- **OpenCode** — reads from `~/.local/share/opencode/opencode.db`
7075

76+
## Settings
77+
78+
Klovi stores settings in `~/.klovi/settings.json` by default. The settings file
79+
tracks:
80+
81+
- enabled/disabled state for each built-in plugin
82+
- optional custom data directory overrides per plugin
83+
- general UI settings such as the security warning preference
84+
85+
In browser-served mode there is no native directory picker, so custom plugin
86+
paths are edited manually.
87+
7188
## License
7289

7390
MIT

docs/architecture.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ The shared source-of-truth packages are:
1414
- `packages/plugin-*`, `packages/ui-components`, and `packages/design-system`
1515
for plugins and reusable UI
1616

17+
Built-in plugins currently cover:
18+
19+
- Claude Code
20+
- Codex CLI
21+
- OpenCode
22+
1723
## Workspace Structure
1824

1925
```text
@@ -64,7 +70,7 @@ Klovi/
6470

6571
At runtime:
6672

67-
1. The user runs `npx @cookielab.io/klovi` or `bunx @cookielab.io/klovi`
73+
1. The user runs `bunx @cookielab.io/klovi` or `npx @cookielab.io/klovi`
6874
2. `startKloviPackageServer(...)` starts the backend and serves the UI bundle
6975
3. The browser loads `packages/ui` assets and talks to `/api/rpc/:method`
7076

@@ -149,6 +155,7 @@ shared bootstrap logic in `packages/server/src/effect/bootstrap.ts`.
149155
- HTTP RPC routing in `src/effect/http-app.ts`
150156
- service composition in `src/effect/server-services.ts`
151157
- registry creation and settings-backed refresh in `src/services/**`
158+
- built-in plugin catalog and auto-discovery based on configured data directories
152159

153160
Plugins remain separate packages:
154161

@@ -158,6 +165,13 @@ Plugins remain separate packages:
158165

159166
`packages/plugin-core` provides the registry and canonical plugin contracts.
160167

168+
Settings are stored in JSON and include:
169+
170+
- per-plugin `enabled` state
171+
- per-plugin `dataDir` overrides
172+
- general security warning preference
173+
- desktop update channel/check interval/auto-download preferences
174+
161175
## UI Layering
162176

163177
UI is split into two layers:
@@ -172,11 +186,14 @@ primitives consumed by `packages/ui` and `packages/ui-components`.
172186

173187
## Verification Workflow
174188

175-
The baseline verification set for the implemented architecture is:
189+
The repository baseline verification set is:
176190

177191
- `bun run check`
178192
- `bun run typecheck`
179193
- `bun test`
194+
195+
Additional release/runtime verification:
196+
180197
- `bun run test:node-smoke`
181198
- `bun run stage:npm`
182199
- `bun run verify:packed-artifact`

docs/components.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ This keeps distribution-specific behavior out of the reusable rendering layer.
3232
- `hooks/useViewState.ts` for route restoration and navigation
3333
- `hooks/useUpdateStatus.ts` for updater status subscription through the host bridge
3434
- `hooks/useTheme.ts` and `hooks/useHiddenProjects.ts` for persisted UI state
35+
- `hooks/usePresentationMode.ts`, `hooks/useKeyboard.ts`, and related utilities
36+
for session presentation UX
3537

3638
### Wrapper components
3739

@@ -52,6 +54,22 @@ These components connect `packages/ui-components` to `KloviClient`,
5254
The `Package*` prefix is intentional: these are app-shell wrappers around the
5355
reusable UI package, not dead code.
5456

57+
## Settings and Onboarding
58+
59+
`packages/ui/src/app/components/ui/Onboarding.tsx` drives first-run setup:
60+
61+
- step 1 shows the local security notice
62+
- step 2 lets the user enable/disable plugins and adjust plugin data paths
63+
64+
`packages/ui/src/app/components/settings/SettingsView.tsx` owns the in-app
65+
settings experience. The current sidebar tabs are:
66+
67+
- `general`
68+
- `plugins`
69+
70+
In desktop mode the general tab also surfaces update controls through
71+
`KloviHostBridge`.
72+
5573
## Reusable UI (`packages/ui-components`)
5674

5775
### Messages

docs/testing.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,18 @@ bun test packages/plugin-opencode/src
4343

4444
### `apps/package`
4545

46-
- `src/cli.test.ts`
4746
- `src/cli-config.test.ts`
4847
- `src/server.test.ts`
4948
- `src/integration.test.ts`
50-
- `src/http-app.test.ts`
51-
- `src/static-handler.test.ts`
5249

5350
These validate CLI wiring, package-only HTTP composition, and the browser/npm
5451
distribution entrypoint.
5552

5653
### `apps/desktop`
5754

5855
- `src/bun/updater.test.ts`
56+
- `scripts/package-appimage.test.ts`
57+
- `scripts/verify-macos-wrapper-contract.test.ts`
5958

6059
Desktop-specific tests are currently concentrated around updater behavior and
6160
desktop packaging/runtime wiring.

0 commit comments

Comments
 (0)