pelican-cc 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.
Files changed (54) hide show
  1. package/CHANGELOG.md +199 -0
  2. package/README.md +8 -6
  3. package/dist/server/index.js +6238 -1001
  4. package/dist/server/index.js.map +4 -4
  5. package/dist/web/assets/Chat-hw_dVyZ5.js +101 -0
  6. package/dist/web/assets/Chat-hw_dVyZ5.js.br +0 -0
  7. package/dist/web/assets/Chat-hw_dVyZ5.js.gz +0 -0
  8. package/dist/web/assets/ModelSheet-DDh0NARP.js +1 -0
  9. package/dist/web/assets/ModelSheet-DDh0NARP.js.br +0 -0
  10. package/dist/web/assets/ModelSheet-DDh0NARP.js.gz +0 -0
  11. package/dist/web/assets/Settings-ByxVBoK1.js +4 -0
  12. package/dist/web/assets/Settings-ByxVBoK1.js.br +0 -0
  13. package/dist/web/assets/Settings-ByxVBoK1.js.gz +0 -0
  14. package/dist/web/assets/Usage-DvP3bGmY.js +1 -0
  15. package/dist/web/assets/Usage-DvP3bGmY.js.br +0 -0
  16. package/dist/web/assets/Usage-DvP3bGmY.js.gz +0 -0
  17. package/dist/web/assets/WorkspaceChanges-Cnv5Vi7J.js +1 -0
  18. package/dist/web/assets/WorkspaceChanges-Cnv5Vi7J.js.br +0 -0
  19. package/dist/web/assets/WorkspaceChanges-Cnv5Vi7J.js.gz +0 -0
  20. package/dist/web/assets/WorkspaceFiles-CSlYqC41.js +1 -0
  21. package/dist/web/assets/WorkspaceFiles-CSlYqC41.js.br +0 -0
  22. package/dist/web/assets/WorkspaceFiles-CSlYqC41.js.gz +0 -0
  23. package/dist/web/assets/index-Ck4Wpk8v.css +2 -0
  24. package/dist/web/assets/index-Ck4Wpk8v.css.br +0 -0
  25. package/dist/web/assets/index-Ck4Wpk8v.css.gz +0 -0
  26. package/dist/web/assets/index-fRwaTlu9.js +40 -0
  27. package/dist/web/assets/index-fRwaTlu9.js.br +0 -0
  28. package/dist/web/assets/index-fRwaTlu9.js.gz +0 -0
  29. package/dist/web/assets/usage-CHTS1DtT.js +1 -0
  30. package/dist/web/assets/usage-CHTS1DtT.js.br +0 -0
  31. package/dist/web/assets/usage-CHTS1DtT.js.gz +0 -0
  32. package/dist/web/index.html +2 -2
  33. package/dist/web/index.html.br +0 -0
  34. package/dist/web/index.html.gz +0 -0
  35. package/dist/web/sw.js +56 -14
  36. package/dist/web/sw.js.br +0 -0
  37. package/dist/web/sw.js.gz +0 -0
  38. package/npm-shrinkwrap.json +114 -598
  39. package/package.json +3 -3
  40. package/dist/web/assets/Chat-BZ4Kv_y0.js +0 -73
  41. package/dist/web/assets/Chat-BZ4Kv_y0.js.br +0 -0
  42. package/dist/web/assets/Chat-BZ4Kv_y0.js.gz +0 -0
  43. package/dist/web/assets/ModelSheet-CrgB7jGC.js +0 -1
  44. package/dist/web/assets/ModelSheet-CrgB7jGC.js.br +0 -0
  45. package/dist/web/assets/ModelSheet-CrgB7jGC.js.gz +0 -0
  46. package/dist/web/assets/Settings-BYSfCOfJ.js +0 -3
  47. package/dist/web/assets/Settings-BYSfCOfJ.js.br +0 -0
  48. package/dist/web/assets/Settings-BYSfCOfJ.js.gz +0 -0
  49. package/dist/web/assets/index-DTXoHe9U.js +0 -30
  50. package/dist/web/assets/index-DTXoHe9U.js.br +0 -0
  51. package/dist/web/assets/index-DTXoHe9U.js.gz +0 -0
  52. package/dist/web/assets/index-DYo6H59g.css +0 -2
  53. package/dist/web/assets/index-DYo6H59g.css.br +0 -0
  54. package/dist/web/assets/index-DYo6H59g.css.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,204 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0
