orc-ai 0.1.2 → 0.1.3
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 +153 -0
- package/package.json +63 -63
package/README.md
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# orc — Human + AI Orchestration Hub
|
|
2
|
+
|
|
3
|
+
> Persistent memory · Task management with HITL review · Generic job runner · MCP server for Claude Code, Cursor, Codex, and Gemini CLI.
|
|
4
|
+
>
|
|
5
|
+
> One SQLite file. Shared across every agent you use.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g orc-ai
|
|
11
|
+
# or
|
|
12
|
+
bun add -g orc-ai
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
> **Requires [Bun](https://bun.sh) ≥ 1.1** to run. Bun is used as the runtime — install it once, then `orc` works everywhere.
|
|
16
|
+
|
|
17
|
+
## What it does
|
|
18
|
+
|
|
19
|
+
ORC is the shared brain between you and your AI agents. Every agent connects to the same store of tasks, memories, and jobs — so when you switch from Claude Code to Cursor, context doesn't evaporate.
|
|
20
|
+
|
|
21
|
+
- **Shared memory** — store decisions, rules, discoveries once; any agent can search them
|
|
22
|
+
- **Task board** — tasks move through `todo → doing → review → done`; agents submit for review, you approve
|
|
23
|
+
- **Job runner** — schedule any command (cron, file-watch, manual); logs every run
|
|
24
|
+
- **MCP server** — one config line connects any agent to all of the above
|
|
25
|
+
- **Session continuity** — hooks capture what happened; snapshots survive context compaction
|
|
26
|
+
- **Gateway** — approve agent work from Telegram or Slack; start live Claude/Codex sessions from your phone
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Start the API (keeps the DB open and serves the REST + MCP endpoint)
|
|
32
|
+
orc daemon start
|
|
33
|
+
|
|
34
|
+
# In another terminal — try it
|
|
35
|
+
orc status
|
|
36
|
+
orc task add "Fix the auth bug" --priority high
|
|
37
|
+
orc mem add "Use RWMutex for token refresh" --type decision --scope myproject
|
|
38
|
+
orc job add nightly --command "echo hello" --trigger cron --cron "0 22 * * *"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The database is created automatically at `~/.orc/orc.db` on first run.
|
|
42
|
+
|
|
43
|
+
## Agent Setup
|
|
44
|
+
|
|
45
|
+
### Cursor
|
|
46
|
+
|
|
47
|
+
Add to `.cursor/mcp.json` in your project (or the global Cursor MCP config):
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"mcpServers": {
|
|
52
|
+
"orc": {
|
|
53
|
+
"command": "orc",
|
|
54
|
+
"args": ["mcp"],
|
|
55
|
+
"env": {
|
|
56
|
+
"ORC_API_BASE": "http://127.0.0.1:7700",
|
|
57
|
+
"ORC_SESSION_ID": "cursor"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Claude Code
|
|
65
|
+
|
|
66
|
+
Copy `hooks/claude-code/settings.json` from the [orc repo](https://github.com/niradler/orc) to `~/.claude/settings.json` and replace the path placeholder with your actual path.
|
|
67
|
+
|
|
68
|
+
### Codex
|
|
69
|
+
|
|
70
|
+
Copy `hooks/codex/settings.json` from the [orc repo](https://github.com/niradler/orc) to `~/.codex/settings.json`.
|
|
71
|
+
|
|
72
|
+
### Gemini CLI
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"mcpServers": {
|
|
77
|
+
"orc": {
|
|
78
|
+
"command": "orc",
|
|
79
|
+
"args": ["mcp"],
|
|
80
|
+
"env": {
|
|
81
|
+
"ORC_API_BASE": "http://127.0.0.1:7700",
|
|
82
|
+
"ORC_SESSION_ID": "gemini"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## CLI Reference
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
orc daemon start Start API + scheduler + file-watchers + gateway
|
|
93
|
+
orc daemon stop Send SIGTERM to running daemon
|
|
94
|
+
orc daemon status Show scheduler state + next run times per job
|
|
95
|
+
orc home Show ~/.orc directory, daemon state, and config
|
|
96
|
+
|
|
97
|
+
orc api Start the API server only (no scheduler)
|
|
98
|
+
orc mcp Start the MCP server in stdio mode
|
|
99
|
+
orc status Show API health, task count, memory count
|
|
100
|
+
|
|
101
|
+
orc task list [--status] List tasks (default: active)
|
|
102
|
+
orc task add <title> Create a task (--priority, --body, --project)
|
|
103
|
+
orc task done <id> Mark a task done
|
|
104
|
+
orc task review <id> Submit task for HITL review
|
|
105
|
+
orc task approve <id> Approve a review
|
|
106
|
+
orc task reject <id> Request changes
|
|
107
|
+
|
|
108
|
+
orc mem list List recent memories (--limit)
|
|
109
|
+
orc mem add <content> Store a memory (--type, --scope, --title)
|
|
110
|
+
orc mem search <query> Search memories via BM25 + trigram
|
|
111
|
+
|
|
112
|
+
orc job list List all jobs with trigger type and run count
|
|
113
|
+
orc job add <name> Create a job (--command, --trigger, --cron, --watch)
|
|
114
|
+
orc job run <name> Trigger a job immediately
|
|
115
|
+
orc job runs <name> Show run history (--logs, --sessions, --limit)
|
|
116
|
+
|
|
117
|
+
orc session list List recent agent sessions
|
|
118
|
+
orc session show <id> Show session detail
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Configuration
|
|
122
|
+
|
|
123
|
+
Create `~/.orc/config.json`:
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"api": {
|
|
128
|
+
"port": 7700,
|
|
129
|
+
"host": "127.0.0.1",
|
|
130
|
+
"secret": "optional-bearer-token"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Key env vars: `ORC_DB_PATH`, `ORC_API_PORT` (default 7700), `ORC_API_SECRET`, `ORC_SESSION_ID`, `ORC_LOG_LEVEL`.
|
|
136
|
+
|
|
137
|
+
## Cross-agent collaboration
|
|
138
|
+
|
|
139
|
+
All agents share one SQLite file — intentionally.
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Claude Code ──┐
|
|
143
|
+
Cursor ──┤──→ ~/.orc/orc.db ←── orc cli (you)
|
|
144
|
+
Codex ──┘
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
A task created by Claude Code appears in Cursor's context. A rule stored by Codex shows up in Claude Code's memory search.
|
|
148
|
+
|
|
149
|
+
Set `ORC_SESSION_ID` per agent (e.g. `cursor`, `codex`, `claude-code`) so sessions don't collide.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
Full documentation: [github.com/niradler/orc](https://github.com/niradler/orc)
|
package/package.json
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "orc-ai",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Human + AI Orchestration Hub — persistent memory, task management, session continuity and multi-agent collaboration for Cursor, Claude Code, and Codex",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"orc": "./dist/index.js"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"dev": "bun run --watch src/index.ts",
|
|
11
|
-
"start": "bun run src/index.ts",
|
|
12
|
-
"typecheck": "tsc --noEmit",
|
|
13
|
-
"build": "bun build src/index.ts --outfile dist/index.js --target bun --minify",
|
|
14
|
-
"build:bin": "bun run build.ts",
|
|
15
|
-
"prepublishOnly": "bun run build",
|
|
16
|
-
"test": "bun test",
|
|
17
|
-
"clean": "rm -rf dist"
|
|
18
|
-
},
|
|
19
|
-
"files": [
|
|
20
|
-
"dist/index.js"
|
|
21
|
-
],
|
|
22
|
-
"devDependencies": {
|
|
23
|
-
"@orc/api": "workspace:*",
|
|
24
|
-
"@orc/core": "workspace:*",
|
|
25
|
-
"@orc/gateway": "workspace:*",
|
|
26
|
-
"@orc/mcp": "workspace:*",
|
|
27
|
-
"@orc/runner": "workspace:*",
|
|
28
|
-
"@orc/sdk": "workspace:*",
|
|
29
|
-
"commander": "^13.1.0",
|
|
30
|
-
"typescript": "^5.7.3"
|
|
31
|
-
},
|
|
32
|
-
"peerDependencies": {
|
|
33
|
-
"bun": ">=1.0.0"
|
|
34
|
-
},
|
|
35
|
-
"peerDependenciesMeta": {
|
|
36
|
-
"bun": {
|
|
37
|
-
"optional": false
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
"keywords": [
|
|
41
|
-
"ai",
|
|
42
|
-
"agent",
|
|
43
|
-
"orchestration",
|
|
44
|
-
"mcp",
|
|
45
|
-
"claude",
|
|
46
|
-
"cursor",
|
|
47
|
-
"codex",
|
|
48
|
-
"memory",
|
|
49
|
-
"tasks",
|
|
50
|
-
"hitl",
|
|
51
|
-
"sessions"
|
|
52
|
-
],
|
|
53
|
-
"license": "MIT",
|
|
54
|
-
"repository": {
|
|
55
|
-
"type": "git",
|
|
56
|
-
"url": "git+https://github.com/niradler/orc.git"
|
|
57
|
-
},
|
|
58
|
-
"homepage": "https://github.com/niradler/orc",
|
|
59
|
-
"publishConfig": {
|
|
60
|
-
"access": "public",
|
|
61
|
-
"registry": "https://registry.npmjs.org/"
|
|
62
|
-
}
|
|
63
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "orc-ai",
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "Human + AI Orchestration Hub — persistent memory, task management, session continuity and multi-agent collaboration for Cursor, Claude Code, and Codex",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"orc": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"dev": "bun run --watch src/index.ts",
|
|
11
|
+
"start": "bun run src/index.ts",
|
|
12
|
+
"typecheck": "tsc --noEmit",
|
|
13
|
+
"build": "bun build src/index.ts --outfile dist/index.js --target bun --minify",
|
|
14
|
+
"build:bin": "bun run build.ts",
|
|
15
|
+
"prepublishOnly": "bun run build",
|
|
16
|
+
"test": "bun test",
|
|
17
|
+
"clean": "rm -rf dist"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist/index.js"
|
|
21
|
+
],
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@orc/api": "workspace:*",
|
|
24
|
+
"@orc/core": "workspace:*",
|
|
25
|
+
"@orc/gateway": "workspace:*",
|
|
26
|
+
"@orc/mcp": "workspace:*",
|
|
27
|
+
"@orc/runner": "workspace:*",
|
|
28
|
+
"@orc/sdk": "workspace:*",
|
|
29
|
+
"commander": "^13.1.0",
|
|
30
|
+
"typescript": "^5.7.3"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"bun": ">=1.0.0"
|
|
34
|
+
},
|
|
35
|
+
"peerDependenciesMeta": {
|
|
36
|
+
"bun": {
|
|
37
|
+
"optional": false
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"keywords": [
|
|
41
|
+
"ai",
|
|
42
|
+
"agent",
|
|
43
|
+
"orchestration",
|
|
44
|
+
"mcp",
|
|
45
|
+
"claude",
|
|
46
|
+
"cursor",
|
|
47
|
+
"codex",
|
|
48
|
+
"memory",
|
|
49
|
+
"tasks",
|
|
50
|
+
"hitl",
|
|
51
|
+
"sessions"
|
|
52
|
+
],
|
|
53
|
+
"license": "MIT",
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "git+https://github.com/niradler/orc.git"
|
|
57
|
+
},
|
|
58
|
+
"homepage": "https://github.com/niradler/orc",
|
|
59
|
+
"publishConfig": {
|
|
60
|
+
"access": "public",
|
|
61
|
+
"registry": "https://registry.npmjs.org/"
|
|
62
|
+
}
|
|
63
|
+
}
|