pelican-cc 0.2.3 → 0.3.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/CHANGELOG.md +144 -0
- package/README.md +120 -37
- package/dist/server/index.js +4007 -909
- package/dist/server/index.js.map +4 -4
- package/dist/web/assets/Chat-BZ4Kv_y0.js +73 -0
- package/dist/web/assets/Chat-BZ4Kv_y0.js.br +0 -0
- package/dist/web/assets/Chat-BZ4Kv_y0.js.gz +0 -0
- package/dist/web/assets/ModelSheet-CrgB7jGC.js +1 -0
- package/dist/web/assets/ModelSheet-CrgB7jGC.js.br +0 -0
- package/dist/web/assets/ModelSheet-CrgB7jGC.js.gz +0 -0
- package/dist/web/assets/Settings-BYSfCOfJ.js +3 -0
- package/dist/web/assets/Settings-BYSfCOfJ.js.br +0 -0
- package/dist/web/assets/Settings-BYSfCOfJ.js.gz +0 -0
- package/dist/web/assets/index-DTXoHe9U.js +30 -0
- package/dist/web/assets/index-DTXoHe9U.js.br +0 -0
- package/dist/web/assets/index-DTXoHe9U.js.gz +0 -0
- package/dist/web/assets/index-DYo6H59g.css +2 -0
- package/dist/web/assets/index-DYo6H59g.css.br +0 -0
- package/dist/web/assets/index-DYo6H59g.css.gz +0 -0
- package/dist/web/index.html +3 -3
- package/dist/web/index.html.br +0 -0
- package/dist/web/index.html.gz +0 -0
- package/dist/web/manifest.webmanifest +1 -1
- package/dist/web/preview.html +15 -0
- package/dist/web/sw.js.br +0 -0
- package/dist/web/sw.js.gz +0 -0
- package/npm-shrinkwrap.json +7194 -0
- package/package.json +15 -6
- package/dist/web/assets/index-BrFr7i2Q.js +0 -81
- package/dist/web/assets/index-DlTrFrpv.css +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,149 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
Every Claude Code session on your computer, on your phone. This release follows a ten-angle audit
|
|
6
|
+
(first run, phone, computer and accessibility, the conversation, Claude Code parity, the server,
|
|
7
|
+
security, the launch, competitors, code quality) and an adversarial review of the result.
|
|
8
|
+
|
|
9
|
+
### Highlights
|
|
10
|
+
|
|
11
|
+
- **Phone in one step.** `pelican phone` prints a QR code that opens Pelican on your phone, signed
|
|
12
|
+
in, once, for two minutes. It finds the address from `tailscale serve`, PELICAN_PUBLIC_URL or your
|
|
13
|
+
network; with Tailscale it is two commands. The start banner shows the code when it knows the
|
|
14
|
+
address.
|
|
15
|
+
- **Keeps running.** `pelican service install` (also `status`, `restart`, `uninstall`) starts
|
|
16
|
+
Pelican at login with launchd or a systemd user service. While Claude works, the computer does not
|
|
17
|
+
idle to sleep (PELICAN_KEEP_AWAKE=0 turns this off).
|
|
18
|
+
- **Sessions waiting in other apps.** A session waiting for an answer in the terminal, Claude
|
|
19
|
+
Desktop or VS Code shows "Needs you in the terminal", and your phone gets one notification if the
|
|
20
|
+
wait lasts about 20 seconds. You answer it in that app.
|
|
21
|
+
- **Approvals as in Claude Code.** "Always allow" says what it saves and where ("Always allow
|
|
22
|
+
`npm test *` in this project", "Allow all edits this session"), and is not offered when Claude
|
|
23
|
+
Code says it would allow more than asked. Deny works like Claude Code's No. Cards use Claude
|
|
24
|
+
Code's wording, name the subagent or MCP server asking, and show hidden characters in commands.
|
|
25
|
+
- **Folders you trust.** The first time Claude Code would start in a folder nobody trusted, and
|
|
26
|
+
the folder brings programs of its own (hooks, MCP servers, helpers, git filters), Pelican lists
|
|
27
|
+
them and asks: Trust and start, or Use my settings only.
|
|
28
|
+
- **Much lighter on a phone.** Replies stream as appends (a long answer costs a few percent of
|
|
29
|
+
the data it did), everything is sent compressed, the conversation loads only when you open one,
|
|
30
|
+
pictures load when shown, and the session list stays fast with thousands of sessions.
|
|
31
|
+
|
|
32
|
+
### Changes in behavior
|
|
33
|
+
|
|
34
|
+
- New sessions start in Auto, unless you pick a mode in Settings (New sessions start with > Mode)
|
|
35
|
+
or Claude Code's `permissions.defaultMode` sets one; a model without Auto starts in Manual. Bypass
|
|
36
|
+
is never a default: a branch, an edited earlier prompt or `/clear` from a Bypass session starts in
|
|
37
|
+
that default mode. A mode picked in a session stays with it.
|
|
38
|
+
- Permission modes carry Claude Code's names: Manual, Accept edits, Plan, Auto, Bypass
|
|
39
|
+
permissions. A session in Claude Code's Don't ask mode keeps it.
|
|
40
|
+
- Deny with no note stops the turn and waits for you; with a note, Claude carries on with it.
|
|
41
|
+
- Queued messages wait in a strip above the message box, where you can edit or remove them, and go
|
|
42
|
+
to Claude when the turn ends, each as its own message, so a queued `/compact` or `/model` runs as
|
|
43
|
+
a command.
|
|
44
|
+
- Stop ends the turn but leaves background agents and commands running, as Esc does in the
|
|
45
|
+
terminal; each has its own Stop.
|
|
46
|
+
- `/clear`, `/reset` and `/new` open a new session in the same folder.
|
|
47
|
+
- Pages and visuals Claude makes show as still pictures until you tap Run, and only for tool calls
|
|
48
|
+
that ran.
|
|
49
|
+
- A browser in use stays signed in; 30 days without use sign it out. `pelican token --reset` and
|
|
50
|
+
`pelican password` apply at once.
|
|
51
|
+
- The Agent SDK, and the Claude Code it brings, is pinned, and the package ships
|
|
52
|
+
npm-shrinkwrap.json: installs get the tree that was tested. Updating Pelican updates its Claude
|
|
53
|
+
Code. A second command name, `pelican-cc`, is there for machines where `pelican` is taken.
|
|
54
|
+
- Uploaded attachments are deleted after Claude Code's `cleanupPeriodDays` (30 unless set).
|
|
55
|
+
|
|
56
|
+
### Sessions and the list
|
|
57
|
+
|
|
58
|
+
- Sessions with the same folder and title (a scheduled task's runs, a named session's branches)
|
|
59
|
+
fold into one row, with the earlier ones a tap away.
|
|
60
|
+
- A session whose background commands, subagents or scheduled checks keep running after its turn
|
|
61
|
+
stays under Active, with "2 tasks" and a steady dot.
|
|
62
|
+
- A turn that ended on a Claude Code error shows "Stopped: not signed in" (or the error's kind)
|
|
63
|
+
instead of the error as Claude's reply.
|
|
64
|
+
- Titles taken from a prompt fit on about one line; renamed sessions and Claude Code's own titles
|
|
65
|
+
keep theirs.
|
|
66
|
+
- Archive from the list: swipe a row left on a phone, or use the button on hover, with Undo.
|
|
67
|
+
- Rows are links (Cmd/Ctrl-click opens a new tab), the open session is marked, and long lists load
|
|
68
|
+
150 rows at a time while search still covers every session.
|
|
69
|
+
- + opens a new chat in your latest project, ready to type; tap the folder to start elsewhere, or
|
|
70
|
+
make a new folder there (New folder in the folder browser).
|
|
71
|
+
|
|
72
|
+
### The conversation
|
|
73
|
+
|
|
74
|
+
- Opening a session lands on its newest message, also with pictures, a chart or an approval
|
|
75
|
+
waiting. While Claude works the view follows the newest output; a stray tap no longer stops that.
|
|
76
|
+
- Diffs wrap long lines. Code blocks have a bar with the language and Copy. Tool output shows
|
|
77
|
+
without color codes or error tags. Long prompts fold, and files you sent show as chips.
|
|
78
|
+
- What you decided stays visible: your answers to Claude's questions, plans approved or sent back,
|
|
79
|
+
steps you denied with your note.
|
|
80
|
+
- The task list shows in full when it changes; in between, progress is one line.
|
|
81
|
+
- Half-written messages are kept per session, with their files, across leaving and reloading.
|
|
82
|
+
- Several approvals come one at a time ("1 of 3") and never push the message box off screen.
|
|
83
|
+
- Drop files anywhere on the conversation to attach them.
|
|
84
|
+
- A session another app has looks the same everywhere: the header says "Working in the terminal"
|
|
85
|
+
or "Needs you in Claude Desktop", each case is explained once, and the message box warns that
|
|
86
|
+
sending starts a second Claude.
|
|
87
|
+
- API failures show once, in plain words (overloaded, too long: send /compact, not signed in,
|
|
88
|
+
usage limit and when it resets).
|
|
89
|
+
- Hook feedback, warnings and local command output appear as notes, and stay after the turn and a
|
|
90
|
+
reload; terminal-only commands are left out of the / list.
|
|
91
|
+
- MCP servers that ask for input get a card to answer instead of being declined.
|
|
92
|
+
- Plans can be approved into Auto, Accept edits or Manual, or sent back with Keep planning.
|
|
93
|
+
- Check-ins Claude schedules (/loop, reminders, session crons) are listed, and Claude keeps running
|
|
94
|
+
for them and for background work.
|
|
95
|
+
- The cost shown is that turn's own, not the running total, and none on a subscription.
|
|
96
|
+
- Notifications say what Claude wants (the command, the file, the question) or the reply's first
|
|
97
|
+
line.
|
|
98
|
+
- On screens 1440px and wider, Changes and files sits beside the conversation (Cmd/Ctrl+Shift+D,
|
|
99
|
+
as in Claude Desktop). Comment on diff lines and add the comments to your message.
|
|
100
|
+
|
|
101
|
+
### Keyboard and accessibility
|
|
102
|
+
|
|
103
|
+
- Enter that confirms a Chinese, Japanese or Korean candidate never sends, Safari included.
|
|
104
|
+
Cmd/Ctrl+Enter always sends. Esc stops Claude. Cmd/Ctrl+K searches sessions. Cmd/Ctrl+/ lists
|
|
105
|
+
the keys.
|
|
106
|
+
- Sheets are real dialogs: focus moves in and back, one Esc closes one, and on a phone you drag a
|
|
107
|
+
sheet down to close it.
|
|
108
|
+
- Screen readers hear approvals, questions, plans, replies, failures and the connection state;
|
|
109
|
+
turns have headings and pictures have names.
|
|
110
|
+
- Grey text and status words pass WCAG AA contrast in both themes; Reduce motion stops the pulsing.
|
|
111
|
+
- On iPhone the message box stays above the keyboard and fields no longer make Safari zoom.
|
|
112
|
+
|
|
113
|
+
### Reliability
|
|
114
|
+
|
|
115
|
+
- Nothing a request or an unreadable transcript does crashes the server any more.
|
|
116
|
+
- A chat no longer stays on "Working" after Claude finished while the phone slept or Pelican
|
|
117
|
+
restarted. Dead connections are noticed and replaced; coming back to the page catches up at once.
|
|
118
|
+
- When the computer cannot be reached, one quiet line says so, with Retry.
|
|
119
|
+
- A `!` command that leaves something running in the background returns at once.
|
|
120
|
+
- A named pipe or device file in a project can no longer freeze Pelican.
|
|
121
|
+
- On Linux with Node 24, a Claude Code that Node runs (Node names its main thread MainThread) is
|
|
122
|
+
recognized again as working in another app.
|
|
123
|
+
- A signed-out or missing Claude Code is detected and said in Pelican's words; the banner and
|
|
124
|
+
Settings > About say which Claude Code runs, and when your own `claude` is newer.
|
|
125
|
+
|
|
126
|
+
### Security
|
|
127
|
+
|
|
128
|
+
- Folder trust, above. Typing `/` or `@` in an untrusted folder runs nothing of the repository's.
|
|
129
|
+
- The app's own page has a script and connect policy; previews run their scripts only after Run.
|
|
130
|
+
- Notifications stop on every device after a token or password change, and on sign-out.
|
|
131
|
+
- `pelican service` never copies secrets such as API keys into the service.
|
|
132
|
+
|
|
133
|
+
### Site, docs and project
|
|
134
|
+
|
|
135
|
+
- The README and website were redesigned around the one line, the live demo, how it works, a
|
|
136
|
+
dated comparison with Remote Control, Happy and HAPI, Yep Anywhere, CloudCLI and SSH with tmux,
|
|
137
|
+
and answers to the questions launch threads ask (plan terms, Remote Control, tmux, sleep, cost
|
|
138
|
+
and telemetry, size).
|
|
139
|
+
- The docs cover everything above and add a Claude Code coverage table, Keep it running, Update
|
|
140
|
+
and remove, and Folders you trust.
|
|
141
|
+
- The live demo plays out the waiting approval and answers messages calmly.
|
|
142
|
+
- CI runs the app and the site in a real browser on every change, on Node 22.12, 24 and 26 and on
|
|
143
|
+
macOS; the site publishes only after CI passes. Release candidates publish as `next`.
|
|
144
|
+
- Each new Agent SDK arrives as its own pull request with a report of what changed upstream, and a
|
|
145
|
+
weekly issue lists Claude Code updates to consider.
|
|
146
|
+
|
|
3
147
|
## 0.2.3
|
|
4
148
|
|
|
5
149
|
- A session keeps its own model, effort, speed, Ultracode and permission mode, Bypass included:
|
package/README.md
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
<h1 align="center">Pelican</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<b>Claude Code,
|
|
9
|
-
|
|
8
|
+
<b>Every Claude Code session on your computer, on your phone.</b><br>
|
|
9
|
+
No wrapper, no relay, no account.
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
|
-
<a href="https://ki-seki.github.io/pelican/demo/"><b>
|
|
13
|
+
<a href="https://ki-seki.github.io/pelican/demo/"><b>Try the live demo</b></a> ·
|
|
14
14
|
<a href="https://ki-seki.github.io/pelican/">Website</a> ·
|
|
15
15
|
<a href="https://ki-seki.github.io/pelican/docs.html">Docs</a>
|
|
16
16
|
</p>
|
|
@@ -24,57 +24,140 @@
|
|
|
24
24
|
<a href="https://ki-seki.github.io/pelican/demo/">
|
|
25
25
|
<picture>
|
|
26
26
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Ki-Seki/pelican/main/docs/shots/phone-dark.png">
|
|
27
|
-
<img alt="Pelican on a phone: the session list,
|
|
27
|
+
<img alt="Pelican on a phone: the session list, an edit waiting for approval with its diff, and a chart Claude drew" src="https://raw.githubusercontent.com/Ki-Seki/pelican/main/docs/shots/phone-light.png">
|
|
28
28
|
</picture>
|
|
29
29
|
</a>
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
<p align="center"><sub>The live demo is the real app with made-up sessions, in your browser. Nothing to install.</sub></p>
|
|
32
|
+
|
|
33
|
+
Pelican is one small server next to Claude Code. It reads Claude Code's own transcripts, so the
|
|
34
|
+
sessions you started in the terminal, Claude Desktop or your editor are all there, live, with their
|
|
35
|
+
whole history. It continues them through the official Agent SDK, so your login, settings,
|
|
36
|
+
`CLAUDE.md`, skills and MCP servers apply. Your phone reaches it over Tailscale or an SSH tunnel:
|
|
37
|
+
nothing sits in between.
|
|
38
|
+
|
|
39
|
+
## Install
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
npm install -g pelican-cc
|
|
43
|
+
pelican
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
On the computer where you use Claude Code, with Node 22.12 or newer and Claude Code signed in, on
|
|
47
|
+
macOS or Linux. `pelican` prints the link that signs this browser in. The install is about 150 MB,
|
|
48
|
+
most of it the copy of Claude Code that the Agent SDK brings. The command is also called
|
|
49
|
+
`pelican-cc`, for computers where Python's Pelican has `pelican`.
|
|
50
|
+
|
|
51
|
+
## On your phone
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
tailscale serve --bg 7860
|
|
55
|
+
pelican phone
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
With [Tailscale](https://tailscale.com) on the computer and the phone, `tailscale serve` gives
|
|
59
|
+
Pelican a private HTTPS address, and `pelican phone` shows a QR code for it. Scan it with the
|
|
60
|
+
phone's camera: Pelican opens there, signed in. `pelican service install` keeps Pelican running.
|
|
61
|
+
The docs cover [an SSH tunnel or your own proxy](https://ki-seki.github.io/pelican/docs.html#phone).
|
|
62
|
+
|
|
63
|
+
## What it does
|
|
64
|
+
|
|
65
|
+
- **Every session, wherever you started it.** Live while it runs, with its whole history back past
|
|
66
|
+
every compaction. When another app is working on one, or waits for you there, Pelican says which
|
|
67
|
+
app; once it is idle, continue it here.
|
|
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.
|
|
71
|
+
- **What Claude makes, in place.** Charts and diagrams Claude draws and pages it writes show in the
|
|
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.
|
|
75
|
+
- **Made for a phone, good on a computer.** One hand, dictation, a notification when Claude needs
|
|
76
|
+
you or finishes, and a Home Screen icon. On a wide screen, the list, the conversation and the
|
|
77
|
+
changes sit side by side.
|
|
45
78
|
|
|
46
79
|
<p align="center">
|
|
47
80
|
<img src="https://raw.githubusercontent.com/Ki-Seki/pelican/main/docs/shots/tour.gif" width="320" alt="A tour of Pelican on a phone: a chart and a page Claude made, rendered in place; an edit waiting for approval with its diff; a session another app is running">
|
|
48
81
|
</p>
|
|
49
82
|
|
|
50
|
-
##
|
|
83
|
+
## Compared with
|
|
51
84
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
85
|
+
As each project documents it, checked on 5 November 2026:
|
|
86
|
+
|
|
87
|
+
| | Your sessions | Between phone and computer | Agents | License |
|
|
88
|
+
| --- | --- | --- | --- | --- |
|
|
89
|
+
| **Pelican** | All of them, from any app, with their whole history | Nothing: Tailscale, an SSH tunnel or your proxy | Claude Code | MIT |
|
|
90
|
+
| [Remote Control](https://code.claude.com/docs/en/remote-control) | Those with Remote Control turned on; Claude plans only | Anthropic's servers, which keep the transcript while connected | Claude Code | Part of Claude Code |
|
|
91
|
+
| [Yep Anywhere](https://github.com/kzahel/yepanywhere) | Resumes those from the CLI, VS Code and desktop apps | Nothing, or its end-to-end encrypted relay | Claude Code, Codex | MIT |
|
|
92
|
+
| [Happy](https://github.com/slopus/happy), [HAPI](https://github.com/tiann/hapi) | Those started in Happy or HAPI | An end-to-end encrypted relay, or with HAPI your own tunnel | Claude Code, Codex and more | MIT, AGPL-3.0 |
|
|
93
|
+
| [CloudCLI](https://github.com/siteboon/claudecodeui) | Every session in `~/.claude` | Nothing on your network, or CloudCLI Cloud | Claude Code, Cursor CLI, Codex | AGPL-3.0 |
|
|
94
|
+
| SSH and tmux | The ones running in tmux | Nothing | Any | |
|
|
95
|
+
|
|
96
|
+
Remote Control can answer a prompt waiting in your terminal; Pelican cannot. More in
|
|
97
|
+
[the docs](https://ki-seki.github.io/pelican/docs.html#compare).
|
|
98
|
+
|
|
99
|
+
## Claude Code coverage
|
|
100
|
+
|
|
101
|
+
Pelican runs Claude Code itself, so your settings, `CLAUDE.md`, hooks, skills, subagents and MCP
|
|
102
|
+
servers work as they do in the terminal, and so does any login: a Claude plan, an API key, Bedrock,
|
|
103
|
+
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
|
|
106
|
+
Code's features one by one.
|
|
107
|
+
|
|
108
|
+
## Security
|
|
109
|
+
|
|
110
|
+
Whoever can use Pelican can run commands as you, so:
|
|
111
|
+
|
|
112
|
+
- It listens on `127.0.0.1`, and every browser signs in, also on this computer: with the link it
|
|
113
|
+
prints, a QR code that works once, or a password.
|
|
114
|
+
- Requests must come from Pelican's own page, under a host name it knows: no cross-site requests,
|
|
115
|
+
no DNS rebinding, no framing by other sites.
|
|
116
|
+
- What Claude writes renders in a sandboxed frame that cannot reach Pelican, as a still picture
|
|
117
|
+
until you tap Run.
|
|
118
|
+
- A folder runs nothing of its own, such as hooks or MCP servers, until you trust it.
|
|
119
|
+
|
|
120
|
+
The whole model is in [SECURITY.md](SECURITY.md).
|
|
121
|
+
|
|
122
|
+
## Questions
|
|
123
|
+
|
|
124
|
+
**Does it work with my Claude plan?** Pelican runs Anthropic's own Claude Code, unmodified, on your
|
|
125
|
+
computer, signed in the way you signed in to `claude`; it never sees, stores or forwards your
|
|
126
|
+
credentials, and it is for your own use. Signed in with a plan, what you send from Pelican is Agent
|
|
127
|
+
SDK usage and draws from your plan's limits, as
|
|
128
|
+
[Anthropic's help center](https://support.claude.com/en/articles/15036540) says (checked on
|
|
129
|
+
5 November 2026); the rules are under
|
|
130
|
+
[authentication and credential use](https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use).
|
|
131
|
+
|
|
132
|
+
**Why not Remote Control?** Use it if you are on a Claude plan and want to answer, from your phone,
|
|
133
|
+
the prompt waiting in your terminal: Pelican cannot. Pelican shows every session without turning
|
|
134
|
+
anything on, keeps nothing on anyone's servers, and works with any login, API keys and cloud
|
|
135
|
+
providers included.
|
|
136
|
+
|
|
137
|
+
**Why not SSH and tmux?** That works. Pelican is for what a terminal on a phone does badly: long
|
|
138
|
+
transcripts, diffs, approvals in one tap, notifications, charts and pages, and history across
|
|
139
|
+
compactions.
|
|
57
140
|
|
|
58
|
-
|
|
59
|
-
|
|
141
|
+
**What if my computer sleeps?** A computer that is asleep runs nothing. While Claude works, Pelican
|
|
142
|
+
keeps it from going to sleep on its own; to reach Pelican at any time, keep the computer awake, as
|
|
143
|
+
[the docs](https://ki-seki.github.io/pelican/docs.html#running) show.
|
|
60
144
|
|
|
61
|
-
|
|
145
|
+
**Does it cost anything, or phone home?** No. Pelican is free and MIT licensed, with no account and
|
|
146
|
+
no telemetry. It talks to your browser and, for notifications, to the browser's push service, with
|
|
147
|
+
the content encrypted.
|
|
62
148
|
|
|
63
|
-
[
|
|
64
|
-
[configuration](https://ki-seki.github.io/pelican/docs.html#config) ·
|
|
65
|
-
[security](https://ki-seki.github.io/pelican/docs.html#security) ·
|
|
66
|
-
[how it works](https://ki-seki.github.io/pelican/docs.html#how) ·
|
|
67
|
-
[compared with Remote Control, Happy and CloudCLI](https://ki-seki.github.io/pelican/docs.html#compare)
|
|
149
|
+
[More questions](https://ki-seki.github.io/pelican/docs.html#faq)
|
|
68
150
|
|
|
69
151
|
## Contributing
|
|
70
152
|
|
|
71
|
-
```
|
|
72
|
-
npm ci
|
|
73
|
-
npm
|
|
153
|
+
```sh
|
|
154
|
+
npm ci
|
|
155
|
+
npm run dev
|
|
74
156
|
```
|
|
75
157
|
|
|
76
|
-
|
|
77
|
-
[
|
|
158
|
+
`npm run dev` runs the server and the web app, both reloading on change; `npm test` and
|
|
159
|
+
`npm run typecheck` check a change. See [CONTRIBUTING.md](CONTRIBUTING.md). Security reports go
|
|
160
|
+
through [SECURITY.md](SECURITY.md).
|
|
78
161
|
|
|
79
162
|
## License
|
|
80
163
|
|