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 CHANGED
@@ -1,101 +1,87 @@
1
- <img src="public/img/clideck-logo-icon.png" width="48" alt="clideck logo">
1
+ <p align="center">
2
+ <img src="public/img/clideck-logo-icon.png" width="64" alt="clideck logo">
3
+ </p>
2
4
 
3
- # clideck
5
+ <h1 align="center">clideck</h1>
4
6
 
5
- > **Formerly `termix-cli`** — if you arrived here from an old link, you're in the right place. The project has been renamed to **CliDeck**. Update your install: `npm install -g clideck`
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
- Manage your AI agents like WhatsApp chats. Assign roles, let Autopilot route work between them, check in from your phone.
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
- [Documentation](https://docs.clideck.dev/) | [Video Demo](https://youtu.be/hICrtjGAeDk) | [Website](https://clideck.dev/)
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
- ![clideck dashboard](assets/clideck-themes.jpg)
26
+ <p align="center">
27
+ <img src="assets/clideck-themes.jpg" width="720" alt="clideck dashboard">
28
+ </p>
12
29
 
13
- You run Claude Code, Codex, Gemini CLI in separate terminals. You alt-tab between them, forget which one finished, lose sessions when you close the lid.
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
- clideck puts all your agents in one screen a sidebar with every session, live status, last message preview, and timestamps. Click a session, you're in its terminal. Exactly like switching between chats.
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
- Give each agent a role (Programmer, Reviewer, Product Manager), turn on Autopilot, and walk away — it routes output between agents automatically until the task is done or it needs you. Check progress from your phone with a QR scan.
34
+ ## Why this exists
18
35
 
19
- Native terminals. Your keystrokes go straight to the agent, nothing in between. clideck never reads your prompts or output.
36
+ Terminal multiplexers are great at panes. clideck is about conversations.
20
37
 
21
- ## Quick Start
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
- ```bash
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
- ## What You Get
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
- ## Supported Agents
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
- clideck auto-detects whether each agent is working or idle:
51
+ ## What makes it useful
64
52
 
65
- | Agent | Status detection | Setup |
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
- Claude Code works out of the box. Other agents need a one-time setup that clideck walks you through.
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
- Minimum supported agent versions:
57
+ **Roles** - give agents reusable identities like programmer, reviewer, or product manager. prompts are injected automatically when a session starts.
76
58
 
77
- - Gemini CLI `v0.36.0+`
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
- ## How It Works
61
+ <p align="center">
62
+ <img src="assets/autopilot.gif" width="720" alt="Autopilot routing work between agents">
63
+ </p>
83
64
 
84
- Each agent runs in a real terminal (PTY) on your machine. clideck receives lightweight status signals via OpenTelemetry it knows *that* an agent is working, not *what* it's working on.
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
- Autopilot routes existing agent output between agents verbatim it does not rewrite or summarize the routed content.
67
+ **Native terminals** - each session opens into its real terminal. keys go straight to the agent, nothing sits in the middle.
87
68
 
88
- Everything runs locally. No data is collected, transmitted, or stored outside your machine.
69
+ ## Supported agents
89
70
 
90
- ## Platform Support
71
+ Claude Code, Codex, Gemini CLI, OpenCode, Shell, and any other terminal tool.
91
72
 
92
- Tested on **macOS** and **Windows**. Works in any modern browser. Linux: untested — if you try it, open an issue.
73
+ ## Also
93
74
 
94
- ## Documentation
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
- Full setup guides, agent configuration, and plugin development:
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 see [LICENSE](LICENSE).
92
+ MIT - see [LICENSE](LICENSE).
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clideck",
3
- "version": "1.29.2",
3
+ "version": "1.29.3",
4
4
  "description": "One screen for all your AI coding agents — run, monitor, and manage multiple CLI agents from a single browser tab",
5
5
  "main": "server.js",
6
6
  "bin": {
@@ -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 started');
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
- const dormantIds = state.resumable.filter(s => !s.projectId).map(s => s.id);
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">