dorkos 0.7.0 → 0.8.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 CHANGED
@@ -1,68 +1,97 @@
1
1
  # dorkos
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/dorkos)](https://www.npmjs.com/package/dorkos)
4
+ [![CI](https://github.com/dork-labs/dorkos/actions/workflows/cli-smoke-test.yml/badge.svg)](https://github.com/dork-labs/dorkos/actions/workflows/cli-smoke-test.yml)
4
5
  [![license](https://img.shields.io/npm/l/dorkos)](https://github.com/dork-labs/dorkos/blob/main/LICENSE)
5
6
 
6
- Web-based interface and REST/SSE API for Claude Code, built with the Claude Agent SDK.
7
+ The operating system for autonomous AI agents. Scheduling, messaging, agent discovery, and a browser-based command center — so one person can ship like a team.
7
8
 
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.
11
-
12
- ## Installation
9
+ ## Install
13
10
 
14
11
  ```bash
15
12
  npm install -g dorkos
16
13
  ```
17
14
 
18
- ## Usage
15
+ ## Quick Start
19
16
 
20
17
  ```bash
18
+ export ANTHROPIC_API_KEY=your-key-here
21
19
  dorkos
22
20
  ```
23
21
 
24
- The server starts on port 4242 and opens your browser automatically. You'll see the DorkOS chat interface where you can start Claude Code sessions, approve tool calls, and use slash commands.
22
+ 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
23
 
26
- ## Updating
24
+ ## What DorkOS Does
27
25
 
28
- ```bash
29
- npm install -g dorkos@latest
30
- ```
26
+ DorkOS gives your AI agents what they're missing: scheduling, communication, coordination, and a unified interface. The intelligence comes from the agents. Everything else comes from DorkOS.
27
+
28
+ ### Pulse — Scheduling
29
+
30
+ 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.
31
+
32
+ - Overrun protection prevents duplicate runs
33
+ - Isolated sessions per run with full history
34
+ - Configurable concurrency limits
35
+ - Approval gates for agent-created schedules
36
+
37
+ ### Relay — Communication
38
+
39
+ Built-in messaging between your agents and the channels you already use. Telegram, webhooks, browser — agents send notifications to where you are. Agents can also message each other across project boundaries.
40
+
41
+ - Telegram and webhook adapters built in
42
+ - Plugin system for adding new channels
43
+ - Messages persist even when terminals close
31
44
 
32
- DorkOS checks for updates automatically on startup and displays a notification when a new version is available. You can also check your current version with:
45
+ ### Mesh Agent Discovery
46
+
47
+ Scans your projects and finds agent-capable directories automatically. You approve which agents join the network. They coordinate through governed channels.
48
+
49
+ - Pluggable discovery strategies (Claude Code, Cursor, Codex)
50
+ - `.dork/agent.json` identity manifests
51
+ - Network topology with namespace isolation
52
+ - Access control rules enforced by Relay
53
+
54
+ ### Console — Browser UI
55
+
56
+ Chat with agents in rich markdown. Approve or deny tool calls. Browse and resume sessions across devices. Real-time sync across multiple clients.
57
+
58
+ ## CLI Reference
33
59
 
34
60
  ```bash
35
- dorkos --version
61
+ dorkos # Start the server
62
+ dorkos --port 8080 # Custom port
63
+ dorkos --dir ~/projects # Custom working directory
64
+ dorkos --tunnel # Enable remote access via ngrok
65
+ dorkos config # Show all settings
66
+ dorkos config set <key> <val> # Update a setting
67
+ dorkos init # Interactive setup wizard
68
+ dorkos init --yes # Accept all defaults
36
69
  ```
37
70
 
38
- ## CLI Flags
71
+ ### Flags
39
72
 
40
73
  | Flag | Description |
41
74
  |---|---|
42
75
  | `-p, --port <port>` | Port to listen on (default: 4242) |
43
- | `-d, --dir <path>` | Working directory (default: current directory) |
76
+ | `-d, --dir <path>` | Working directory |
44
77
  | `-b, --boundary <path>` | Directory boundary (default: home directory) |
45
- | `-t, --tunnel` | Enable ngrok tunnel |
78
+ | `-t, --tunnel` | Enable ngrok tunnel for remote access |
46
79
  | `-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
80
 
50
- ## Subcommands
81
+ ### Config Subcommands
51
82
 
52
83
  | Command | Description |
53
84
  |---|---|
54
85
  | `dorkos config` | Show all effective settings |
55
- | `dorkos config get <key>` | Get a single config value |
56
- | `dorkos config set <key> <value>` | Set a single config value |
86
+ | `dorkos config get <key>` | Get a single value |
87
+ | `dorkos config set <key> <value>` | Set a single value |
57
88
  | `dorkos config list` | Full JSON output |
58
89
  | `dorkos config reset [key]` | Reset to defaults |
59
- | `dorkos config edit` | Open config in `$EDITOR` |
90
+ | `dorkos config edit` | Open in `$EDITOR` |
60
91
  | `dorkos config path` | Print config file location |
61
- | `dorkos config validate` | Check config validity |
62
- | `dorkos init` | Interactive setup wizard |
63
- | `dorkos init --yes` | Accept all defaults |
92
+ | `dorkos config validate` | Check validity |
64
93
 
65
- ## Configuration
94
+ ## Environment Variables
66
95
 
67
96
  ### Required
68
97
 
@@ -75,13 +104,12 @@ dorkos --version
75
104
  | Variable | Default | Description |
76
105
  |---|---|---|
77
106
  | `DORKOS_PORT` | `4242` | Server port |
107
+ | `DORKOS_HOST` | `localhost` | Server host (use `0.0.0.0` for Docker) |
78
108
  | `DORKOS_DEFAULT_CWD` | Current directory | Default working directory for sessions |
79
- | `DORKOS_BOUNDARY` | Home directory | Directory boundary root (restricts filesystem access) |
80
- | `LOG_LEVEL` | `info` | Log verbosity (`fatal`, `error`, `warn`, `info`, `debug`, `trace`) |
109
+ | `DORKOS_BOUNDARY` | Home directory | Directory boundary root |
110
+ | `LOG_LEVEL` | `info` | Log verbosity |
81
111
 
82
- ### Tunnel Configuration
83
-
84
- DorkOS supports ngrok tunnels for remote access:
112
+ ### Remote Access
85
113
 
86
114
  | Variable | Description |
87
115
  |---|---|
@@ -90,15 +118,23 @@ DorkOS supports ngrok tunnels for remote access:
90
118
  | `TUNNEL_DOMAIN` | Custom tunnel domain (optional) |
91
119
  | `TUNNEL_AUTH` | Basic auth in `user:pass` format (optional) |
92
120
 
93
- ## Config Directory
121
+ ## Docker
94
122
 
95
- DorkOS creates a `~/.dork/` directory on startup for configuration storage. Log files are written to `~/.dork/logs/dorkos.log` as NDJSON.
123
+ ```bash
124
+ docker build -f Dockerfile.run --build-arg INSTALL_MODE=npm -t dorkos .
125
+ docker run --rm -p 4242:4242 \
126
+ -e ANTHROPIC_API_KEY=your-key-here \
127
+ -e DORKOS_HOST=0.0.0.0 \
128
+ dorkos
129
+ ```
96
130
 
97
131
  ## API Documentation
98
132
 
99
- When running, DorkOS serves interactive API documentation at `/api/docs` (powered by Scalar UI) and the raw OpenAPI spec at `/api/openapi.json`.
133
+ Interactive API docs at `/api/docs` (Scalar UI) and raw OpenAPI spec at `/api/openapi.json`.
134
+
135
+ ## Open Source
100
136
 
101
- ## Links
137
+ MIT-licensed. Runs on your machine. Your agents, your data, your rules.
102
138
 
103
139
  - [Documentation](https://dorkos.ai/docs)
104
140
  - [Changelog](https://dorkos.ai/docs/changelog)
package/dist/bin/cli.js CHANGED
@@ -14402,15 +14402,20 @@ 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(() => ({ enabled: true, scanRoots: [] })),
14406
+ }).default(() => ({ scanRoots: [] })),
14408
14407
  onboarding: OnboardingStateSchema.default(() => ({
14409
14408
  completedSteps: [],
14410
14409
  skippedSteps: [],
14411
14410
  startedAt: null,
14412
14411
  dismissedAt: null
14413
- }))
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 }))
14414
14419
  });
14415
14420
  LOG_LEVEL_MAP = {
14416
14421
  fatal: 0,
@@ -17972,12 +17977,12 @@ Examples:
17972
17977
  process.exit(0);
17973
17978
  }
17974
17979
  if (values.version) {
17975
- console.log("0.7.0");
17980
+ console.log("0.8.0");
17976
17981
  process.exit(0);
17977
17982
  }
17978
17983
  if (values["post-install-check"]) {
17979
17984
  checkClaude();
17980
- console.log(`dorkos ${"0.7.0"}`);
17985
+ console.log(`dorkos ${"0.8.0"}`);
17981
17986
  console.log("Installation verified.");
17982
17987
  process.exit(0);
17983
17988
  }
@@ -18078,7 +18083,7 @@ if (fs3.existsSync(envPath)) {
18078
18083
  await import("../server/index.js");
18079
18084
  var port = process.env.DORKOS_PORT || String(DEFAULT_PORT);
18080
18085
  console.log("");
18081
- console.log(` DorkOS v${"0.7.0"}`);
18086
+ console.log(` DorkOS v${"0.8.0"}`);
18082
18087
  console.log(` Local: http://localhost:${port}`);
18083
18088
  var nets = networkInterfaces();
18084
18089
  var networkUrl = null;
@@ -18134,9 +18139,9 @@ console.log("");
18134
18139
  }
18135
18140
  });
18136
18141
  }
18137
- checkForUpdate("0.7.0").then((latestVersion) => {
18142
+ checkForUpdate("0.8.0").then((latestVersion) => {
18138
18143
  if (latestVersion) {
18139
- const msg = `Update available: ${"0.7.0"} \u2192 ${latestVersion}`;
18144
+ const msg = `Update available: ${"0.8.0"} \u2192 ${latestVersion}`;
18140
18145
  const cmd = "Run npm install -g dorkos@latest to update";
18141
18146
  const width = Math.max(msg.length, cmd.length) + 6;
18142
18147
  const pad = (s2) => `\u2502 ${s2}${" ".repeat(width - s2.length - 6)} \u2502`;