4
+
5
+ Files, changes and side chats as in Claude Desktop, workflows and `!` commands you can watch, and
6
+ your usage from every app.
7
+
8
+ ### Highlights
9
+
10
+ - **Changes and files.** See what each turn changed (T1, T2…, numbered and counted as Claude
11
+ Code's `/diff` does until a compaction, from its own record, so also outside git), what is
12
+ uncommitted, or everything since your branch split from main, with diffs, and Rewind code where
13
+ Claude Code kept a checkpoint. Search the folder by name or in the text, and read a file with
14
+ line numbers, Markdown and HTML previewed. A file a step names, or a `path:line` in a reply,
15
+ opens at its line, and under a turn that edited files "3 files changed" opens them. On a phone
16
+ it is a view of its own that the back gesture steps through; on a computer it sits beside the
17
+ conversation from 1024px wide.
18
+ - **Side chats.** `/btw`, Cmd/Ctrl+; or Side chat in the session menu asks something on the side,
19
+ as in Claude Desktop. Claude answers from a read-only copy of the session (Read, Grep and Glob,
20
+ no MCP servers, never Bypass), and is told so with each question, as in Desktop. Nothing goes
21
+ back to the session, which keeps working. It sits beside the conversation from 1024px wide,
22
+ taking turns with Changes and files, and is a sheet on a phone. Side chats are Claude Code
23
+ sessions titled "Side chat", kept out of the session list (List options > Side chats shows them),
24
+ and continue in the CLI and Desktop; opened from the list, one keeps its box for questions only.
25
+ - **Quote.** Select text in a reply, a step's output or a file and tap Quote. The quote waits
26
+ above the message box with your draft and goes above your words as a `>` quote; lines of a file
27
+ carry where they are, as `src/app.ts:7-8`.
28
+ - **Live `!` commands.** Output as it comes, with Stop, for up to 30 minutes. When a command ends,
29
+ Claude answers it, as in the CLI, unless `respondToBashCommands` is false. Commands are written
30
+ the way Claude Code writes them, so the terminal and Desktop show Pelican's, and Pelican shows
31
+ theirs.
32
+ - **Usage and activity.** Settings > Usage and activity shows your Claude Code usage on this
33
+ computer, from every app: tokens of each kind over 7 days, 30 days or all time, per day,
34
+ sessions, active days and streaks, and where they went by project, model, app and session, with
35
+ a few highlights. On a plan its limits are at the top; on an API key or a provider, the cost
36
+ Claude Code estimates. Each reply counts once, also when it was copied into a side chat or a
37
+ branch; Claude Code's `/stats` counts each content block, so its totals are higher. The session
38
+ menu shows what that session used.
39
+ - **Workflows.** A workflow (Claude Code's Workflow tool) shows as a card, as Claude Code shows
40
+ one, instead of its script's first line: its name, Running or how it ended with its agents and
41
+ tokens, its phases one a line (Review · 3 of 5 done) opening into their agents and each agent's
42
+ steps, the script and the result. It is live, with Stop, in sessions Pelican runs, and read from
43
+ the run's folder for other apps'; its end, also one that came while Claude worked (those were
44
+ lost), leads back to the card. Asked to run one, the approval shows its phases, the args its
45
+ script runs with and the file it runs.
46
+
47
+ ### Changes in behavior
48
+
49
+ - Line comments go with your next message in the session they were written in, before your words,
50
+ as in Claude Desktop, or on their own with Cmd/Ctrl+Enter, instead of Add to message. They are
51
+ kept across reloads and forgotten on sign-out.
52
+ - Transcript views are Claude Desktop's: Normal, Thinking and Verbose, and Ctrl+O steps through
53
+ them. Thinking shows in a session's menu once Claude has thought there. A session set to Summary
54
+ opens in Normal.
55
+ - A `!` command may run 30 minutes instead of two, and Claude answers it when it ends, which is a
56
+ turn like a prompt. A command you stop gets no answer, and one still running when Pelican stops
57
+ gets up to 15 seconds to tidy up, then ends with it; Ctrl+C again ends it at once. Under launchd
58
+ it gets what the login item leaves: `pelican service install` now asks launchd for 20 seconds,
59
+ where it gave 5.
60
+ - Claude gets a `!` command's output as Claude Code's bash mode gives it, in the record Claude
61
+ Code writes for the same output: stdout and stderr together in the order they were written, as
62
+ much as Claude Code reads back of it, 30,000 bytes or what `bashOutputMaxChars` sets (where that
63
+ is unset, BASH_MAX_OUTPUT_LENGTH, 1 to 150,000), instead of up to 200,000 characters of each. A
64
+ failed one is cut there. One that went well and printed more is saved in the session's
65
+ `tool-results` folder, where Claude Code saves one, up to 64MB, and Claude gets its start and
66
+ where it is; so is one whose text is longer than Claude gets inline (30,000 characters, or what
67
+ `bashOutputMaxChars` sets). Exit code 1 from grep, diff, test or find is an answer, not a
68
+ failure, when that command is the line's last statement as Claude Code's parser reads it (not
69
+ in a subshell or a `{ }` group; a comment is none). The record no longer adds the exit code, or
70
+ that something runs on in the background, as Claude Code's adds neither.
71
+ - What Claude changes in answer to a `!` command is that command's turn in Changes, as in `/diff`;
72
+ a message of files alone starts a turn, a picture sent without words none, and a new file's
73
+ lines count as `/diff` counts them. After a compaction `/diff` numbers from 1 again, and it reads
74
+ only the last 4,096 messages, so in a longer stretch its T1 is a later turn; Pelican, which shows
75
+ every turn, counts on from the first.
76
+ - A renamed file's diff shows the rename and what changed in it, instead of the whole file as new;
77
+ one renamed whole says "Renamed from …, unchanged".
78
+ - Push and Create PR, on the branch line, show only where the repository has a remote with an
79
+ address, not one that only a system or managed git config names (a fetch line for every
80
+ repository).
81
+ - Changes and files docks from 1024px wide instead of 1440px; below 1280px the session list folds
82
+ away while it is open, and Cmd/Ctrl+K brings it back.
83
+ - Cmd/Ctrl+\ closes Changes and files when pressed in it, as it closes the side chat and as Close
84
+ pane does in Claude Desktop; closed, the pane gives the keys to the button that opens it.
85
+ - The keyboard shortcuts (Cmd/Ctrl+/) list Changes and files (Cmd/Ctrl+Shift+D), Close pane
86
+ (Cmd/Ctrl+\) and Send comments (Cmd/Ctrl+Enter), and call Ctrl+O Transcript view.
87
+ - Commit, Push and Create PR, on the branch line, put a request to Claude in the message box, so
88
+ your rules, hooks and attribution apply. Pelican runs no git that changes anything.
89
+
90
+ ### Sessions and the list
91
+
92
+ - Claude Desktop's side chats stay out of the list also once Claude Code has given them the
93
+ session's title again, as it does when their Claude exits; most showed as more sessions with
94
+ that title.
95
+
96
+ ### The conversation
97
+
98
+ - An approval says Claude's few words on a command once, also when Claude Code passes them as its
99
+ own line too.
100
+ - A failed request at the end of the conversation offers Retry, which sends the prompt again with
101
+ its files, or Compact when the conversation is too long.
102
+ - Scheduled check-ins have Cancel, which asks Claude to cancel them.
103
+ - An MCP server that needs you to sign in says where: `claude mcp login <name>` in a terminal on
104
+ the computer, or claude.ai's connectors page.
105
+ - Approval notifications have Allow and Deny where the device shows buttons on notifications
106
+ (Chrome on a computer or Android), for a command a notification shows whole: printable ASCII with
107
+ one space between words, on one line, short enough for two lines of the narrowest notification
108
+ (about 50 characters, fewer when they are wide), and on Android, whose pop-up shows one line
109
+ beside the buttons, for that one line (about 20). A notification shows the command itself, not
110
+ Claude's description of it; edits, other tools, other commands, questions and plans open the
111
+ session.
112
+ - Notifications and check-ins keep emoji whole, also those made of several pictures, and still
113
+ leave out characters that hide text or turn it around, now also from a notification's title, the
114
+ session's. Their text is cut between characters as they show, and sooner where those hold many
115
+ code points (one letter can carry any number of accents), so a notification stays within the
116
+ 4 KB a push service carries.
117
+ - Export as Markdown has the conversation as it shows here: `!` and `/` commands as typed, as
118
+ code, with their output; the files and pictures sent with a prompt; Claude Code's own lines,
119
+ such as a background task's note, Interrupted, a failed request (naming the computer, as the
120
+ conversation does) or a hook's word, and a command that failed marked so; and none of
121
+ the tags, notes and summaries Claude Code and Pelican add for Claude, such as a side chat's note
122
+ with each question.
123
+ - The session menu shows the session's tokens, the share from the cache, its models and
124
+ compactions, and its cost where Claude Code counts one.
125
+ - A finished `!` command shows the end of its output, as it did while it ran; Show all shows the
126
+ start, and for one too long for the conversation what Claude Code saved of it (up to 64MB), from
127
+ that file, a page at a time, also in a branch that copied it. One that printed nothing shows the
128
+ command alone, and one that failed says Failed, or Stopped, where its live card said how it
129
+ ended; a record from before (Claude Code before 2.1.80, Pelican before 0.4) says so only where
130
+ it noted it. A running one's Stop is named for it.
131
+ - Claude's answer to a background task's note shows after the note, not in the reply before it.
132
+ - A message that does not go comes back to the message box, files and all, above anything typed
133
+ since. A `!` or `/` command comes back only into an empty box; with words or files there, it
134
+ waits above the box, Not sent, with Put back, as does a message, files and all, that comes back
135
+ while a command is typed. A `/` command goes with its words alone: files in the box wait for the
136
+ next message, as quotes do. What waits stays across reloads, and in a new session goes on with
137
+ the session once it starts, line comments too. Put back brings words and files back together, or, where they cannot
138
+ share the box, swaps them with what is there, which waits in its place, Set aside. One sent for
139
+ you (Send now, Compact, Retry, Cancel) leaves the box as it is.
140
+ - A path or "files changed" tapped while the side chat is open puts it away and opens Changes and
141
+ files.
142
+ - Side chat in the session menu leaves the keys in the side chat's box, which, beside the
143
+ conversation on a tablet, keeps clear of the home indicator, level with the conversation's.
144
+ Quotes that do not fit above the message box fade at its edge, and removing one with the
145
+ keyboard moves on to the next.
146
+ - A conversation opens without the code of Changes and files, which follows once it is up, and
147
+ Settings without the usage page.
148
+
149
+ ### Changes and files
150
+
151
+ - Search in files shows each hit where it is on its line, after a "…" when it is far along,
152
+ marked in amber.
153
+ - A file's Quote and Copy sit in a row of their own under the file, so nothing scrolls beneath
154
+ them.
155
+ - On a touch screen, search results and a step's file name are a finger tall, and the lowest row
156
+ of Changes and files (Quote and Copy, Send now, or the bar saying Claude needs you) keeps clear
157
+ of the home indicator, on a phone and beside the conversation on a tablet.
158
+ - Esc in a comment on a file gives the keys back to the file, as on a diff, so the next Esc closes
159
+ the view.
160
+
161
+ ### Security
162
+
163
+ - In a folder kept to your settings only, a `!` command runs git as Claude Code does there, with
164
+ none of the repository's own programs (its file-system monitor, filters or hooks folder).
165
+ - Changes and files reads only regular files inside the folder it is asked about (the session's),
166
+ links followed and checked. Downloads come as inert attachments. Search runs the ripgrep inside
167
+ Claude Code with no config, an empty environment, no git and no links followed.
168
+ - Show all on a long `!` command reads the file Claude Code saved its output in by that file's
169
+ name alone, from the session's own `tool-results` folder, or, for a record a branch copied, from
170
+ that of the session its row says it came from, when the record's path names that session: a
171
+ regular file reached through no link and with no other name.
172
+ - A page in Files runs its scripts only after Run, and again only after another Run once it has
173
+ been rewritten; a page opened straight from another file never starts running.
174
+ - A side chat only reads, asks for nothing, and takes no `/` or `!` commands. A side chat branched
175
+ from one of its questions is one too.
176
+ - Notification buttons go through the same checks as the page, and Allow is offered only for a
177
+ command a notification shows in full: printable ASCII with one space between words, on one line,
178
+ that fits two lines of the narrowest notification in its widest letters, and on Android, whose
179
+ pop-up shows one line beside the buttons, that one line.
180
+
181
+ ### Site, docs and project
182
+
183
+ - The demo's files have their text, and the files its conversations name open at the lines they
184
+ name.
185
+ - The docs cover Changes and files, side chats, quotes, live `!` commands, the views and the
186
+ usage page, and the coverage table moves side questions, views, quotes and Create PR to Yes.
187
+ - On a phone, the website leads with the two buttons and the install command, then shows the app
188
+ in the same phone frame as on a computer, whole when you scroll, instead of a cropped card.
189
+ - The browser smoke test checks the docked pane at 1024, 1280 and 1440px and the side chat pane at
190
+ 1024px, where it asks a question, and opens older sessions at one size only, to keep CI quick.
191
+
192
+ ## 0.3.1
193
+
194
+ - New sessions start at High effort until you pick another in Settings (New sessions start with >
195
+ Model); picking Default there leaves the effort to Claude Code, as before. Sessions that already
196
+ ran keep what they ran with, and a model without effort levels gets none.
197
+ - On a computer, Changes and files docked beside the conversation is no longer cut off at the
198
+ right edge when the conversation holds long lines (the column grew to fit them).
199
+ - The website's phone pictures show the whole screen, the message box included.
200
+ - qrcode-generator 2 and esbuild 0.28 (the QR codes are the same, checked bit for bit).
201
+
3
202
  ## 0.3.0
4
203
 
5
204
  Every Claude Code session on your computer, on your phone. This release follows a ten-angle audit
package/README.md CHANGED
@@ -66,12 +66,15 @@ The docs cover [an SSH tunnel or your own proxy](https://ki-seki.github.io/pelic
66
66
  every compaction. When another app is working on one, or waits for you there, Pelican says which
67
67
  app; once it is idle, continue it here.
68
68
  - **All of Claude Code.** Approvals with the diff, plans and questions, steer or queue while Claude
69
- works, `!` commands, `/` commands and skills, `@` files, every model and permission mode, rewind
70
- and branch, subagents and background tasks, MCP servers and usage limits.
69
+ works, side chats, `!` commands with their output live, `/` commands and skills, `@` files, every
70
+ model and permission mode, rewind and branch, subagents and background tasks, MCP servers.
71
71
  - **What Claude makes, in place.** Charts and diagrams Claude draws and pages it writes show in the
72
72
  conversation, as still pictures until you tap Run.
73
- - **The changes beside the chat.** Every changed file with its diff. Tap a line to comment, and
74
- your comments go into the next message.
73
+ - **Changes and files, as in Claude Desktop.** What each turn changed, what is uncommitted, or
74
+ everything since your branch split, with diffs. Search and read the folder; a path in a reply
75
+ opens the file at its line. Comment on a line or quote it, and Create PR asks Claude.
76
+ - **Your usage, from every app.** Tokens, sessions and streaks by project, model and app, with your
77
+ plan's limits, or the cost Claude Code estimates on an API key.
75
78
  - **Made for a phone, good on a computer.** One hand, dictation, a notification when Claude needs
76
79
  you or finishes, and a Home Screen icon. On a wide screen, the list, the conversation and the
77
80
  changes sit side by side.
@@ -101,8 +104,7 @@ Remote Control can answer a prompt waiting in your terminal; Pelican cannot. Mor
101
104
  Pelican runs Claude Code itself, so your settings, `CLAUDE.md`, hooks, skills, subagents and MCP
102
105
  servers work as they do in the terminal, and so does any login: a Claude plan, an API key, Bedrock,
103
106
  Google Cloud or Microsoft Foundry. What Pelican does not do: Remote Control, cloud sessions, a
104
- worktree for each new session, side questions (`/btw`), a terminal of its own, or editing files by
105
- hand. [The full table](https://ki-seki.github.io/pelican/docs.html#coverage) goes through Claude
107
+ worktree for each new session, a terminal of its own, or editing files by hand. [The full table](https://ki-seki.github.io/pelican/docs.html#coverage) goes through Claude
106
108
  Code's features one by one.
107
109
 
108
110
  ## Security