orc-ai 0.1.20 → 0.1.23

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
@@ -32,7 +32,7 @@ ORC fixes this. Shared memory across every session. A task board where agents su
32
32
  | **Task board** | `todo → queued → doing → review → done` with dependency tracking, priority, and automatic unblocking |
33
33
  | **Multi-backend routing** | Route to Claude Code, ACPX (Agent Communication Protocol, 14+ agents), or remote A2A endpoints; unknown names fall through to ACPX |
34
34
  | **Job runner** | Cron, file-watch, webhook, or manual triggers with full run history |
35
- | **MCP server** | 28 tools connect any [Model Context Protocol](https://modelcontextprotocol.io) (MCP) compatible agent with one config line |
35
+ | **MCP server** | 28 tools connect any [Model Context Protocol](https://modelcontextprotocol.io) (MCP) compatible agent — stdio or Streamable HTTP |
36
36
  | **Session continuity** | Snapshots survive context compaction so agents resume where they left off |
37
37
  | **Gateway** | Approve work, search memory, and chat with live agents from Telegram or Slack |
38
38
  | **Knowledge search** | Index document collections (markdown, notes, wikis) and search them via BM25 or hybrid (vector + reranking) |
@@ -121,6 +121,39 @@ The web dashboard ships inside the `orc` binary and is served by the API process
121
121
 
122
122
  Override the served dist directory with `ORC_WEB_DIST=/path/to/web/dist` if you want to host a custom build (e.g. a fork). If no dist is found, the server runs in pure-API mode.
123
123
 
124
+ ## Docker
125
+
126
+ Run ORC in a container with the published image:
127
+
128
+ ```bash
129
+ docker run -d --name orc \
130
+ -p 7700:7700 \
131
+ -v orc-data:/data \
132
+ -e ORC_API_SECRET=$(openssl rand -hex 32) \
133
+ -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
134
+ niradler/orc:latest
135
+ ```
136
+
137
+ > The container binds `0.0.0.0`. Set a strong `ORC_API_SECRET` before exposing the
138
+ > mapped port beyond localhost — without it, every endpoint (including job execution,
139
+ > which runs arbitrary shell commands) is open to anyone who can reach the port.
140
+
141
+ Or with [docker-compose.yml](docker-compose.yml):
142
+
143
+ ```bash
144
+ docker compose up -d
145
+ ```
146
+
147
+ The container defaults to the `claude` backend (direct Anthropic API via SDK — no host CLI needed). To delegate to an agent running on the host instead, set `ORC_AGENT_LOOP_DEFAULT_BACKEND=agentapi` and run [coder/agentapi](https://github.com/coder/agentapi) on the host:
148
+
149
+ ```bash
150
+ agentapi server --allowed-hosts '*' -- \
151
+ claude --allowedTools all \
152
+ --mcp-config '{"mcpServers":{"orc":{"type":"http","url":"http://localhost:7700/mcp"}}}'
153
+ ```
154
+
155
+ The `--mcp-config` flag wires the host agent back to ORC's [HTTP MCP endpoint](#mcp-tools) so it can call `task_update`, `memory_*`, `knowledge_*`, etc. `host.docker.internal` lets the container reach agentapi on the host.
156
+
124
157
  ## Connect your agent
125
158
 
126
159
  ### Claude Code
@@ -251,7 +284,8 @@ The loop handles concurrency, session resume on feedback, review round limits, s
251
284
 
252
285
  | Backend | Description |
253
286
  | --------------- | ------------------------------------------------------------------------------------------------------------ |
254
- | `claude` | Native Claude Code CLI. Falls back to ACPX on error. |
287
+ | `claude` | Anthropic Claude via [@anthropic-ai/claude-agent-sdk](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk) — no host CLI needed. Requires `ANTHROPIC_API_KEY`. |
288
+ | `agentapi` | Delegates to a [coder/agentapi](https://github.com/coder/agentapi) server on the host (HTTP+SSE) — wraps any local coding agent (`claude`, `codex`, `aider`, …). Auth is whatever the host agent uses. |
255
289
  | `acpx` | 14+ agents via [ACP CLI](https://github.com/AgenTool/acpx) - Codex, Gemini, Copilot, Kiro, Cursor, and more. |
256
290
  | `a2a` | Remote agents via [Google A2A protocol](https://github.com/google/A2A) (JSON-RPC over HTTP). |
257
291
  | _anything else_ | Routes through ACPX with the name as `--agent` flag. |
@@ -527,8 +561,12 @@ ORC merges config in priority order (later wins):
527
561
  | Variable | Default | Description |
528
562
  | -------------------------------- | --------------------- | ------------------------------------------------- |
529
563
  | `ORC_DB_PATH` | `~/.orc/orc.db` | SQLite database path |
564
+ | `ORC_API_HOST` | `127.0.0.1` | API listen host (set to `0.0.0.0` in Docker) |
530
565
  | `ORC_API_PORT` | `7700` | API listen port |
531
566
  | `ORC_API_SECRET` | - | Bearer token for auth |
567
+ | `ORC_TELEGRAM_TOKEN` | - | Enables the Telegram gateway when set |
568
+ | `AGENTAPI_URL` | `http://127.0.0.1:3284` | URL of host agentapi server (for `agentapi` backend) |
569
+ | `ANTHROPIC_API_KEY` | - | Required for the `claude` backend (Anthropic SDK) |
532
570
  | `ORC_SESSION_ID` | `default` | Per-agent session identifier |
533
571
  | `ORC_LOG_LEVEL` | `info` | `debug`, `info`, `warn`, `error` |
534
572
  | `ORC_LOG_DIR` | `~/.orc/logs` | Log file directory |
@@ -596,7 +634,7 @@ packages/
596
634
  api/ Hono REST API + OpenAPI spec (:7700)
597
635
  sdk/ Typed HTTP client from OpenAPI
598
636
  cli/ Commander CLI (the `orc` binary)
599
- mcp/ MCP server (stdio)
637
+ mcp/ MCP server (stdio + Streamable HTTP at /mcp)
600
638
  runner/ Job executor + cron/watch scheduler + task loop
601
639
  gateway/ Telegram + Slack bridge + agent sessions
602
640
  agent-runtime/ Agent backend registry (claude, acpx, a2a)