@wnzzer/agentdock 0.1.23 → 0.1.24
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 +86 -19
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -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
|
-
- [
|
|
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
|
+
|
|
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:
|
|
@@ -66,7 +127,7 @@ agentdock
|
|
|
66
127
|
This starts the server in the background and prints its URL (by default **http://127.0.0.1:28789/**). In the browser:
|
|
67
128
|
|
|
68
129
|
1. **Pick a workspace**, which can be any existing directory on the host.
|
|
69
|
-
2. **Reuse your sign-in.** Go to *
|
|
130
|
+
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
131
|
3. **Create a session**, or use **Load existing session** to resume a native Claude Code or Codex conversation from this workspace.
|
|
71
132
|
4. **Arrange the canvas** by dragging sessions, files, Git and terminals into splits and tabs.
|
|
72
133
|
|
|
@@ -126,37 +187,43 @@ By default AgentDock listens only on loopback. There are three ways to reach it
|
|
|
126
187
|
|
|
127
188
|
See [Security and boundaries](docs/security.md#private-remote-access) for details.
|
|
128
189
|
|
|
129
|
-
##
|
|
190
|
+
## All features
|
|
130
191
|
|
|
131
192
|
**Canvas**
|
|
132
193
|
|
|
133
194
|
- 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
|
|
135
|
-
- Closing a pane never ends its process. Layouts are saved on the server
|
|
195
|
+
- Sessions from different projects can share one canvas; each file and Git pane stays bound to its own repository.
|
|
196
|
+
- Closing a pane never ends its process. Layouts are saved on the server.
|
|
197
|
+
- Right-click menus throughout; the browser's own menu stays only where it is useful (text, links, the terminal).
|
|
136
198
|
|
|
137
199
|
**Agent sessions**
|
|
138
200
|
|
|
139
|
-
- Structured conversation view
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
201
|
+
- Structured conversation view: tool cards (grouped when consecutive), native approval and question cards, context-usage ring, turn status.
|
|
202
|
+
- Steer a running turn, queue for after it, or interrupt and send.
|
|
203
|
+
- Model, thinking depth, permission mode and endpoint switchable from the message box; the model list comes from the installed client.
|
|
204
|
+
- Hand a conversation to the other agent. Resume native Claude Code and Codex history per workspace.
|
|
205
|
+
- Clickable file references and links, image previews, Markdown tables and syntax-highlighted code.
|
|
206
|
+
- **Interrupt** and **End session** are separate. Input is saved before it is sent and never replayed after a disconnect.
|
|
207
|
+
- Archive, multi-select and delete sessions; temporary sessions for throwaway questions.
|
|
144
208
|
|
|
145
209
|
**Files and Git**
|
|
146
210
|
|
|
147
|
-
- File tree, workspace search
|
|
148
|
-
- Syntax-highlighted editing with conflict-checked saves
|
|
149
|
-
- Git pane with status, diff,
|
|
211
|
+
- File tree, `.gitignore`-aware workspace search, and `@path` completion in the composer.
|
|
212
|
+
- Syntax-highlighted editing with conflict-checked saves; Markdown, image, video, audio and PDF previews.
|
|
213
|
+
- Git pane with status, diff, stage/unstage, discard and commit.
|
|
214
|
+
- Per-session branches in their own worktrees; switch, create, rename and delete branches, and remove worktrees.
|
|
150
215
|
|
|
151
216
|
**Accounts and environment**
|
|
152
217
|
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
218
|
+
- Official Claude Code and Codex accounts with sign-in and remaining 5-hour and weekly quota.
|
|
219
|
+
- Import the host's existing configuration, or create isolated custom endpoint profiles.
|
|
220
|
+
- Per-session environment variables: literal values, secret references and explicit unset.
|
|
221
|
+
- Preferences for each client's default endpoint, thinking depth and permission mode.
|
|
156
222
|
|
|
157
|
-
**
|
|
223
|
+
**Host and access**
|
|
158
224
|
|
|
159
|
-
-
|
|
225
|
+
- Host CPU and memory in the status bar.
|
|
226
|
+
- 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
227
|
- English and Chinese UI.
|
|
161
228
|
|
|
162
229
|
## Architecture
|
|
@@ -184,7 +251,7 @@ See [Architecture](docs/architecture.md) and [Structured agent UI](docs/structur
|
|
|
184
251
|
AgentDock is a workspace for **a single trusted user**. It is not a multi-tenant sandbox.
|
|
185
252
|
|
|
186
253
|
- 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
|
-
-
|
|
254
|
+
- 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
255
|
- **Agent processes are not sandboxed.** `claude` and `codex` run with your full user permissions, limited only by their own permission settings.
|
|
189
256
|
- 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
257
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wnzzer/agentdock",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.24",
|
|
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,10 @@
|
|
|
22
22
|
"agentdock": "bin/agentdock.js"
|
|
23
23
|
},
|
|
24
24
|
"optionalDependencies": {
|
|
25
|
-
"@wnzzer/agentdock-darwin-arm64": "0.1.
|
|
26
|
-
"@wnzzer/agentdock-darwin-x64": "0.1.
|
|
27
|
-
"@wnzzer/agentdock-linux-x64": "0.1.
|
|
28
|
-
"@wnzzer/agentdock-linux-arm64": "0.1.
|
|
25
|
+
"@wnzzer/agentdock-darwin-arm64": "0.1.24",
|
|
26
|
+
"@wnzzer/agentdock-darwin-x64": "0.1.24",
|
|
27
|
+
"@wnzzer/agentdock-linux-x64": "0.1.24",
|
|
28
|
+
"@wnzzer/agentdock-linux-arm64": "0.1.24"
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
31
31
|
"bin/",
|