chat-logbook 0.2.1 → 0.3.1

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 CHANGED
@@ -1,26 +1,38 @@
1
1
  # chat-logbook
2
2
 
3
- A local-first conversation browser for Claude Code.
3
+ > _Where your AI conversations live._
4
4
 
5
- > **Status:** Early release (v0.2.1). Core browsing and rendering work well.
6
- > Search, filtering, tagging, and annotations are on the roadmap but not yet
7
- > implemented. See [Roadmap](#roadmap) for what's planned.
5
+ chat-logbook is a local-first library for your AI conversations. It reads the
6
+ files AI assistants write on your machine starting with Claude Code, with
7
+ more tools planned and presents them as a single browsable, searchable,
8
+ organizable history.
9
+
10
+ > **Status:** Early release (v0.3.0). Browsing, rendering, and
11
+ > soft-delete with Trash are working today. Search, tags, and
12
+ > annotations are on the way. See [Roadmap](#roadmap).
8
13
 
9
14
  ## About
10
15
 
11
- Claude Code stores every conversation as JSONL files in `~/.claude/`, but
12
- provides no UI to browse or revisit them. chat-logbook fills that gap — it
13
- reads those files and presents them in a browser, so you can review past
14
- sessions without digging through raw JSON.
16
+ You open chat-logbook from the command line, and a browser window opens onto
17
+ your conversation history. You can browse it, find anything in it, tag what
18
+ matters, and pick up where you left off.
19
+
20
+ Nothing leaves your machine. There is no account to create. The original
21
+ files written by your AI tools are never modified.
15
22
 
16
23
  Design principles:
17
24
 
18
- - **Read-only access to `~/.claude/`** never modify original conversation files.
19
- - **Local-only** no data leaves your machine.
20
- - **Zero configuration** — install and run, nothing else required.
25
+ - **Read-only access to source directories.** Original conversation files are
26
+ never modified. Today that means `~/.claude/`; the same rule applies to
27
+ every agent we add.
28
+ - **Local-only.** No telemetry, no analytics, no third-party calls.
29
+ - **Zero configuration.** Install and run.
30
+ - **Drive everything from the keyboard.** A `/` or `⌘K` overlay finds any
31
+ past conversation in seconds. The mouse still works, but every primary
32
+ action has a binding.
21
33
 
22
- The full problem statement, user stories, and implementation decisions live in
23
- the PRD: [issue #1](https://github.com/evaaaaawu/chat-logbook/issues/1).
34
+ The full problem statement, user stories, and direction live in the
35
+ [PRD](docs/PRD.md).
24
36
 
25
37
  ## What works today
26
38
 
@@ -123,15 +135,53 @@ No. chat-logbook reads from local `~/.claude/` files, which are only created by
123
135
 
124
136
  ## Roadmap
125
137
 
126
- - **Full-text search** — Find conversations by keywords across all projects
127
- - **Project filtering** Focus on conversations within a specific project
128
- - **Real-time streaming** Watch active conversations update live via SSE
129
- - **Keyboard shortcuts** `↑↓` to switch sessions, `/` to search, `Esc` to go back
130
- - **Soft delete & restore** — Hide sessions you don't need; restore them anytime
131
- - **Title editing** Customize session titles for easier identification
132
- - **Tag system** — Add color-coded tags to sessions, filter by multiple tags
133
- - **Annotations**Add notes next to any message in a conversation
134
- - **Highlights** — Mark important text within conversations
138
+ The headline feature on the way is **Spotlight Search** — a `⌘K` / `/` overlay
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).
142
+
143
+ Work is grouped into release milestones:
144
+
145
+ ### [v0.3.0Spotlight Alpha](https://github.com/evaaaaawu/chat-logbook/milestone/1)
146
+
147
+ - **Spotlight overlay skeleton** — `⌘K` / `/` opens an overlay; sessions picker; `Enter` opens, `Esc` closes
148
+ - **SQLite + soft delete & restore** — hide sessions you don't need; recover them anytime
149
+ - **Full keyboard contract** — Browse + Spotlight bindings unified
150
+
151
+ ### [v0.4.0 — Spotlight v1](https://github.com/evaaaaawu/chat-logbook/milestone/2)
152
+
153
+ - **FTS5 full-text messages search** — fast keyword search across all conversations, including CJK and file paths mentioned in tool calls
154
+ - **Incremental reindex** — newly-arrived messages are searchable within seconds
155
+ - **Message-level jump** — Spotlight matches scroll to the exact message and highlight the matched term, with a `n / m matches ↑↓ Esc` navigator bar
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
160
+
161
+ ### [v0.5.0 — Cross-vendor foundation](https://github.com/evaaaaawu/chat-logbook/milestones)
162
+
163
+ - **Parser plugin architecture** — one plugin per agent, behind a stable
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
169
+
170
+ ### Later
171
+
172
+ - **Real-time streaming** — watch active conversations update live via SSE
173
+ - **Annotations** — add notes next to any message in a conversation
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)
177
+
178
+ Explicit non-goals: semantic / vector search, cloud sync inside the OSS core,
179
+ and any modification of source directories like `~/.claude/`. See the
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.
135
185
 
136
186
  ## License
137
187
 
@@ -0,0 +1,6 @@
1
+ CREATE TABLE `sessions_meta` (
2
+ `session_id` text PRIMARY KEY NOT NULL,
3
+ `is_deleted` integer DEFAULT false NOT NULL,
4
+ `created_at` integer NOT NULL,
5
+ `updated_at` integer NOT NULL
6
+ );
@@ -0,0 +1,57 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "bc9f920f-c5a0-4f4f-b813-9ea2c69e0f7e",
5
+ "prevId": "00000000-0000-0000-0000-000000000000",
6
+ "tables": {
7
+ "sessions_meta": {
8
+ "name": "sessions_meta",
9
+ "columns": {
10
+ "session_id": {
11
+ "name": "session_id",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "is_deleted": {
18
+ "name": "is_deleted",
19
+ "type": "integer",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false,
23
+ "default": false
24
+ },
25
+ "created_at": {
26
+ "name": "created_at",
27
+ "type": "integer",
28
+ "primaryKey": false,
29
+ "notNull": true,
30
+ "autoincrement": false
31
+ },
32
+ "updated_at": {
33
+ "name": "updated_at",
34
+ "type": "integer",
35
+ "primaryKey": false,
36
+ "notNull": true,
37
+ "autoincrement": false
38
+ }
39
+ },
40
+ "indexes": {},
41
+ "foreignKeys": {},
42
+ "compositePrimaryKeys": {},
43
+ "uniqueConstraints": {},
44
+ "checkConstraints": {}
45
+ }
46
+ },
47
+ "views": {},
48
+ "enums": {},
49
+ "_meta": {
50
+ "schemas": {},
51
+ "tables": {},
52
+ "columns": {}
53
+ },
54
+ "internal": {
55
+ "indexes": {}
56
+ }
57
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": "7",
3
+ "dialect": "sqlite",
4
+ "entries": [
5
+ {
6
+ "idx": 0,
7
+ "version": "6",
8
+ "when": 1777980160883,
9
+ "tag": "0000_safe_slapstick",
10
+ "breakpoints": true
11
+ }
12
+ ]
13
+ }