chat-logbook 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +118 -110
- package/api/dist/drizzle/meta/0000_snapshot.json +1 -1
- package/api/dist/drizzle/meta/_journal.json +1 -1
- package/package.json +2 -1
- package/web/dist/assets/index-CQ5msTmS.js +46 -0
- package/web/dist/assets/index-PXuuCcJl.css +2 -0
- package/web/dist/index.html +2 -2
- package/web/dist/assets/index-BUdP7qN7.css +0 -2
- package/web/dist/assets/index-DJ2cUTH-.js +0 -37
package/README.md
CHANGED
|
@@ -2,48 +2,71 @@
|
|
|
2
2
|
|
|
3
3
|
> _Where your AI conversations live._
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
organizable history.
|
|
5
|
+
A local-first library for the conversations you've had with your AI tools.
|
|
6
|
+
Read by chat-logbook, kept on your machine, browsable and searchable in one
|
|
7
|
+
place — even after your AI tool has deleted the original.
|
|
9
8
|
|
|
10
|
-
> **Status
|
|
11
|
-
>
|
|
12
|
-
>
|
|
9
|
+
> **Status.** A personal side project, moving at side-project pace —
|
|
10
|
+
> development and responses happen as time allows. Early release:
|
|
11
|
+
> browsing, rendering, soft-delete, and a local archive that survives
|
|
12
|
+
> vendor cleanup all work today. Search and tags are next. See
|
|
13
|
+
> [Roadmap](#roadmap).
|
|
13
14
|
|
|
14
|
-
##
|
|
15
|
+
## What chat-logbook is
|
|
15
16
|
|
|
16
|
-
You open
|
|
17
|
-
|
|
17
|
+
You open it from the command line, and a browser window opens onto your
|
|
18
|
+
conversation history. You can browse it, find anything in it, tag what
|
|
18
19
|
matters, and pick up where you left off.
|
|
19
20
|
|
|
21
|
+
It reads the files your AI tools already write to your machine — Claude Code
|
|
22
|
+
today, with more tools planned. From there it keeps its own copy in a
|
|
23
|
+
private archive on your machine, so the history is yours even when the
|
|
24
|
+
source tool quietly cleans up after itself (Claude Code defaults to deleting
|
|
25
|
+
conversations older than 30 days).
|
|
26
|
+
|
|
20
27
|
Nothing leaves your machine. There is no account to create. The original
|
|
21
|
-
files
|
|
28
|
+
files your AI tools wrote are never modified.
|
|
29
|
+
|
|
30
|
+
We built this because the right place for your AI conversations to live
|
|
31
|
+
isn't inside the next vendor change.
|
|
22
32
|
|
|
23
|
-
|
|
33
|
+
## What it gives you
|
|
24
34
|
|
|
25
|
-
- **Read-only access to source directories.** Original conversation files
|
|
26
|
-
never modified. Today that means `~/.claude/`; the same rule applies
|
|
27
|
-
every agent we add.
|
|
35
|
+
- **Read-only access to source directories.** Original conversation files
|
|
36
|
+
are never modified. Today that means `~/.claude/`; the same rule applies
|
|
37
|
+
to every agent we add.
|
|
28
38
|
- **Local-only.** No telemetry, no analytics, no third-party calls.
|
|
29
39
|
- **Zero configuration.** Install and run.
|
|
30
40
|
- **Drive everything from the keyboard.** A `/` or `⌘K` overlay finds any
|
|
31
41
|
past conversation in seconds. The mouse still works, but every primary
|
|
32
42
|
action has a binding.
|
|
43
|
+
- **Your archive is yours.** It's a single SQLite file at
|
|
44
|
+
`~/.chat-logbook/archive.db`. Copy it to back up. Open it with any tool
|
|
45
|
+
that reads SQLite. If chat-logbook disappears tomorrow, the archive
|
|
46
|
+
doesn't.
|
|
33
47
|
|
|
34
48
|
The full problem statement, user stories, and direction live in the
|
|
35
49
|
[PRD](docs/PRD.md).
|
|
36
50
|
|
|
37
51
|
## What works today
|
|
38
52
|
|
|
39
|
-
- **Three-column layout
|
|
40
|
-
|
|
41
|
-
- **
|
|
42
|
-
|
|
53
|
+
- **Three-column layout.** Resizable panels for filters, session list,
|
|
54
|
+
and conversation content.
|
|
55
|
+
- **Rich conversation rendering.** Markdown, syntax-highlighted code
|
|
56
|
+
blocks, collapsible tool calls with one-line summaries, and collapsible
|
|
57
|
+
thinking blocks.
|
|
58
|
+
- **Virtual scrolling.** Long conversations scroll smoothly.
|
|
59
|
+
- **Solarized Dark theme.** Easy on the eyes, consistent with Claude
|
|
60
|
+
Code's terminal look.
|
|
61
|
+
- **Soft delete with Trash.** Hide sessions you don't want to see; restore
|
|
62
|
+
them anytime.
|
|
63
|
+
- **Local archive.** Every conversation chat-logbook reads is copied into
|
|
64
|
+
`~/.chat-logbook/archive.db`. The UI reads from the archive, so a
|
|
65
|
+
session stays visible even after the source JSONL is gone.
|
|
43
66
|
|
|
44
67
|
## Quick start
|
|
45
68
|
|
|
46
|
-
Requirements: Node.js 20
|
|
69
|
+
Requirements: Node.js 20 or later.
|
|
47
70
|
|
|
48
71
|
Install globally for a shorter command:
|
|
49
72
|
|
|
@@ -64,129 +87,114 @@ You should see:
|
|
|
64
87
|
chat-logbook is running at http://localhost:3100
|
|
65
88
|
```
|
|
66
89
|
|
|
67
|
-
|
|
90
|
+
A browser window opens automatically, showing a list of your Claude Code
|
|
91
|
+
sessions on the left and conversation content on the right.
|
|
68
92
|
|
|
69
93
|
### Troubleshooting
|
|
70
94
|
|
|
71
|
-
**"No conversations found"**
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
**Port already in use**
|
|
75
|
-
By default, chat-logbook runs on port 3100. Use `PORT=8080 chat-log` to specify a different port.
|
|
76
|
-
|
|
77
|
-
**Updating to the latest version**
|
|
78
|
-
Run `npm install -g chat-logbook@latest` to update. If you use npx, the `@latest` tag ensures you always run the newest version.
|
|
79
|
-
|
|
80
|
-
## Architecture
|
|
95
|
+
**"No conversations found."**
|
|
96
|
+
You need to have Claude Code conversation history at `~/.claude/`.
|
|
97
|
+
chat-logbook reads from this directory automatically.
|
|
81
98
|
|
|
82
|
-
|
|
99
|
+
**"Port already in use."**
|
|
100
|
+
chat-logbook runs on port 3100 by default. Use `PORT=8080 chat-log` to
|
|
101
|
+
pick a different port.
|
|
83
102
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
| `web/` | Frontend — three-column SPA with conversation rendering | React + Vite + Tailwind CSS + shadcn/ui |
|
|
103
|
+
**Updating to the latest version.**
|
|
104
|
+
Run `npm install -g chat-logbook@latest`. If you use npx, the `@latest`
|
|
105
|
+
tag ensures you always run the newest version.
|
|
88
106
|
|
|
89
|
-
|
|
90
|
-
assets from a single Node.js process. During development, Vite proxies `/api`
|
|
91
|
-
requests to the Hono dev server.
|
|
92
|
-
|
|
93
|
-
### How it reads conversations
|
|
94
|
-
|
|
95
|
-
chat-logbook reads conversation data directly from the JSONL files that Claude
|
|
96
|
-
Code stores in `~/.claude/`. It **never modifies** these files — your original
|
|
97
|
-
conversation data is always left untouched.
|
|
107
|
+
## FAQ
|
|
98
108
|
|
|
99
|
-
|
|
100
|
-
interactions that Claude Code does not persist (such as `/btw` side questions)
|
|
101
|
-
cannot be displayed.
|
|
109
|
+
### Does chat-logbook work with Claude Code on the web?
|
|
102
110
|
|
|
103
|
-
|
|
111
|
+
No. chat-logbook reads from local `~/.claude/` files, which are only
|
|
112
|
+
created by the Claude Code CLI on your machine. Conversations run via
|
|
113
|
+
Claude Code on the web (cloud VMs) are not stored locally and aren't
|
|
114
|
+
visible to chat-logbook.
|
|
104
115
|
|
|
105
|
-
|
|
116
|
+
### Why can't I see my `/btw` conversations?
|
|
106
117
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
pnpm dev
|
|
112
|
-
```
|
|
118
|
+
`/btw` is designed to be ephemeral — questions and answers appear in a
|
|
119
|
+
temporary overlay and are never written to conversation history files.
|
|
120
|
+
For a conversation to be preserved and visible in chat-logbook, send a
|
|
121
|
+
regular message instead.
|
|
113
122
|
|
|
114
|
-
###
|
|
123
|
+
### Will chat-logbook lose my history if Claude Code deletes its files?
|
|
115
124
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
| `pnpm typecheck` | Type-check all workspaces |
|
|
125
|
+
Once chat-logbook has read a conversation into its archive, vendor
|
|
126
|
+
cleanup of the original file no longer removes it from chat-logbook.
|
|
127
|
+
The archive's contract: never delete in response to source deletion.
|
|
128
|
+
Only an explicit user action (Hard Delete / Purge) removes archived
|
|
129
|
+
conversations.
|
|
122
130
|
|
|
123
|
-
|
|
124
|
-
the test suite on every commit.
|
|
131
|
+
### Where is my data stored?
|
|
125
132
|
|
|
126
|
-
|
|
133
|
+
Three places, all on your machine:
|
|
127
134
|
|
|
128
|
-
|
|
135
|
+
- `~/.claude/` (and equivalents for other tools) — read-only source.
|
|
136
|
+
- `~/.chat-logbook/archive.db` — chat-logbook's copy of the
|
|
137
|
+
conversations it has read.
|
|
138
|
+
- `~/.chat-logbook/data.db` — your tags, titles, annotations, and
|
|
139
|
+
soft-delete flags.
|
|
129
140
|
|
|
130
|
-
|
|
141
|
+
Back up the two `~/.chat-logbook/` files together; they are the
|
|
142
|
+
complete chat-logbook state.
|
|
131
143
|
|
|
132
|
-
###
|
|
144
|
+
### Is this affiliated with Anthropic / OpenAI?
|
|
133
145
|
|
|
134
|
-
|
|
146
|
+
No. chat-logbook reads files those tools write on your machine. It
|
|
147
|
+
doesn't talk to their servers and isn't endorsed by them.
|
|
135
148
|
|
|
136
149
|
## Roadmap
|
|
137
150
|
|
|
138
|
-
|
|
139
|
-
that searches across sessions, messages, tags, and projects with full keyboard
|
|
140
|
-
navigation, full-text matching (SQLite FTS5 trigram), and message-level jump +
|
|
141
|
-
highlight. It is tracked as the [Spotlight Search epic (#5)](https://github.com/evaaaaawu/chat-logbook/issues/5).
|
|
151
|
+
Two phases of work are in flight, in this order.
|
|
142
152
|
|
|
143
|
-
|
|
153
|
+
**Custom titles and tags.** Rename a session to something you'll
|
|
154
|
+
recognize, attach tags with custom colors, and filter the list by tag or
|
|
155
|
+
by project. This is the path from "I have a lot of conversations" to
|
|
156
|
+
"I can find the one I need."
|
|
144
157
|
|
|
145
|
-
|
|
158
|
+
**Spotlight search.** A keyboard-driven overlay (`⌘K` or `/`) that
|
|
159
|
+
searches across sessions, messages, tags, and projects from one input.
|
|
160
|
+
A match lands you on the exact message with the term highlighted, and
|
|
161
|
+
you can jump between every match without leaving the overlay.
|
|
146
162
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
163
|
+
Beyond these three, several smaller things are on the list without firm
|
|
164
|
+
timing — live updates while an AI tool is writing, annotations and
|
|
165
|
+
highlights for marking what matters, editing your own past messages,
|
|
166
|
+
CLI commands for working with conversations from a terminal. Some will
|
|
167
|
+
ship; some are still being weighed.
|
|
150
168
|
|
|
151
|
-
|
|
169
|
+
Explicit non-goals: semantic / vector search, cloud sync inside the OSS
|
|
170
|
+
core, modification of source directories like `~/.claude/`, and bulk
|
|
171
|
+
export to bespoke formats (the archive itself is the export). See the
|
|
172
|
+
[PRD](docs/PRD.md) for the full out-of-scope list.
|
|
152
173
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
- **Tags & Projects pickers** — `Tab`-cycle picker scopes; tag/project selection applies the same filter pipeline as the navigation panel
|
|
157
|
-
- **Tag system + tag filtering** — color-coded tags, multi-tag AND filtering
|
|
158
|
-
- **Project filtering** — focus on conversations within a specific project
|
|
159
|
-
- **Title editing** — customize session titles for easier identification
|
|
174
|
+
This project is **not affiliated with Anthropic, OpenAI, or any other AI
|
|
175
|
+
provider.** It reads files those tools write on your machine; it does
|
|
176
|
+
not talk to their servers and is not endorsed by them.
|
|
160
177
|
|
|
161
|
-
|
|
178
|
+
## Changelog
|
|
162
179
|
|
|
163
|
-
|
|
164
|
-
interface, so adding a new tool is a contained change
|
|
165
|
-
- **First additional agents** — Codex CLI and Aider plugins, alongside the
|
|
166
|
-
existing Claude Code reader
|
|
167
|
-
- **`SyncProvider` interface stub** — a no-op default in the OSS core, leaving
|
|
168
|
-
the integration point open for an opt-in cloud product later
|
|
180
|
+
See [CHANGELOG.md](CHANGELOG.md) for release notes.
|
|
169
181
|
|
|
170
|
-
|
|
182
|
+
## Contributing
|
|
171
183
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
- **Highlights** — mark important text within conversations
|
|
175
|
-
- **`#tag` / `@project` prefix syntax** in Spotlight (fast-follow)
|
|
176
|
-
- **Recent-sessions empty state + onboarding hint** in Spotlight (fast-follow)
|
|
184
|
+
Chat Logbook is in very early development. To keep focus on the current
|
|
185
|
+
goals, we're not taking contributions right now.
|
|
177
186
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
[PRD](docs/PRD.md) for the full out-of-scope list.
|
|
181
|
-
|
|
182
|
-
This project is **not affiliated with Anthropic, OpenAI, or any other AI
|
|
183
|
-
provider.** It reads files those tools write on your machine; it does not
|
|
184
|
-
talk to their servers and is not endorsed by them.
|
|
187
|
+
If there's something you really need — or you'd genuinely like to help —
|
|
188
|
+
reach out directly and we can talk through it.
|
|
185
189
|
|
|
186
190
|
## License
|
|
187
191
|
|
|
188
|
-
This project is licensed under the
|
|
192
|
+
This project is licensed under the
|
|
193
|
+
[GNU Affero General Public License v3.0](LICENSE) (AGPL-3.0-only).
|
|
189
194
|
|
|
190
|
-
You are free to use, modify, and distribute this software under the
|
|
195
|
+
You are free to use, modify, and distribute this software under the
|
|
196
|
+
terms of the AGPL-3.0. If you modify the program and make it available
|
|
197
|
+
over a network, you must release your modified source code under the
|
|
198
|
+
same license.
|
|
191
199
|
|
|
192
|
-
For commercial licensing inquiries,
|
|
200
|
+
For commercial licensing inquiries, contact the author.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chat-logbook",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "A local-first conversation manager for Claude Code",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"type": "module",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
]
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
+
"better-sqlite3": "^12.9.0",
|
|
35
36
|
"update-notifier": "^7.3.1"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|