dorkos 0.7.0 → 0.9.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/README.md +90 -37
- package/dist/bin/cli.js +22 -7
- package/dist/client/assets/{TopologyGraph-DUHOb6MC.js → TopologyGraph-BDQJfh8H.js} +19 -24
- package/dist/client/assets/highlighted-body-TPN3WLV5-C-9u4GvI.js +1 -0
- package/dist/client/assets/index-CRsHB5DU.css +1 -0
- package/dist/client/assets/index-D8O7L1KA.js +798 -0
- package/dist/client/index.html +2 -2
- package/dist/drizzle/0005_heavy_ultimo.sql +1 -0
- package/dist/drizzle/meta/0005_snapshot.json +660 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/server/index.js +66049 -33739
- package/dist/server/index.js.map +4 -4
- package/package.json +19 -15
- package/dist/client/assets/highlighted-body-B3W2YXNL-D-c41b3T.js +0 -1
- package/dist/client/assets/index-lIzhHlx_.js +0 -724
- package/dist/client/assets/index-pIOn2ZAY.css +0 -1
package/README.md
CHANGED
|
@@ -1,68 +1,112 @@
|
|
|
1
|
-
|
|
1
|
+
<picture>
|
|
2
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dork-labs/dorkos/main/apps/site/public/images/dork-logo-white.svg">
|
|
3
|
+
<img alt="DorkOS" src="https://raw.githubusercontent.com/dork-labs/dorkos/main/apps/site/public/images/dork-logo.svg" height="52">
|
|
4
|
+
</picture>
|
|
5
|
+
|
|
6
|
+
|
|
2
7
|
|
|
3
8
|
[](https://www.npmjs.com/package/dorkos)
|
|
9
|
+
[](https://github.com/dork-labs/dorkos/actions/workflows/cli-smoke-test.yml)
|
|
4
10
|
[](https://github.com/dork-labs/dorkos/blob/main/LICENSE)
|
|
5
11
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
## What is DorkOS?
|
|
9
|
-
|
|
10
|
-
DorkOS provides a browser-based chat UI for interacting with Claude Code sessions. It includes tool approval flows, slash command discovery, cross-client session sync, and a full REST/SSE API — all powered by the Claude Agent SDK.
|
|
12
|
+
The operating system for autonomous AI agents. Scheduling, messaging, agent discovery, and a browser-based command center. One person can ship like a team.
|
|
11
13
|
|
|
12
|
-
##
|
|
14
|
+
## Install
|
|
13
15
|
|
|
14
16
|
```bash
|
|
15
17
|
npm install -g dorkos
|
|
16
18
|
```
|
|
17
19
|
|
|
18
|
-
##
|
|
20
|
+
## Quick Start
|
|
19
21
|
|
|
20
22
|
```bash
|
|
23
|
+
export ANTHROPIC_API_KEY=your-key-here
|
|
21
24
|
dorkos
|
|
22
25
|
```
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
Your browser opens. You're looking at every Claude Code session across all your projects: sessions you started from the CLI, from VS Code, from anywhere. One place. Every session. Already there.
|
|
25
28
|
|
|
26
|
-
##
|
|
29
|
+
## What DorkOS Does
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
It's 7am. CI has been red since 2:47am. A dependency update cascaded across three repos. Your agent could have caught this overnight, fixed it, and sent you a Telegram message. Instead, the terminal was closed. The agent wasn't running.
|
|
32
|
+
|
|
33
|
+
DorkOS gives your agents what they're missing: scheduling, communication, and coordination. The intelligence comes from the agents. Everything else comes from DorkOS.
|
|
34
|
+
|
|
35
|
+
### Pulse - Scheduling
|
|
36
|
+
|
|
37
|
+
Cron-based agent execution, independent of your IDE or terminal. Your agents ship code, triage issues, and run audits on schedule. You wake up to completed pull requests.
|
|
38
|
+
|
|
39
|
+
- Overrun protection prevents duplicate runs
|
|
40
|
+
- Isolated sessions per run with full history
|
|
41
|
+
- Configurable concurrency limits
|
|
42
|
+
- Approval gates for agent-created schedules
|
|
43
|
+
|
|
44
|
+
### Relay - Communication
|
|
45
|
+
|
|
46
|
+
Built-in messaging between your agents and the channels you already use. Telegram, webhooks, browser. Agents reach you where you are. Agents can also message each other across project boundaries.
|
|
47
|
+
|
|
48
|
+
- Telegram and webhook adapters built in
|
|
49
|
+
- Add new channels with a plugin, no custom bots required
|
|
50
|
+
- Messages persist when terminals close
|
|
51
|
+
- Your research agent can notify your coding agent. No copy-paste required.
|
|
31
52
|
|
|
32
|
-
|
|
53
|
+
### Mesh - Agent Discovery
|
|
54
|
+
|
|
55
|
+
Scans your projects and finds agent-capable directories. You approve which agents join the network. They coordinate through channels you define.
|
|
56
|
+
|
|
57
|
+
- Finds Claude Code, Cursor, and Codex projects automatically
|
|
58
|
+
- Each agent gets an identity: name, color, icon, purpose
|
|
59
|
+
- Agents know about each other: what they can do and how to reach them
|
|
60
|
+
- From solo agents to a coordinated team
|
|
61
|
+
|
|
62
|
+
### Console - Browser UI
|
|
63
|
+
|
|
64
|
+
Your agents have names, colors, and status. Glance at your browser tabs and know which ones are working, which are done, and which need your attention.
|
|
65
|
+
|
|
66
|
+
Start a session from the browser. Check on it from your phone. Resume it from inside Obsidian. Every session, regardless of which client started it, visible in one place.
|
|
67
|
+
|
|
68
|
+
- Rich markdown rendering with full session history
|
|
69
|
+
- Approve or deny tool calls from any device
|
|
70
|
+
- Real-time sync across multiple clients
|
|
71
|
+
- Available in any browser or embedded in Obsidian
|
|
72
|
+
|
|
73
|
+
## CLI Reference
|
|
33
74
|
|
|
34
75
|
```bash
|
|
35
|
-
dorkos
|
|
76
|
+
dorkos # Start the server
|
|
77
|
+
dorkos --port 8080 # Custom port
|
|
78
|
+
dorkos --dir ~/projects # Custom working directory
|
|
79
|
+
dorkos --tunnel # Enable remote access via ngrok
|
|
80
|
+
dorkos config # Show all settings
|
|
81
|
+
dorkos config set <key> <val> # Update a setting
|
|
82
|
+
dorkos init # Interactive setup wizard
|
|
83
|
+
dorkos init --yes # Accept all defaults
|
|
36
84
|
```
|
|
37
85
|
|
|
38
|
-
|
|
86
|
+
### Flags
|
|
39
87
|
|
|
40
88
|
| Flag | Description |
|
|
41
89
|
|---|---|
|
|
42
90
|
| `-p, --port <port>` | Port to listen on (default: 4242) |
|
|
43
|
-
| `-d, --dir <path>` | Working directory
|
|
91
|
+
| `-d, --dir <path>` | Working directory |
|
|
44
92
|
| `-b, --boundary <path>` | Directory boundary (default: home directory) |
|
|
45
|
-
| `-t, --tunnel` | Enable ngrok tunnel |
|
|
93
|
+
| `-t, --tunnel` | Enable ngrok tunnel for remote access |
|
|
46
94
|
| `-l, --log-level <level>` | Log level (`fatal`, `error`, `warn`, `info`, `debug`, `trace`) |
|
|
47
|
-
| `-h, --help` | Show help message |
|
|
48
|
-
| `-v, --version` | Show version number |
|
|
49
95
|
|
|
50
|
-
|
|
96
|
+
### Config Subcommands
|
|
51
97
|
|
|
52
98
|
| Command | Description |
|
|
53
99
|
|---|---|
|
|
54
100
|
| `dorkos config` | Show all effective settings |
|
|
55
|
-
| `dorkos config get <key>` | Get a single
|
|
56
|
-
| `dorkos config set <key> <value>` | Set a single
|
|
101
|
+
| `dorkos config get <key>` | Get a single value |
|
|
102
|
+
| `dorkos config set <key> <value>` | Set a single value |
|
|
57
103
|
| `dorkos config list` | Full JSON output |
|
|
58
104
|
| `dorkos config reset [key]` | Reset to defaults |
|
|
59
|
-
| `dorkos config edit` | Open
|
|
105
|
+
| `dorkos config edit` | Open in `$EDITOR` |
|
|
60
106
|
| `dorkos config path` | Print config file location |
|
|
61
|
-
| `dorkos config validate` | Check
|
|
62
|
-
| `dorkos init` | Interactive setup wizard |
|
|
63
|
-
| `dorkos init --yes` | Accept all defaults |
|
|
107
|
+
| `dorkos config validate` | Check validity |
|
|
64
108
|
|
|
65
|
-
##
|
|
109
|
+
## Environment Variables
|
|
66
110
|
|
|
67
111
|
### Required
|
|
68
112
|
|
|
@@ -75,13 +119,12 @@ dorkos --version
|
|
|
75
119
|
| Variable | Default | Description |
|
|
76
120
|
|---|---|---|
|
|
77
121
|
| `DORKOS_PORT` | `4242` | Server port |
|
|
122
|
+
| `DORKOS_HOST` | `localhost` | Server host (use `0.0.0.0` for Docker) |
|
|
78
123
|
| `DORKOS_DEFAULT_CWD` | Current directory | Default working directory for sessions |
|
|
79
|
-
| `DORKOS_BOUNDARY` | Home directory | Directory boundary root
|
|
80
|
-
| `LOG_LEVEL` | `info` | Log verbosity
|
|
81
|
-
|
|
82
|
-
### Tunnel Configuration
|
|
124
|
+
| `DORKOS_BOUNDARY` | Home directory | Directory boundary root |
|
|
125
|
+
| `LOG_LEVEL` | `info` | Log verbosity |
|
|
83
126
|
|
|
84
|
-
|
|
127
|
+
### Remote Access
|
|
85
128
|
|
|
86
129
|
| Variable | Description |
|
|
87
130
|
|---|---|
|
|
@@ -90,15 +133,25 @@ DorkOS supports ngrok tunnels for remote access:
|
|
|
90
133
|
| `TUNNEL_DOMAIN` | Custom tunnel domain (optional) |
|
|
91
134
|
| `TUNNEL_AUTH` | Basic auth in `user:pass` format (optional) |
|
|
92
135
|
|
|
93
|
-
##
|
|
136
|
+
## Docker
|
|
94
137
|
|
|
95
|
-
|
|
138
|
+
```bash
|
|
139
|
+
docker build -f Dockerfile.run --build-arg INSTALL_MODE=npm -t dorkos .
|
|
140
|
+
docker run --rm -p 4242:4242 \
|
|
141
|
+
-e ANTHROPIC_API_KEY=your-key-here \
|
|
142
|
+
-e DORKOS_HOST=0.0.0.0 \
|
|
143
|
+
dorkos
|
|
144
|
+
```
|
|
96
145
|
|
|
97
146
|
## API Documentation
|
|
98
147
|
|
|
99
|
-
|
|
148
|
+
Interactive API docs at `/api/docs` (Scalar UI) and raw OpenAPI spec at `/api/openapi.json`.
|
|
149
|
+
|
|
150
|
+
## Open Source
|
|
151
|
+
|
|
152
|
+
MIT-licensed. Open source. Runs on your machine. Your agents, your data, your rules.
|
|
100
153
|
|
|
101
|
-
|
|
154
|
+
Choose your permission mode, from approve-every-tool-call to fully autonomous. Every session is recorded locally. When your agent runs overnight, you'll see exactly what it did in the morning.
|
|
102
155
|
|
|
103
156
|
- [Documentation](https://dorkos.ai/docs)
|
|
104
157
|
- [Changelog](https://dorkos.ai/docs/changelog)
|
package/dist/bin/cli.js
CHANGED
|
@@ -14402,14 +14402,29 @@ var init_config_schema = __esm({
|
|
|
14402
14402
|
retentionCount: 100
|
|
14403
14403
|
})),
|
|
14404
14404
|
mesh: external_exports.object({
|
|
14405
|
-
enabled: external_exports.boolean().default(true),
|
|
14406
14405
|
scanRoots: external_exports.array(external_exports.string()).default(() => [])
|
|
14407
|
-
}).default(() => ({
|
|
14406
|
+
}).default(() => ({ scanRoots: [] })),
|
|
14408
14407
|
onboarding: OnboardingStateSchema.default(() => ({
|
|
14409
14408
|
completedSteps: [],
|
|
14410
14409
|
skippedSteps: [],
|
|
14411
14410
|
startedAt: null,
|
|
14412
14411
|
dismissedAt: null
|
|
14412
|
+
})),
|
|
14413
|
+
agentContext: external_exports.object({
|
|
14414
|
+
relayTools: external_exports.boolean().default(true),
|
|
14415
|
+
meshTools: external_exports.boolean().default(true),
|
|
14416
|
+
adapterTools: external_exports.boolean().default(true),
|
|
14417
|
+
pulseTools: external_exports.boolean().default(true)
|
|
14418
|
+
}).default(() => ({ relayTools: true, meshTools: true, adapterTools: true, pulseTools: true })),
|
|
14419
|
+
uploads: external_exports.object({
|
|
14420
|
+
maxFileSize: external_exports.number().int().positive().default(10 * 1024 * 1024),
|
|
14421
|
+
// 10MB
|
|
14422
|
+
maxFiles: external_exports.number().int().min(1).max(50).default(10),
|
|
14423
|
+
allowedTypes: external_exports.array(external_exports.string()).default(() => ["*/*"])
|
|
14424
|
+
}).default(() => ({
|
|
14425
|
+
maxFileSize: 10 * 1024 * 1024,
|
|
14426
|
+
maxFiles: 10,
|
|
14427
|
+
allowedTypes: ["*/*"]
|
|
14413
14428
|
}))
|
|
14414
14429
|
});
|
|
14415
14430
|
LOG_LEVEL_MAP = {
|
|
@@ -17972,12 +17987,12 @@ Examples:
|
|
|
17972
17987
|
process.exit(0);
|
|
17973
17988
|
}
|
|
17974
17989
|
if (values.version) {
|
|
17975
|
-
console.log("0.
|
|
17990
|
+
console.log("0.9.0");
|
|
17976
17991
|
process.exit(0);
|
|
17977
17992
|
}
|
|
17978
17993
|
if (values["post-install-check"]) {
|
|
17979
17994
|
checkClaude();
|
|
17980
|
-
console.log(`dorkos ${"0.
|
|
17995
|
+
console.log(`dorkos ${"0.9.0"}`);
|
|
17981
17996
|
console.log("Installation verified.");
|
|
17982
17997
|
process.exit(0);
|
|
17983
17998
|
}
|
|
@@ -18078,7 +18093,7 @@ if (fs3.existsSync(envPath)) {
|
|
|
18078
18093
|
await import("../server/index.js");
|
|
18079
18094
|
var port = process.env.DORKOS_PORT || String(DEFAULT_PORT);
|
|
18080
18095
|
console.log("");
|
|
18081
|
-
console.log(` DorkOS v${"0.
|
|
18096
|
+
console.log(` DorkOS v${"0.9.0"}`);
|
|
18082
18097
|
console.log(` Local: http://localhost:${port}`);
|
|
18083
18098
|
var nets = networkInterfaces();
|
|
18084
18099
|
var networkUrl = null;
|
|
@@ -18134,9 +18149,9 @@ console.log("");
|
|
|
18134
18149
|
}
|
|
18135
18150
|
});
|
|
18136
18151
|
}
|
|
18137
|
-
checkForUpdate("0.
|
|
18152
|
+
checkForUpdate("0.9.0").then((latestVersion) => {
|
|
18138
18153
|
if (latestVersion) {
|
|
18139
|
-
const msg = `Update available: ${"0.
|
|
18154
|
+
const msg = `Update available: ${"0.9.0"} \u2192 ${latestVersion}`;
|
|
18140
18155
|
const cmd = "Run npm install -g dorkos@latest to update";
|
|
18141
18156
|
const width = Math.max(msg.length, cmd.length) + 6;
|
|
18142
18157
|
const pad = (s2) => `\u2502 ${s2}${" ".repeat(width - s2.length - 6)} \u2502`;
|