clideck 1.29.2 → 1.29.3
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 +53 -67
- package/assets/autopilot-original.gif +0 -0
- package/assets/autopilot.gif +0 -0
- package/package.json +1 -1
- package/plugins/autopilot/client.js +5 -1
- package/public/js/app.js +6 -1
package/README.md
CHANGED
|
@@ -1,101 +1,87 @@
|
|
|
1
|
-
<
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="public/img/clideck-logo-icon.png" width="64" alt="clideck logo">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<h1 align="center">clideck</h1>
|
|
4
6
|
|
|
5
|
-
>
|
|
7
|
+
<p align="center">
|
|
8
|
+
one screen for AI coding agents.
|
|
9
|
+
<br><br>
|
|
10
|
+
<a href="https://clideck.dev">Website</a> · <a href="https://docs.clideck.dev">Docs</a> · <a href="https://youtu.be/hICrtjGAeDk">Demo</a>
|
|
11
|
+
</p>
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://github.com/rustykuntz/clideck/stargazers">
|
|
15
|
+
<img src="https://img.shields.io/github/stars/rustykuntz/clideck?style=social" alt="stars">
|
|
16
|
+
</a>
|
|
17
|
+
<a href="https://www.npmjs.com/package/clideck">
|
|
18
|
+
<img src="https://img.shields.io/npm/v/clideck" alt="npm version">
|
|
19
|
+
</a>
|
|
20
|
+
</p>
|
|
8
21
|
|
|
9
|
-
|
|
22
|
+
<!-- TODO: Replace with a ~10 second GIF showing: open clideck,
|
|
23
|
+
sidebar with multiple agents across projects, click between them,
|
|
24
|
+
one working one idle. No narration needed. -->
|
|
10
25
|
|
|
11
|
-
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img src="assets/clideck-themes.jpg" width="720" alt="clideck dashboard">
|
|
28
|
+
</p>
|
|
12
29
|
|
|
13
|
-
|
|
30
|
+
clideck is a local app for running multiple AI coding agents without juggling terminals. Claude Code, Codex, Gemini CLI, and OpenCode all live in one browser window with a chat-style sidebar, live status, message previews, session resume, and projects to keep things organized. an autopilot routes work between agents automatically, and an E2E encrypted mobile relay gives full control over all agents from a phone.
|
|
14
31
|
|
|
15
|
-
|
|
32
|
+
the main problem with using multiple agents is not starting them. it is managing them. terminals pile up, finished work gets missed, good sessions disappear after a restart. clideck does not sit in the middle rewriting prompts or output - it only watches lightweight status signals (OpenTelemetry) so it can tell which agent is working, which is idle, and which is waiting. everything runs locally, no data leaves your machine.
|
|
16
33
|
|
|
17
|
-
|
|
34
|
+
## Why this exists
|
|
18
35
|
|
|
19
|
-
|
|
36
|
+
Terminal multiplexers are great at panes. clideck is about conversations.
|
|
20
37
|
|
|
21
|
-
|
|
38
|
+
A pane grid is flat. agent work usually is not. projects, roles, previews, timestamps, notifications, resume, and sometimes a bit of routing between specialists all fit more naturally into a chat app layout. it also maps naturally to mobile, so the same mental model works on desktop and phone.
|
|
22
39
|
|
|
23
|
-
|
|
24
|
-
npx clideck
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Open [http://localhost:4000](http://localhost:4000). Click **+**, pick an agent and optionally a project and role, start working.
|
|
28
|
-
|
|
29
|
-
New users get 3 built-in roles (Programmer, Reviewer, Product Manager) and 3 starter prompts in the prompt library.
|
|
30
|
-
|
|
31
|
-
Or install globally:
|
|
40
|
+
## Quick start
|
|
32
41
|
|
|
33
42
|
```bash
|
|
34
43
|
npm install -g clideck
|
|
35
44
|
clideck
|
|
36
45
|
```
|
|
37
46
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
- **Roles** — define reusable agent identities (Programmer, Reviewer, PM) and assign them when creating sessions. Instructions are injected into the agent automatically.
|
|
41
|
-
- **Autopilot** — project-level workflow routing. Watches your role-assigned agents, waits for them to finish, forwards output to the next specialist. Fingerprints each output, tracks handoff history, and guards against repeat loops. Supports 8 LLM providers (Anthropic, OpenAI, Google, Groq, xAI, Mistral, OpenRouter, Cerebras). Notifies you when work is complete or blocked.
|
|
42
|
-
- **Mobile access** — check on your agents from your phone with a QR scan. E2E encrypted.
|
|
43
|
-
- **Live working/idle status** — see which agent is thinking and which is waiting for you, without checking each terminal
|
|
44
|
-
- **Session resume** — close clideck, reopen it tomorrow, pick up where you left off
|
|
45
|
-
- **Notifications** — browser and sound alerts when an agent finishes or needs input
|
|
46
|
-
- **Message previews** — latest output from each agent, right in the sidebar
|
|
47
|
-
- **Projects** — group sessions by project with drag-and-drop
|
|
48
|
-
- **Search** — find any session by name or scroll back through transcript content
|
|
49
|
-
- **Prompt Library** — save reusable prompts, type `//` in any terminal to paste them
|
|
50
|
-
- **Plugins** — full server + client API with hooks for input, output, status, transcript, and menus. Programmatic session control, toolbar and project actions, session pills, and a settings UI. Ships with Voice Input, Trim Clip, and Autopilot — or build your own.
|
|
51
|
-
- **15 themes** — dark and light, plus custom theme support
|
|
52
|
-
|
|
53
|
-
## Mobile Access
|
|
54
|
-
|
|
55
|
-
Start a task on your laptop, walk away, check progress from your phone. See who's working, who's idle, who needs input. Send messages, answer choice menus, browse conversation history, and resume sessions — all from the browser on your phone.
|
|
56
|
-
|
|
57
|
-
Pair with one QR scan, no account needed. End-to-end encrypted with AES-256-GCM — the relay sees only opaque blobs. Your code never leaves your machines.
|
|
58
|
-
|
|
59
|
-
Mobile access is provided by [`clideck-remote`](https://www.npmjs.com/package/clideck-remote), a separate optional package. Install it with `npm install -g clideck-remote`.
|
|
47
|
+
Open [localhost:4000](http://localhost:4000). Click **+**, pick an agent, start working.
|
|
60
48
|
|
|
61
|
-
|
|
49
|
+
Or just run it once with `npx clideck`. Works on macOS and Windows. Node 18+. Linux: untested - if you try it, [open an issue](https://github.com/rustykuntz/clideck/issues).
|
|
62
50
|
|
|
63
|
-
|
|
51
|
+
## What makes it useful
|
|
64
52
|
|
|
65
|
-
|
|
66
|
-
|-------|-----------------|-------|
|
|
67
|
-
| **Claude Code** | Automatic | Nothing to configure |
|
|
68
|
-
| **Codex** | Automatic | One-click setup in clideck |
|
|
69
|
-
| **Gemini CLI** | Automatic | One-click setup in clideck |
|
|
70
|
-
| **OpenCode** | Via plugin bridge | One-click setup in clideck |
|
|
71
|
-
| **Shell** | I/O activity only | None |
|
|
53
|
+
**Live status** - see which agent is working and which is waiting. Status detection for Claude Code, Codex, Gemini CLI, and OpenCode.
|
|
72
54
|
|
|
73
|
-
|
|
55
|
+
**Session resume** - close the lid, reopen tomorrow, pick up where things left off. each agent's session ID is captured automatically.
|
|
74
56
|
|
|
75
|
-
|
|
57
|
+
**Roles** - give agents reusable identities like programmer, reviewer, or product manager. prompts are injected automatically when a session starts.
|
|
76
58
|
|
|
77
|
-
-
|
|
78
|
-
- OpenAI Codex `v0.118.0+`
|
|
79
|
-
- Claude Code `v2.1.90+`
|
|
80
|
-
- OpenCode `v1.2.26+`
|
|
59
|
+
**Autopilot** - enable autopilot on a project, walk away. it watches for one agent to finish, hands the output to the next one, and keeps going until the work is done or blocked. this is the part that makes sleep possible. routes content verbatim, no rewriting or summarizing. fingerprints each output and tracks handoff history to guard against repeat loops. ~50 output tokens per routing decision. supports Anthropic, OpenAI, Google, Groq, xAI, Mistral, OpenRouter, Cerebras.
|
|
81
60
|
|
|
82
|
-
|
|
61
|
+
<p align="center">
|
|
62
|
+
<img src="assets/autopilot.gif" width="720" alt="Autopilot routing work between agents">
|
|
63
|
+
</p>
|
|
83
64
|
|
|
84
|
-
|
|
65
|
+
**Mobile remote** - the agents keep running on the local machine. status, prompts, history, and replies stay available from a phone while away. E2E encrypted, no account needed.
|
|
85
66
|
|
|
86
|
-
|
|
67
|
+
**Native terminals** - each session opens into its real terminal. keys go straight to the agent, nothing sits in the middle.
|
|
87
68
|
|
|
88
|
-
|
|
69
|
+
## Supported agents
|
|
89
70
|
|
|
90
|
-
|
|
71
|
+
Claude Code, Codex, Gemini CLI, OpenCode, Shell, and any other terminal tool.
|
|
91
72
|
|
|
92
|
-
|
|
73
|
+
## Also
|
|
93
74
|
|
|
94
|
-
|
|
75
|
+
- **Projects** - group sessions, drag and drop
|
|
76
|
+
- **Prompt library** - save reusable prompts, type `//` to paste
|
|
77
|
+
- **Search** - find sessions or scroll through transcripts
|
|
78
|
+
- **Plugins** - server + client API. ships with Voice Input, Trim Clip, and Autopilot. build your own
|
|
79
|
+
- **15 themes** - dark, light, or make your own
|
|
80
|
+
- **Notifications** - browser + sound alerts when agents finish
|
|
95
81
|
|
|
96
|
-
|
|
82
|
+
## Docs
|
|
97
83
|
|
|
98
|
-
**[docs.clideck.dev](https://docs.clideck.dev
|
|
84
|
+
Guides, agent setup, plugin development: **[docs.clideck.dev](https://docs.clideck.dev)**
|
|
99
85
|
|
|
100
86
|
## Acknowledgments
|
|
101
87
|
|
|
@@ -103,4 +89,4 @@ Built with [xterm.js](https://xtermjs.org/).
|
|
|
103
89
|
|
|
104
90
|
## License
|
|
105
91
|
|
|
106
|
-
MIT
|
|
92
|
+
MIT - see [LICENSE](LICENSE).
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -9,7 +9,11 @@ export function init(pluginApi) {
|
|
|
9
9
|
api.onMessage('started', (msg) => {
|
|
10
10
|
activeProjects.add(msg.projectId);
|
|
11
11
|
updateToggle(msg.projectId, true);
|
|
12
|
-
api.toast('Autopilot
|
|
12
|
+
api.toast('Keep this browser tab active and prevent sleep while Autopilot runs.', {
|
|
13
|
+
title: 'Autopilot started',
|
|
14
|
+
type: 'warn',
|
|
15
|
+
duration: 5000,
|
|
16
|
+
});
|
|
13
17
|
});
|
|
14
18
|
|
|
15
19
|
api.onMessage('stopped', (msg) => {
|
package/public/js/app.js
CHANGED
|
@@ -611,7 +611,12 @@ function openPrevSessionsMenu(anchorEl) {
|
|
|
611
611
|
const menu = document.createElement('div');
|
|
612
612
|
menu.className = 'fixed z-[400] min-w-[160px] bg-slate-800 border border-slate-700 rounded-lg shadow-xl shadow-black/40 py-1';
|
|
613
613
|
|
|
614
|
-
|
|
614
|
+
// Clear exactly the dormant sessions currently rendered in "Previous Sessions".
|
|
615
|
+
// This keeps the action aligned with the UI even if a session has a stale projectId
|
|
616
|
+
// that no longer resolves to a real project group.
|
|
617
|
+
const dormantIds = [...document.querySelectorAll('#resumable-section [data-resumable-id]')]
|
|
618
|
+
.map(el => el.dataset.resumableId)
|
|
619
|
+
.filter(Boolean);
|
|
615
620
|
|
|
616
621
|
menu.innerHTML = `
|
|
617
622
|
<button class="pv-action flex items-center gap-2 w-full px-3 py-2 text-sm text-slate-300 hover:bg-slate-700 transition-colors text-left" data-action="clear-dormant">
|