@wnzzer/agentdock 0.1.23 → 0.1.25

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
@@ -11,7 +11,7 @@
11
11
  <a href="https://github.com/wnzzer/agentdock/actions/workflows/check.yml"><img src="https://github.com/wnzzer/agentdock/actions/workflows/check.yml/badge.svg" alt="CI status"></a>
12
12
  <a href="https://www.npmjs.com/package/@wnzzer/agentdock"><img src="https://img.shields.io/npm/v/%40wnzzer%2Fagentdock?style=flat-square&label=npm&color=0c8376" alt="npm version"></a>
13
13
  <img src="https://img.shields.io/badge/node-%E2%89%A5%2024-0c8376?style=flat-square" alt="Node.js 24 or newer">
14
- <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-7760b5?style=flat-square" alt="Platforms: macOS and Linux">
14
+ <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-7760b5?style=flat-square" alt="Platforms: macOS, Linux and Windows">
15
15
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License: MIT"></a>
16
16
  </p>
17
17
 
@@ -25,17 +25,78 @@ It does not have its own agent. Codex is driven through its official `app-server
25
25
  <img src="docs/assets/screenshot-canvas.png" alt="The AgentDock canvas: two agent sessions side by side, and Git changes with a diff bottom right." width="100%">
26
26
  </p>
27
27
 
28
+ - [Highlights](#highlights)
28
29
  - [Install](#install)
29
30
  - [Quick start](#quick-start)
30
31
  - [Commands](#commands)
31
32
  - [Configuration](#configuration)
32
33
  - [Remote access](#remote-access)
33
- - [Features](#features)
34
+ - [All features](#all-features)
34
35
  - [Architecture](#architecture)
35
36
  - [Security](#security)
36
37
  - [Documentation](#documentation)
37
38
  - [Development](#development)
38
39
 
40
+ ## Highlights
41
+
42
+ ### The real clients, not an imitation
43
+
44
+ Every session is the official `claude` or `codex` you already have installed, driven through its own programmatic interface. Your sign-in, `CLAUDE.md`, hooks, MCP servers, slash commands and permission prompts behave exactly as they do in the terminal. The model list comes from the client itself, so a newly released model shows up as soon as you upgrade the CLI, and you can always type a model ID by hand.
45
+
46
+ <p align="center">
47
+ <img src="docs/assets/screenshot-models.png" alt="The model menu, listing what the installed Claude Code reports, with a field for any other model ID." width="80%">
48
+ </p>
49
+
50
+ ### Any screen, full workspace
51
+
52
+ The same workspace works from a phone to an ultrawide monitor, with nothing cut down on the small end. Splits fold into tabs when a window or pane gets too small and open back up when there is room, without touching the saved layout. Controls adapt to the pane they sit in, so a narrow split on a big screen gets the compact layout too. On a phone the sidebar becomes a drawer, the layout makes room for the keyboard, menus open as bottom sheets, touch targets are finger-sized and a long press stands in for right-click. Check on a long task, answer an approval or steer the agent from the couch.
53
+
54
+ <p align="center">
55
+ <img src="docs/assets/screenshot-mobile.png" alt="AgentDock on a phone: the split folded into tabs, a steered message, and the composer." width="36%">
56
+ &nbsp;
57
+ <img src="docs/assets/screenshot-terminal-mobile.png" alt="A terminal session on a phone, with the touch key bar." width="36%">
58
+ </p>
59
+
60
+ ### Correct the agent while it works
61
+
62
+ A message typed while the agent is busy doesn't have to wait. **Enter steers**: the agent reads it at its next step, without stopping, and the transcript marks it. **⌥/Alt+Enter queues** it as the next turn instead, and **Interrupt and send** stops the turn when you need to change course completely. If the client can't take a message mid-turn, it waits in the queue rather than being lost.
63
+
64
+ <p align="center">
65
+ <img src="docs/assets/screenshot-steer.png" alt="A steered message marked Steer in the middle of a running turn, with the send menu open: Steer, After this turn, Interrupt and send." width="70%">
66
+ </p>
67
+
68
+ ### One branch per session
69
+
70
+ Give a session its own branch and it moves into a git worktree beside the repository, so two agents can work on two features at once without touching each other's files. The workspace keeps its own branch, switched from the status bar. Right-click a branch or worktree to rename, delete or remove it. If a session is in the way of a switch, AgentDock names it and offers to end it for you.
71
+
72
+ ### Every project on one canvas
73
+
74
+ Split, tab and dock sessions, files, Git diffs and terminals the way you like. Sessions from different repositories can sit side by side. Closing a pane never ends its process, and the layout is saved on the server, so a second browser opens exactly what you left.
75
+
76
+ ### A conversation you can navigate
77
+
78
+ File paths the agent mentions (`src/app.ts:42`, `README.md`) are clickable chips that open the file at that line. Files in another workspace open there, and anything else opens in a read-only preview. Consecutive tool calls fold into one card, images open in a lightbox, and tables and code render properly.
79
+
80
+ ### Accounts and endpoints, kept apart
81
+
82
+ Every session chooses where it runs: an official account signed in through AgentDock, the sign-in already on the host, a custom endpoint such as a team gateway or proxy, or a clean, isolated client home that shares nothing with the host. Each is isolated from the others, so switching one session never touches another, and API keys are stored only as references resolved at launch. Switch from the message box at any time. The same menu hands the conversation to the other agent: go from Claude Code to Codex (or back) and what was said so far is carried into the new session's message box.
83
+
84
+ <p align="center">
85
+ <img src="docs/assets/screenshot-endpoints.png" alt="The endpoint menu: an isolated configuration, a team gateway, the host sign-in, and continuing with Codex." width="70%">
86
+ </p>
87
+
88
+ ### Your quota at a glance
89
+
90
+ See how much of each official account's 5-hour and weekly windows is **left**, with when each resets, for as many accounts as you use. Usage is read from the official endpoint on request, never polled in the background.
91
+
92
+ <p align="center">
93
+ <img src="docs/assets/screenshot-accounts.png" alt="Official accounts: 84% of the 5-hour window and 48% of the weekly window left, with reset times." width="70%">
94
+ </p>
95
+
96
+ ### Set it once
97
+
98
+ Preferences choose the default endpoint, thinking depth and permission mode per client, stored on the server so every device starts sessions the same way.
99
+
39
100
  ## Install
40
101
 
41
102
  Requirements:
@@ -53,8 +114,11 @@ The package ships one prebuilt binary per platform, with the web client and nati
53
114
  | -------- | ------------------------- |
54
115
  | macOS | arm64, x64 |
55
116
  | Linux | x64, arm64 (static musl) |
117
+ | Windows | x64 |
56
118
  | Other | [Build from source](#development) |
57
119
 
120
+ On Windows, terminal sessions open PowerShell (`pwsh` when installed; set `AGENTDOCK_SHELL` for another shell), and `agentdock stop` ends the gateway and its agents at once, since Windows has no gentler signal to send a background console program.
121
+
58
122
  Tarballs with `SHA256SUMS` are also attached to every [release](https://github.com/wnzzer/agentdock/releases).
59
123
 
60
124
  ## Quick start
@@ -66,7 +130,7 @@ agentdock
66
130
  This starts the server in the background and prints its URL (by default **http://127.0.0.1:28789/**). In the browser:
67
131
 
68
132
  1. **Pick a workspace**, which can be any existing directory on the host.
69
- 2. **Reuse your sign-in.** Go to *Endpoint profiles → Import existing configuration*. It points at your existing `~/.claude` or `~/.codex` without copying credentials.
133
+ 2. **Reuse your sign-in.** Go to *Settings → Official accounts → Import existing configuration*. It points at your existing `~/.claude` or `~/.codex` without copying credentials.
70
134
  3. **Create a session**, or use **Load existing session** to resume a native Claude Code or Codex conversation from this workspace.
71
135
  4. **Arrange the canvas** by dragging sessions, files, Git and terminals into splits and tabs.
72
136
 
@@ -126,37 +190,43 @@ By default AgentDock listens only on loopback. There are three ways to reach it
126
190
 
127
191
  See [Security and boundaries](docs/security.md#private-remote-access) for details.
128
192
 
129
- ## Features
193
+ ## All features
130
194
 
131
195
  **Canvas**
132
196
 
133
197
  - Recursive horizontal and vertical splits, drag-to-edge docking, tabs, and `1:1` / `2×2` / `1:2:1` presets.
134
- - Sessions from different projects can share one canvas. Each file and Git pane stays bound to its own repository.
135
- - Closing a pane never ends its process. Layouts are saved on the server, so another browser opens the same layout.
198
+ - Sessions from different projects can share one canvas; each file and Git pane stays bound to its own repository.
199
+ - Closing a pane never ends its process. Layouts are saved on the server.
200
+ - Right-click menus throughout; the browser's own menu stays only where it is useful (text, links, the terminal).
136
201
 
137
202
  **Agent sessions**
138
203
 
139
- - Structured conversation view with tool cards, native approval and question cards, a context-usage indicator and turn status.
140
- - The model list comes from the installed client, so new models appear when you upgrade it. You can also type any model ID.
141
- - Reasoning effort and Claude Code plan mode are passed to each client's native flags.
142
- - Native session history can be resumed per workspace.
143
- - **Interrupt** and **End session** are separate actions. Input is saved before it is sent and is never replayed after a disconnect.
204
+ - Structured conversation view: tool cards (grouped when consecutive), native approval and question cards, context-usage ring, turn status.
205
+ - Steer a running turn, queue for after it, or interrupt and send.
206
+ - Model, thinking depth, permission mode and endpoint switchable from the message box; the model list comes from the installed client.
207
+ - Hand a conversation to the other agent. Resume native Claude Code and Codex history per workspace.
208
+ - Clickable file references and links, image previews, Markdown tables and syntax-highlighted code.
209
+ - **Interrupt** and **End session** are separate. Input is saved before it is sent and never replayed after a disconnect.
210
+ - Archive, multi-select and delete sessions; temporary sessions for throwaway questions.
144
211
 
145
212
  **Files and Git**
146
213
 
147
- - File tree, workspace search that respects `.gitignore`, and `@path` completion in the composer.
148
- - Syntax-highlighted editing with conflict-checked saves, plus rendered Markdown and image, video, audio and PDF previews.
149
- - Git pane with status, diff, per-file stage/unstage and commit.
214
+ - File tree, `.gitignore`-aware workspace search, and `@path` completion in the composer.
215
+ - Syntax-highlighted editing with conflict-checked saves; Markdown, image, video, audio and PDF previews.
216
+ - Git pane with status, diff, stage/unstage, discard and commit.
217
+ - Per-session branches in their own worktrees; switch, create, rename and delete branches, and remove worktrees.
150
218
 
151
219
  **Accounts and environment**
152
220
 
153
- - Import the host's Claude Code or Codex configuration, or create isolated custom endpoint profiles.
154
- - Per-session environment variables, supporting literal values, secret references and explicit unset.
155
- - Official account login and usage through each client's official API. See [Official accounts](docs/official-accounts.md).
221
+ - Official Claude Code and Codex accounts with sign-in and remaining 5-hour and weekly quota.
222
+ - Import the host's existing configuration, or create isolated custom endpoint profiles.
223
+ - Per-session environment variables: literal values, secret references and explicit unset.
224
+ - Preferences for each client's default endpoint, thinking depth and permission mode.
156
225
 
157
- **Access**
226
+ **Host and access**
158
227
 
159
- - Responsive layout that works on phones.
228
+ - Host CPU and memory in the status bar.
229
+ - Works at every size: splits fold into tabs and back as space allows, controls adapt to their pane, and phones get a drawer sidebar, keyboard-aware layout, bottom-sheet menus, touch-sized targets and long-press menus.
160
230
  - English and Chinese UI.
161
231
 
162
232
  ## Architecture
@@ -184,7 +254,7 @@ See [Architecture](docs/architecture.md) and [Structured agent UI](docs/structur
184
254
  AgentDock is a workspace for **a single trusted user**. It is not a multi-tenant sandbox.
185
255
 
186
256
  - Anyone who can reach the API has the permissions of the user running the server. Protect the access token like that user's credentials.
187
- - File access is limited to workspace roots. `.git`, `.agentdock` and client configuration files are refused, and deletion never follows symlinks.
257
+ - Files are read and written only inside workspace roots. A file an agent names outside every workspace can be previewed read-only, but only inside the folder picker's browsing roots. `.git`, `.ssh`, `.agentdock`, credentials and client configuration files are refused everywhere, and deletion never follows symlinks.
188
258
  - **Agent processes are not sandboxed.** `claude` and `codex` run with your full user permissions, limited only by their own permission settings.
189
259
  - A non-loopback bind won't start without a token of at least 24 characters, and Origin and Host must be on the allow-list.
190
260
 
package/bin/agentdock.js CHANGED
@@ -20,9 +20,10 @@ const PACKAGES = {
20
20
  'darwin-x64': '@wnzzer/agentdock-darwin-x64',
21
21
  'linux-x64': '@wnzzer/agentdock-linux-x64',
22
22
  'linux-arm64': '@wnzzer/agentdock-linux-arm64',
23
+ 'win32-x64': '@wnzzer/agentdock-win32-x64',
23
24
  };
24
25
 
25
- const BINARY = 'agentdock-server';
26
+ const BINARY = process.platform === 'win32' ? 'agentdock-server.exe' : 'agentdock-server';
26
27
 
27
28
  function fail(message) {
28
29
  process.stderr.write(`agentdock: ${message}\n`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wnzzer/agentdock",
3
- "version": "0.1.23",
3
+ "version": "0.1.25",
4
4
  "description": "Remote multi-agent development workspace for the official Claude Code and Codex CLIs",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/wnzzer/agentdock",
@@ -22,10 +22,11 @@
22
22
  "agentdock": "bin/agentdock.js"
23
23
  },
24
24
  "optionalDependencies": {
25
- "@wnzzer/agentdock-darwin-arm64": "0.1.23",
26
- "@wnzzer/agentdock-darwin-x64": "0.1.23",
27
- "@wnzzer/agentdock-linux-x64": "0.1.23",
28
- "@wnzzer/agentdock-linux-arm64": "0.1.23"
25
+ "@wnzzer/agentdock-darwin-arm64": "0.1.25",
26
+ "@wnzzer/agentdock-darwin-x64": "0.1.25",
27
+ "@wnzzer/agentdock-linux-x64": "0.1.25",
28
+ "@wnzzer/agentdock-linux-arm64": "0.1.25",
29
+ "@wnzzer/agentdock-win32-x64": "0.1.25"
29
30
  },
30
31
  "files": [
31
32
  "bin/",