Rookery
Open-source desktop app for Mac, Windows and Linux. Agents run on your computer or on your own server.
Product websitegithub.com Compare with others Missing or wrong data?
- Desktop app
- Mac, Windows and Linux
- Browser
- No
- Phone
- No
- Command line
- Yes
- Agents
- Claude Code and Codex
- Your subscription
- Works with your own plan
- Agents run
- On your computer and on your own server
- Laptop closed
- Keeps going
- Isolation
- Worktree
- Parallel agents
- Yes
- Scheduled runs
- Yes
- Coordinator agent
- Yes
- Built-in issues
- No
- Pull requests
- No
- Review screen
- Yes
- Team
- Shared sessions
- Self-hosting
- Yes
- Licence
- Apache-2.0
- Price from
- Free
- How it charges
- No paid plan and bring your own key
- Paid plans from
- Not listed
Receipts
- Checked
- · oldest answer 2026-11-07
- Findings
- 46 published · 31 cross-checked by a second agent · read them all
- Sources
- 23 public pages on 1 site: github.com
- Screenshot
- github.com, retrieved · first party repository · shows appearance, not capability
- Data
- /products/rookery.json · .md
- Method
- Same rules for all 103 researched ADEs. How we check · Report wrong data
What it does
Where you use it
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
Source and scope for Where you use itAgents it runs
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
Source and scope for Agents it runsAccounts and subscriptions
Own provider API keys or native Claude/Codex login enable agents.
Source and scope for Accounts and subscriptionsWhere agents run
The operator-owned resident daemon runs on a local machine or deliberately configured headless server, independently of its desktop/CLI/Slack clients. Rookery supplies no managed execution cloud.
Source and scope for Where agents runHow work is kept apart
Rookery workers run native agent processes in separate Git worktrees on the daemon host; they have no product-managed container or VM isolation option.
Source and scope for How work is kept apartParallel work
Global fleet runs parallel worktree workers without a concurrency cap.
Source and scope for Parallel workScheduled runs
Persistent daemon rules trigger master turns or worker spawns without client.
Source and scope for Scheduled runsGit and pull requests
Product manages worktrees/branches/diffs; instructed worker uses shell for commit/push/PR.
Source and scope for Git and pull requestsLicence and source
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
Source and scope for Licence and sourcePrice
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
Source and scope for PriceTyped filters
Every value links to its receipt below. Read plan and surface restrictions before using a filter to decide.
| Filter | Value |
|---|---|
| Desktop OS: macOS | Yes |
| Desktop OS: Windows | Yes |
| Desktop OS: Linux | Yes |
| Web client | No |
| Phone access: Native iOS | No |
| Phone access: Native Android | No |
| Phone access: Phone browser | No |
| CLI | Yes cross-checked |
| Coding agents: Claude Code | Yes |
| Coding agents: Codex | Yes |
| Coding agents: Cursor Agent | No |
| Coding agents: Gemini CLI | No |
| Coding agents: OpenCode | No |
| Coding agents: Pi | No |
| Coding agents: Grok | No |
| Coding agents: Aider | No |
| Coding agents: Antigravity | No |
| Use my subscription | Yes cross-checked |
| Where agents run: On your computer | Yes |
| Where agents run: On your own server | Yes |
| Where agents run: In the vendor's cloud | No |
| Workspace isolation: Git worktree | Yes |
| Workspace isolation: Container | No |
| Workspace isolation: VM or microVM | No |
| Parallel runs | Yes cross-checked |
| Coordinator | Yes cross-checked |
| Native issue tracking | No |
| Unattended triggers | Yes cross-checked |
| Shared prompting | Yes |
| Team roles | No |
| SSO | No |
| Pull request workflow | No |
| Review interface | Yes cross-checked |
| Product license: Apache-2.0 | Yes. Apache-2.0 cross-checked |
| Product license: MIT | No. Apache-2.0 cross-checked |
| Product license: GPL-3.0 | No. Apache-2.0 cross-checked |
| Product license: GPL-3.0-or-later | No. Apache-2.0 cross-checked |
| Product license: AGPL-3.0 | No. Apache-2.0 cross-checked |
| Product license: AGPL-3.0-or-later | No. Apache-2.0 cross-checked |
| Product license: Elastic License 2.0 | No. Apache-2.0 cross-checked |
| Product license: Custom terms | No. Apache-2.0 cross-checked |
| Product license: Proprietary | No. Apache-2.0 cross-checked |
| Self-hosting | Yes cross-checked |
| Telemetry opt-out | No |
| Free access | Yes cross-checked |
| Starting price: Free | Yes. Free cross-checked |
| Starting price: Up to $20/month | No. Free cross-checked |
| Starting price: $21–40/month | No. Free cross-checked |
| Starting price: $41–100/month | No. Free cross-checked |
| Starting price: Over $100/month | No. Free cross-checked |
| Starting price: Contact for pricing | No. Free cross-checked |
| Pricing model: Free, no paid plan | Yes cross-checked |
| Pricing model: Free plan | No |
| Pricing model: Subscription | No |
| Pricing model: Per seat | No |
| Pricing model: Usage-based | No |
| Pricing model: Per machine or compute | No |
| Pricing model: Bring your own key | Yes cross-checked |
| Pricing model: One-time purchase | No |
| Paid plans from: No paid plan | Unknown |
| Paid plans from: $10 or less/month | Unknown |
| Paid plans from: $11–20/month | Unknown |
| Paid plans from: $21–40/month | Unknown |
| Paid plans from: $41–100/month | Unknown |
| Paid plans from: Over $100/month | Unknown |
| Paid plans from: Contact sales | Unknown |
| Lifecycle status: Active | Unknown |
| Lifecycle status: Sunsetting | Unknown |
| Keeps going with laptop closed | Yes |
| Open-source license | Yes. Apache-2.0 cross-checked |
| Any desktop app | Yes |
| Paid plan up to $20/month | Unknown |
| Paid plan up to $40/month | Unknown |
| Any phone client | No |
Filter receipts
Desktop OS: macOS: Yes
Desktop OS: macOS
Typed value: Yes.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Desktop os: macOS Apple Silicon DMG, Linux x64 AppImage, Windows x64 EXE.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Cli: Product CLI auto-starts daemon; Node 22 required for headless.
- Task actions: Slack thread runs same persistent session and can relay worker activity.
- Notifications: Attention bell ranks blocked questions, failure, unreviewed results.
- Cross device continuity: Slack thread remains same daemon session across restarts; no phone app assumed.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Release v0.6.0 published 2026-10-19 with macOS arm64 DMG, Linux x86_64 AppImage and Windows x64 EXE assets. Release notes describe a Slack Stop button, Claude Agent SDK and Codex CLI updates and cost-accounting fixes. Capability claims stay scoped to pinned main, not a binary test.
Desktop OS: Windows: Yes
Desktop OS: Windows
Typed value: Yes.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Desktop os: macOS Apple Silicon DMG, Linux x64 AppImage, Windows x64 EXE.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Cli: Product CLI auto-starts daemon; Node 22 required for headless.
- Task actions: Slack thread runs same persistent session and can relay worker activity.
- Notifications: Attention bell ranks blocked questions, failure, unreviewed results.
- Cross device continuity: Slack thread remains same daemon session across restarts; no phone app assumed.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Release v0.6.0 published 2026-10-19 with macOS arm64 DMG, Linux x86_64 AppImage and Windows x64 EXE assets. Release notes describe a Slack Stop button, Claude Agent SDK and Codex CLI updates and cost-accounting fixes. Capability claims stay scoped to pinned main, not a binary test.
Desktop OS: Linux: Yes
Desktop OS: Linux
Typed value: Yes.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Desktop os: macOS Apple Silicon DMG, Linux x64 AppImage, Windows x64 EXE.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Cli: Product CLI auto-starts daemon; Node 22 required for headless.
- Task actions: Slack thread runs same persistent session and can relay worker activity.
- Notifications: Attention bell ranks blocked questions, failure, unreviewed results.
- Cross device continuity: Slack thread remains same daemon session across restarts; no phone app assumed.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Release v0.6.0 published 2026-10-19 with macOS arm64 DMG, Linux x86_64 AppImage and Windows x64 EXE assets. Release notes describe a Slack Stop button, Claude Agent SDK and Codex CLI updates and cost-accounting fixes. Capability claims stay scoped to pinned main, not a binary test.
Web client: No
Web client
Typed value: No.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Rookery: docs/architecture/overview.md
Finding: The complete thin-client inventory is native Electron desktop, CLI and embedded Slack. The daemon serves health/control/MCP and WebSocket commands; it does not serve a standalone browser frontend. The renderer depends on an Electron preload bridge and the development Vite server is not a released browser product. No native iOS/Android client is supplied; Slack mobile is a third-party client.
Phone access: Native iOS: No
Phone access: Native iOS
Typed value: No.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Rookery: docs/architecture/overview.md
Finding: The complete thin-client inventory is native Electron desktop, CLI and embedded Slack. The daemon serves health/control/MCP and WebSocket commands; it does not serve a standalone browser frontend. The renderer depends on an Electron preload bridge and the development Vite server is not a released browser product. No native iOS/Android client is supplied; Slack mobile is a third-party client.
Phone access: Native Android: No
Phone access: Native Android
Typed value: No.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Rookery: docs/architecture/overview.md
Finding: The complete thin-client inventory is native Electron desktop, CLI and embedded Slack. The daemon serves health/control/MCP and WebSocket commands; it does not serve a standalone browser frontend. The renderer depends on an Electron preload bridge and the development Vite server is not a released browser product. No native iOS/Android client is supplied; Slack mobile is a third-party client.
Phone access: Phone browser: No
Phone access: Phone browser
Typed value: No.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Rookery: docs/architecture/overview.md
Finding: The complete thin-client inventory is native Electron desktop, CLI and embedded Slack. The daemon serves health/control/MCP and WebSocket commands; it does not serve a standalone browser frontend. The renderer depends on an Electron preload bridge and the development Vite server is not a released browser product. No native iOS/Android client is supplied; Slack mobile is a third-party client.
CLI: Yes cross-checked
CLI
Typed value: Yes.
CLI and scoped external MCP drive daemon workers.
- Cli: Headless/interactive product CLI.
- Api: Local WS/HTTP daemon protocol used by its clients; no versioned public REST contract established.
- Mcp server: Optional HTTP MCP read-only or full control scoped token.
- Operations: List/status/transcript/diff; full control spawn/steer/stop.
- Authentication: Local daemon token; external MCP off by default and token rotation.
- Not established by this source pass: sdk, webhooks, stability.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
Coding agents: Claude Code: Yes
Coding agents: Claude Code
Typed value: Yes.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Model providers: Anthropic for Claude; OpenAI for Codex.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Session integration: Same orchestration/tools through either backend.
- Mixed harness operation: Select per master/worker/automation/Slack; cross-provider conversation fork.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
Coding agents: Codex: Yes
Coding agents: Codex
Typed value: Yes.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Model providers: Anthropic for Claude; OpenAI for Codex.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Session integration: Same orchestration/tools through either backend.
- Mixed harness operation: Select per master/worker/automation/Slack; cross-provider conversation fork.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
Coding agents: Cursor Agent: No
Coding agents: Cursor Agent
Typed value: No.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: The product-owned session and worker backend registries contain only Claude and Codex. External MCP can be called by Cursor or other clients to drive Rookery workers, but it does not launch those client harnesses as Rookery agents. The registry has no user custom-agent adapter path.
Coding agents: Gemini CLI: No
Coding agents: Gemini CLI
Typed value: No.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: The product-owned session and worker backend registries contain only Claude and Codex. External MCP can be called by Cursor or other clients to drive Rookery workers, but it does not launch those client harnesses as Rookery agents. The registry has no user custom-agent adapter path.
Coding agents: OpenCode: No
Coding agents: OpenCode
Typed value: No.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: The product-owned session and worker backend registries contain only Claude and Codex. External MCP can be called by Cursor or other clients to drive Rookery workers, but it does not launch those client harnesses as Rookery agents. The registry has no user custom-agent adapter path.
Coding agents: Pi: No
Coding agents: Pi
Typed value: No.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: The product-owned session and worker backend registries contain only Claude and Codex. External MCP can be called by Cursor or other clients to drive Rookery workers, but it does not launch those client harnesses as Rookery agents. The registry has no user custom-agent adapter path.
Coding agents: Grok: No
Coding agents: Grok
Typed value: No.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: The product-owned session and worker backend registries contain only Claude and Codex. External MCP can be called by Cursor or other clients to drive Rookery workers, but it does not launch those client harnesses as Rookery agents. The registry has no user custom-agent adapter path.
Coding agents: Aider: No
Coding agents: Aider
Typed value: No.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: The product-owned session and worker backend registries contain only Claude and Codex. External MCP can be called by Cursor or other clients to drive Rookery workers, but it does not launch those client harnesses as Rookery agents. The registry has no user custom-agent adapter path.
Coding agents: Antigravity: No
Coding agents: Antigravity
Typed value: No.
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Harnesses: The complete session/worker backend registries contain Claude and Codex only.
- Custom adapters: The registry/configuration surface does not expose a custom coding-agent adapter.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: The product-owned session and worker backend registries contain only Claude and Codex. External MCP can be called by Cursor or other clients to drive Rookery workers, but it does not launch those client harnesses as Rookery agents. The registry has no user custom-agent adapter path.
Use my subscription: Yes cross-checked
Use my subscription
Typed value: Yes.
Own provider API keys or native Claude/Codex login enable agents.
- Agent subscriptions: Existing claude login OAuth or codex login.
- Api accounts: In-app Anthropic/Codex key or environment key.
- Provider restrictions: Codex masters bypassPermissions-only; workers separate.
- Not established by this source pass: vendor_credits, local_models, vendor_account_requirement.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
Where agents run: On your computer: Yes
Where agents run: On your computer
Typed value: Yes.
The operator-owned resident daemon runs on a local machine or deliberately configured headless server, independently of its desktop/CLI/Slack clients. Rookery supplies no managed execution cloud.
- Local: Resident daemon executes on local machine.
- Byo remote: The documented headless daemon supports an explicit non-loopback network bind for operator hosting.
- Self hosted: User runs full daemon/control plane.
- Managed cloud: The complete runtime path consists of an installed operator daemon and native provider processes, without a Rookery-operated compute service.
- Provisioning: Bundled desktop starts/manages daemon or own Node 22 process.
- Client disconnect: Daemon sessions/workers survive client disconnects; a separate client laptop can close while the operator server runs.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: hybrid, payer, resources, region, expiry, other_device_continuation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
Where agents run: On your own server: Yes
Where agents run: On your own server
Typed value: Yes.
The operator-owned resident daemon runs on a local machine or deliberately configured headless server, independently of its desktop/CLI/Slack clients. Rookery supplies no managed execution cloud.
- Byo remote: The documented headless daemon supports an explicit non-loopback network bind for operator hosting.
- Managed cloud: The complete runtime path consists of an installed operator daemon and native provider processes, without a Rookery-operated compute service.
- Client disconnect: Daemon sessions/workers survive client disconnects; a separate client laptop can close while the operator server runs.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: hybrid, payer, resources, region, expiry, other_device_continuation.
-
Rookery: docs/reference/settings-and-env.md
Finding: The documented headless daemon can bind an operator-selected network host through ROOKERY_HOST with an explicit ROOKERY_ALLOW_NONLOOPBACK override. CLI, external MCP and Slack act as clients of its resident process; daemon sessions/workers survive client disconnects. An operator can deploy that headless daemon on their server; no Rookery-managed compute service is implemented.
Where agents run: In the vendor's cloud: No
Where agents run: In the vendor's cloud
Typed value: No.
The operator-owned resident daemon runs on a local machine or deliberately configured headless server, independently of its desktop/CLI/Slack clients. Rookery supplies no managed execution cloud.
- Byo remote: The documented headless daemon supports an explicit non-loopback network bind for operator hosting.
- Managed cloud: The complete runtime path consists of an installed operator daemon and native provider processes, without a Rookery-operated compute service.
- Client disconnect: Daemon sessions/workers survive client disconnects; a separate client laptop can close while the operator server runs.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: hybrid, payer, resources, region, expiry, other_device_continuation.
-
Rookery: docs/reference/settings-and-env.md
Finding: The documented headless daemon can bind an operator-selected network host through ROOKERY_HOST with an explicit ROOKERY_ALLOW_NONLOOPBACK override. CLI, external MCP and Slack act as clients of its resident process; daemon sessions/workers survive client disconnects. An operator can deploy that headless daemon on their server; no Rookery-managed compute service is implemented.
Workspace isolation: Git worktree: Yes
Workspace isolation: Git worktree
Typed value: Yes.
Rookery workers run native agent processes in separate Git worktrees on the daemon host; they have no product-managed container or VM isolation option.
- Checkout: Original checkout untouched by worker worktree edits.
- Branch: rookery/id or ticket slug with collision suffix.
- Worktree: One Git worktree per worker.
- Container: The worker spawn/backends provide host processes and worktrees, without container provisioning.
- Vm: The worker spawn/backends provide no VM provisioning.
- Code separation: Each worker gets own Git working files.
- Security boundary: Worktrees share host process/permission environment; headless default autoapproves bash/files. No VM/container sandbox claimed.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: os_sandbox, filesystem, process, network, secrets.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
Workspace isolation: Container: No
Workspace isolation: Container
Typed value: No.
Rookery workers run native agent processes in separate Git worktrees on the daemon host; they have no product-managed container or VM isolation option.
- Container: The worker spawn/backends provide host processes and worktrees, without container provisioning.
- Vm: The worker spawn/backends provide no VM provisioning.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: os_sandbox, filesystem, process, network, secrets.
-
Rookery: src/core/fleet-orchestrator.ts
Finding: Workers run native provider processes rooted in product-managed Git worktrees on the daemon host. The bounded spawn/backend paths implement no Docker/container or VM provisioning; a logical container session in session-manager.ts is a database/session grouping, not OS isolation.
Workspace isolation: VM or microVM: No
Workspace isolation: VM or microVM
Typed value: No.
Rookery workers run native agent processes in separate Git worktrees on the daemon host; they have no product-managed container or VM isolation option.
- Container: The worker spawn/backends provide host processes and worktrees, without container provisioning.
- Vm: The worker spawn/backends provide no VM provisioning.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: os_sandbox, filesystem, process, network, secrets.
-
Rookery: src/core/fleet-orchestrator.ts
Finding: Workers run native provider processes rooted in product-managed Git worktrees on the daemon host. The bounded spawn/backend paths implement no Docker/container or VM provisioning; a logical container session in session-manager.ts is a database/session grouping, not OS isolation.
Parallel runs: Yes cross-checked
Parallel runs
Typed value: Yes.
Global fleet runs parallel worktree workers without a concurrency cap.
- Concurrent sessions: Multiple master sessions.
- Concurrent tasks: Multiple independent workers.
- Quotas: Pinned orchestrator has no concurrent worker cap.
- Status visibility: Mission control tree/status/transcripts and attention bell.
- Not established by this source pass: observed_concurrency.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Pinned code resumes background rows as idle with empty background task set, preserves budgets/mode, supports cross-provider handoff; no worker concurrency cap. Same worker reload keeps identity/worktree.
Coordinator: Yes cross-checked
Coordinator
Typed value: Yes.
Shipped daemon orchestrator delegates inspectable Claude/Codex worktree workers.
- Roles: Master and coding/reviewer workers.
- Model harness effort: Choose Claude/Codex, model and effort.
- Messages: send_worker steers/follows up; transcripts and diff tools.
- Results return: Armed settlement notification includes last response tail.
- Cross harness: Master/worker backend independent; cross-provider fork.
- Orchestration owner: Rookery daemon fleet tools.
- Activation: Natural-language master task or spawn dialog.
- Live progress: Live worker tree/transcripts/plan cards.
- Retained results: Worker events/messages/checkpoints in local database.
- Followup: Master notified on child idle/error/stop; pending notices persist.
- Invocation: spawn_worker/send_worker/list/inspect tools.
- Not established by this source pass: authentication.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
Native issue tracking: No
Native issue tracking
Typed value: No.
Rookery persists master/worker agent sessions and external ticket references, without an independent native issue/task record distinct from the agent session lifecycle.
- Create: No independent native issue/task creation command/model exists in the complete schema and protocol.
- Task session separation: The persisted work objects are the agent sessions themselves; ticket references point to external trackers.
- Durable states: Persisted worker/session states are execution states rather than a separate issue/task lifecycle.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: edit, discuss, prioritize, label, assign, search, filter, archive, reopen, project_epic_views, idea_parking, explicit_dispatch, metadata, external_tracker_requirement.
-
Rookery: src/persistence/db.ts
Finding: The complete persisted/domain model contains conversations, worker agent sessions, worktrees/checkpoints, memories, repos, automations and capability settings. Worker ticket_key/ticket_url are external ticket references. There is no independent native issue/task record or lifecycle distinct from these agent sessions; provider workflow-task events remain harness session activity.
Unattended triggers: Yes cross-checked
Unattended triggers
Typed value: Yes.
Persistent daemon rules trigger master turns or worker spawns without client.
- Schedules: Cron/interval and one-time self-wakeup.
- Events: Slack message or worker-settled triggers.
- Recurring tasks: Saved rules with backend/model/budget.
- Scheduler location: Resident local daemon.
- Overlaps: Cron skips inflight; Slack allows concurrent runs.
- Retries: One-time wakeup rearms after crash for at-least-once delivery.
- Client independence: Closing desktop/CLI leaves daemon scheduler working.
- Not established by this source pass: completion_conditions.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Automation architecture
Finding: Persisted cron/once and Slack triggers route to master or worker; cron overlap skipped, Slack concurrent, once rearmed after crash for at-least-once. Older doc omits newer budget/trigger work, checked against pinned source.
-
Rookery automation implementation
Finding: Automation passes costBudgetUsd/maxTurns/provider to worker/master; untrusted Slack and worker results fenced with random nonce. Codex master accepts bypassPermissions only; provider fixed at creation.
Shared prompting: Yes
Shared prompting
Typed value: Yes.
Distinct permitted Slack users can send instructions into the same persistent Rookery master thread. Each turn includes the sender identity and the master serializes its turns.
- Coprompting: Per-user allowlist checks route distinct users in the same team/channel/thread to the same master session.
- Ordering: The shared master session serializes its turns, as documented in the master/worker flow.
- Attribution: The prompt prefix retains Slack sender name/ID and thread/channel context.
- Permissions: Each Slack sender independently passes the user-ID allowlist or explicit allow-all gate.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: visibility, discussion, comments, presence, conflicts, plan_restrictions, owner_online.
-
Rookery: src/slack/handle-incoming.ts
Finding: Slack input independently checks each human user ID against the allowlist (or configured allow-all). Session identity is team/channel/thread, not sender ID, so distinct permitted Slack users in the same thread call the same master session. The prompt prefix retains each sender name/ID. This uses separate human Slack identities, not a shared owner token.
Team roles: No
Team roles
Typed value: No.
Rookery has capability-token control, Slack user allowlists and external MCP read-only/full-control scope, without named human workspace roles or enterprise SSO.
- Organization roles: The source has no named human membership/role permission matrix.
- Sso: No enterprise SAML/OIDC implementation exists in the inspected identity/runtime surface.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: project_roles, membership, provisioning, plan_scope.
-
Finding: The daemon uses a local/shared capability token and Slack checks allowed human IDs. External MCP offers read-only versus full-control tool scope, without a named human membership/role permission matrix. The bounded source contains no enterprise SAML/OIDC SSO path; Slack/provider authentication is separate.
SSO: No
SSO
Typed value: No.
Rookery has capability-token control, Slack user allowlists and external MCP read-only/full-control scope, without named human workspace roles or enterprise SSO.
- Organization roles: The source has no named human membership/role permission matrix.
- Sso: No enterprise SAML/OIDC implementation exists in the inspected identity/runtime surface.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: project_roles, membership, provisioning, plan_scope.
-
Finding: The daemon uses a local/shared capability token and Slack checks allowed human IDs. External MCP offers read-only versus full-control tool scope, without a named human membership/role permission matrix. The bounded source contains no enterprise SAML/OIDC SSO path; Slack/provider authentication is separate.
Pull request workflow: No
Pull request workflow
Typed value: No.
Product manages worktrees/branches/diffs; instructed worker uses shell for commit/push/PR.
- Branches: Unique rookery worker branch.
- Worktrees: Provision Git worktree per worker.
- Commits: GitOps has no commit operation; the worker commits through its own bash only when instructed, without product commit state.
- Pull requests: GitOps has no push/PR operation; the worker runs git/gh in its shell only when instructed, so PRs are not product-managed state.
- Product state: Mission control shows branch/diff/checkpoints; PR body policy not established.
- Not established by this source pass: comments, ci_response, rebase, conflicts.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
Review interface: Yes cross-checked
Review interface
Typed value: Yes.
Per-worker diffs, checkpoints, transcripts and attention queue guide review.
- Pending reviews: Attention bell unreviewed results.
- Change understanding: Monaco diff/file/git panels.
- Evidence navigation: Select worker transcript/diff/checkpoints.
- Request changes: Send worker followup.
- Retained context: Existing worktree and worker history.
- Not established by this source pass: comments, shipping_guidance, effort, missed_evidence, keyboard, narrow_screen, context_switching, roles.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
Product license: Apache-2.0: Yes. Apache-2.0 cross-checked
Product license: Apache-2.0
Typed value: Yes. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Product license: MIT: No. Apache-2.0 cross-checked
Product license: MIT
Typed value: No. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Product license: GPL-3.0: No. Apache-2.0 cross-checked
Product license: GPL-3.0
Typed value: No. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Product license: GPL-3.0-or-later: No. Apache-2.0 cross-checked
Product license: GPL-3.0-or-later
Typed value: No. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Product license: AGPL-3.0: No. Apache-2.0 cross-checked
Product license: AGPL-3.0
Typed value: No. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Product license: AGPL-3.0-or-later: No. Apache-2.0 cross-checked
Product license: AGPL-3.0-or-later
Typed value: No. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Product license: Elastic License 2.0: No. Apache-2.0 cross-checked
Product license: Elastic License 2.0
Typed value: No. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Product license: Custom terms: No. Apache-2.0 cross-checked
Product license: Custom terms
Typed value: No. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Product license: Proprietary: No. Apache-2.0 cross-checked
Product license: Proprietary
Typed value: No. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Self-hosting: Yes cross-checked
Self-hosting
Typed value: Yes.
Full local desktop/daemon source is self-hostable; history lives in local SQLite.
- Self hosting: Run own full Node 22 daemon/desktop.
- Vendor dependencies: Selected Anthropic/OpenAI provider; Slack/GitHub/Linear optional.
- Formats: SQLite DB, memory, logs and Git worktrees under ~/.rookery.
- Account independence: No Rookery hosted account described; model provider authentication required.
- Not established by this source pass: export, import, cancellation, history_portability.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Local SQLite sessions/messages/worker events/automation runs, worker checkpoints and persistent memory. No org multiuser role matrix established.
Telemetry opt-out: No
Telemetry opt-out
Typed value: No.
Task context goes to the selected provider while Rookery history/settings remain local. The source provides local token/context accounting but no documented ADE telemetry opt-out control.
- Telemetry disclosure: No ADE analytics reporter exists in the inspected runtime; local usage accounting is not an outbound reporter.
- Telemetry controls: The complete settings/env/CLI surface supplies no ADE telemetry opt-out switch.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: artifacts, retention, deletion, training, subprocessors, telemetry_defaults.
-
Finding: The complete source settings/CLI contain no ADE analytics opt-out switch. result-telemetry.ts computes provider token/context usage for the local interface, and README says history, memory, tokens and logs stay local while task context goes to the chosen model provider. No ADE analytics reporter is present in the inspected runtime; provider telemetry controls are separate.
Free access: Yes cross-checked
Free access
Typed value: Yes.
Apache application is freely installable; model usage and own compute cost separately.
- Ongoing free: No application license fee under Apache-2.0.
- Self host cost: Own host and selected provider charges.
- Free scenarios: Full source local daemon/desktop install; no hosted free credit assumed.
- Not established by this source pass: trial, credits_trial, paid_only, early_access, card_required, usage_caps, paid_evaluation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
Starting price: Free: Yes. Free cross-checked
Starting price: Free
Typed value: Yes. Free.
Apache application is freely installable; model usage and own compute cost separately.
- Ongoing free: No application license fee under Apache-2.0.
- Self host cost: Own host and selected provider charges.
- Free scenarios: Full source local daemon/desktop install; no hosted free credit assumed.
- Not established by this source pass: trial, credits_trial, paid_only, early_access, card_required, usage_caps, paid_evaluation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
Starting price: Up to $20/month: No. Free cross-checked
Starting price: Up to $20/month
Typed value: No. Free.
Apache application is freely installable; model usage and own compute cost separately.
- Ongoing free: No application license fee under Apache-2.0.
- Self host cost: Own host and selected provider charges.
- Free scenarios: Full source local daemon/desktop install; no hosted free credit assumed.
- Not established by this source pass: trial, credits_trial, paid_only, early_access, card_required, usage_caps, paid_evaluation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
Starting price: $21–40/month: No. Free cross-checked
Starting price: $21–40/month
Typed value: No. Free.
Apache application is freely installable; model usage and own compute cost separately.
- Ongoing free: No application license fee under Apache-2.0.
- Self host cost: Own host and selected provider charges.
- Free scenarios: Full source local daemon/desktop install; no hosted free credit assumed.
- Not established by this source pass: trial, credits_trial, paid_only, early_access, card_required, usage_caps, paid_evaluation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
Starting price: $41–100/month: No. Free cross-checked
Starting price: $41–100/month
Typed value: No. Free.
Apache application is freely installable; model usage and own compute cost separately.
- Ongoing free: No application license fee under Apache-2.0.
- Self host cost: Own host and selected provider charges.
- Free scenarios: Full source local daemon/desktop install; no hosted free credit assumed.
- Not established by this source pass: trial, credits_trial, paid_only, early_access, card_required, usage_caps, paid_evaluation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
Starting price: Over $100/month: No. Free cross-checked
Starting price: Over $100/month
Typed value: No. Free.
Apache application is freely installable; model usage and own compute cost separately.
- Ongoing free: No application license fee under Apache-2.0.
- Self host cost: Own host and selected provider charges.
- Free scenarios: Full source local daemon/desktop install; no hosted free credit assumed.
- Not established by this source pass: trial, credits_trial, paid_only, early_access, card_required, usage_caps, paid_evaluation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
Starting price: Contact for pricing: No. Free cross-checked
Starting price: Contact for pricing
Typed value: No. Free.
Apache application is freely installable; model usage and own compute cost separately.
- Ongoing free: No application license fee under Apache-2.0.
- Self host cost: Own host and selected provider charges.
- Free scenarios: Full source local daemon/desktop install; no hosted free credit assumed.
- Not established by this source pass: trial, credits_trial, paid_only, early_access, card_required, usage_caps, paid_evaluation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
Pricing model: Free, no paid plan: Yes cross-checked
Pricing model: Free, no paid plan
Typed value: Yes.
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
CChuYong/rookery LICENSE (Apache-2.0)
Finding: The Apache License 2.0 grants a perpetual, worldwide, no-charge, royalty-free copyright license to use and reproduce the code.
Pricing model: Free plan: No
Pricing model: Free plan
Typed value: No.
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- Model cost: You supply your own Anthropic or Codex API key or CLI login, so the provider bills for model usage. Rookery adds USD budget caps.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
Finding: Says Rookery's code is Apache-2.0 and you bring your own credentials: an Anthropic or Codex API key pasted in Settings, or existing CLI logins. It offers USD budgets per worker and mentions no paid plan.
-
CChuYong/rookery LICENSE (Apache-2.0)
Finding: The Apache License 2.0 grants a perpetual, worldwide, no-charge, royalty-free copyright license to use and reproduce the code.
Pricing model: Subscription: No
Pricing model: Subscription
Typed value: No.
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- Model cost: You supply your own Anthropic or Codex API key or CLI login, so the provider bills for model usage. Rookery adds USD budget caps.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
Finding: Says Rookery's code is Apache-2.0 and you bring your own credentials: an Anthropic or Codex API key pasted in Settings, or existing CLI logins. It offers USD budgets per worker and mentions no paid plan.
-
CChuYong/rookery LICENSE (Apache-2.0)
Finding: The Apache License 2.0 grants a perpetual, worldwide, no-charge, royalty-free copyright license to use and reproduce the code.
Pricing model: Per seat: No
Pricing model: Per seat
Typed value: No.
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- Model cost: You supply your own Anthropic or Codex API key or CLI login, so the provider bills for model usage. Rookery adds USD budget caps.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
Finding: Says Rookery's code is Apache-2.0 and you bring your own credentials: an Anthropic or Codex API key pasted in Settings, or existing CLI logins. It offers USD budgets per worker and mentions no paid plan.
-
CChuYong/rookery LICENSE (Apache-2.0)
Finding: The Apache License 2.0 grants a perpetual, worldwide, no-charge, royalty-free copyright license to use and reproduce the code.
Pricing model: Usage-based: No
Pricing model: Usage-based
Typed value: No.
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- Model cost: You supply your own Anthropic or Codex API key or CLI login, so the provider bills for model usage. Rookery adds USD budget caps.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
Finding: Says Rookery's code is Apache-2.0 and you bring your own credentials: an Anthropic or Codex API key pasted in Settings, or existing CLI logins. It offers USD budgets per worker and mentions no paid plan.
-
CChuYong/rookery LICENSE (Apache-2.0)
Finding: The Apache License 2.0 grants a perpetual, worldwide, no-charge, royalty-free copyright license to use and reproduce the code.
Pricing model: Per machine or compute: No
Pricing model: Per machine or compute
Typed value: No.
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- Model cost: You supply your own Anthropic or Codex API key or CLI login, so the provider bills for model usage. Rookery adds USD budget caps.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
Finding: Says Rookery's code is Apache-2.0 and you bring your own credentials: an Anthropic or Codex API key pasted in Settings, or existing CLI logins. It offers USD budgets per worker and mentions no paid plan.
-
CChuYong/rookery LICENSE (Apache-2.0)
Finding: The Apache License 2.0 grants a perpetual, worldwide, no-charge, royalty-free copyright license to use and reproduce the code.
Pricing model: Bring your own key: Yes cross-checked
Pricing model: Bring your own key
Typed value: Yes.
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- Model cost: You supply your own Anthropic or Codex API key or CLI login, so the provider bills for model usage. Rookery adds USD budget caps.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
Finding: Says Rookery's code is Apache-2.0 and you bring your own credentials: an Anthropic or Codex API key pasted in Settings, or existing CLI logins. It offers USD budgets per worker and mentions no paid plan.
Pricing model: One-time purchase: No
Pricing model: One-time purchase
Typed value: No.
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- Model cost: You supply your own Anthropic or Codex API key or CLI login, so the provider bills for model usage. Rookery adds USD budget caps.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
Finding: Says Rookery's code is Apache-2.0 and you bring your own credentials: an Anthropic or Codex API key pasted in Settings, or existing CLI logins. It offers USD budgets per worker and mentions no paid plan.
-
CChuYong/rookery LICENSE (Apache-2.0)
Finding: The Apache License 2.0 grants a perpetual, worldwide, no-charge, royalty-free copyright license to use and reproduce the code.
Keeps going with laptop closed: Yes
Keeps going with laptop closed
Typed value: Yes.
The operator-owned resident daemon runs on a local machine or deliberately configured headless server, independently of its desktop/CLI/Slack clients. Rookery supplies no managed execution cloud.
- Byo remote: The documented headless daemon supports an explicit non-loopback network bind for operator hosting.
- Managed cloud: The complete runtime path consists of an installed operator daemon and native provider processes, without a Rookery-operated compute service.
- Client disconnect: Daemon sessions/workers survive client disconnects; a separate client laptop can close while the operator server runs.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: hybrid, payer, resources, region, expiry, other_device_continuation.
-
Rookery: docs/reference/settings-and-env.md
Finding: The documented headless daemon can bind an operator-selected network host through ROOKERY_HOST with an explicit ROOKERY_ALLOW_NONLOOPBACK override. CLI, external MCP and Slack act as clients of its resident process; daemon sessions/workers survive client disconnects. An operator can deploy that headless daemon on their server; no Rookery-managed compute service is implemented.
Open-source license: Yes. Apache-2.0 cross-checked
Open-source license
Typed value: Yes. Apache-2.0.
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Client license: Apache-2.0.
- Server license: Daemon/application Apache-2.0.
- Hosted extensions: Third-party Anthropic SDK proprietary; not relicensed by app license.
- Source visibility: Public source.
- Source revision: 47c63c742ee92be40ee76fc72645b82f82a0c649
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
Any desktop app: Yes
Any desktop app
Typed value: Yes.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Desktop os: macOS Apple Silicon DMG, Linux x64 AppImage, Windows x64 EXE.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Cli: Product CLI auto-starts daemon; Node 22 required for headless.
- Task actions: Slack thread runs same persistent session and can relay worker activity.
- Notifications: Attention bell ranks blocked questions, failure, unreviewed results.
- Cross device continuity: Slack thread remains same daemon session across restarts; no phone app assumed.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Release v0.6.0 published 2026-10-19 with macOS arm64 DMG, Linux x86_64 AppImage and Windows x64 EXE assets. Release notes describe a Slack Stop button, Claude Agent SDK and Codex CLI updates and cost-accounting fixes. Capability claims stay scoped to pinned main, not a binary test.
Any phone client: No
Any phone client
Typed value: No.
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Mobile apps: The complete client inventory is desktop, CLI and Slack, with no native Rookery phone application.
- Browser: The daemon exposes protocol/control routes rather than a browser frontend; the desktop renderer depends on Electron preload.
- Mobile browser: There is no released standalone browser client; Slack phone access is third-party.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Rookery: docs/architecture/overview.md
Finding: The complete thin-client inventory is native Electron desktop, CLI and embedded Slack. The daemon serves health/control/MCP and WebSocket commands; it does not serve a standalone browser frontend. The renderer depends on an Electron preload bridge and the development Vite server is not a released browser product. No native iOS/Android client is supplied; Slack mobile is a third-party client.
All public findings
Findings may summarize a source. They are not presented as verbatim statements.
rookery:ACC-01: Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
rookery:ACC-01
Rookery supplies native desktop, CLI and Slack clients for its resident daemon. The released source has no standalone browser or product-owned native phone client.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: editor_extensions.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Release v0.6.0 published 2026-10-19 with macOS arm64 DMG, Linux x86_64 AppImage and Windows x64 EXE assets. Release notes describe a Slack Stop button, Claude Agent SDK and Codex CLI updates and cost-accounting fixes. Capability claims stay scoped to pinned main, not a binary test.
-
Rookery: docs/architecture/overview.md
Finding: The complete thin-client inventory is native Electron desktop, CLI and embedded Slack. The daemon serves health/control/MCP and WebSocket commands; it does not serve a standalone browser frontend. The renderer depends on an Electron preload bridge and the development Vite server is not a released browser product. No native iOS/Android client is supplied; Slack mobile is a third-party client.
rookery:ACC-02: Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
rookery:ACC-02
Claude and Codex are the only product-owned session/worker backends. Other agents may drive Rookery through external MCP, which is separate from running them as Rookery harnesses.
- Documentation and pinned source inspection only; no hands-on scenario was run.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: The product-owned session and worker backend registries contain only Claude and Codex. External MCP can be called by Cursor or other clients to drive Rookery workers, but it does not launch those client harnesses as Rookery agents. The registry has no user custom-agent adapter path.
rookery:ACC-03: Own provider API keys or native Claude/Codex login enable agents. cross-checked
rookery:ACC-03
Own provider API keys or native Claude/Codex login enable agents.
- Not established by this source pass: vendor_credits, local_models, vendor_account_requirement.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
rookery:ACC-04: Bundled desktop runtime or Node 22 headless setup are documented. cross-checked
rookery:ACC-04
Bundled desktop runtime or Node 22 headless setup are documented.
- Not established by this source pass: managed_cloud_setup, byo_vps_onboarding.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Pinned code resumes background rows as idle with empty background task set, preserves budgets/mode, supports cross-provider handoff; no worker concurrency cap. Same worker reload keeps identity/worktree.
rookery:ACC-05: CLI and scoped external MCP drive daemon workers. cross-checked
rookery:ACC-05
CLI and scoped external MCP drive daemon workers.
- Not established by this source pass: sdk, webhooks, stability.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
rookery:ACC-06: Trusted capability packs supply instructions/skills/MCP to scoped agents. cross-checked
rookery:ACC-06
Trusted capability packs supply instructions/skills/MCP to scoped agents.
- Not established by this source pass: custom_tools.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
rookery:ACC-07: Electron/React desktop wraps daemon-backed mission control. cross-checked
rookery:ACC-07
Electron/React desktop wraps daemon-backed mission control.
- Not established by this source pass: mobile_implementation, hybrids.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery desktop implementation
Finding: Accessible desktop README features are built by Electron/Vite with React/Monaco and bundled daemon dependencies.
rookery:PLAN-01: Prompt, spawn dialog, GitHub issue or Linear ticket can initiate worker. cross-checked
rookery:PLAN-01
Prompt, spawn dialog, GitHub issue or Linear ticket can initiate worker.
- Not established by this source pass: chat_git_triggers, authoritative_tracker, sync, supported_edits, external_roundtrips.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:PLAN-02: Plan cards and session memory retain planning conversation; no native spec approval lifecycle established.
rookery:PLAN-02
Plan cards and session memory retain planning conversation; no native spec approval lifecycle established.
- Not established by this source pass: acceptance_criteria, editors, revisions, amendment.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
rookery:PLAN-03: Home sessions retain child worker relationships; general issue dependency enforcement unknown. cross-checked
rookery:PLAN-03
Home sessions retain child worker relationships; general issue dependency enforcement unknown.
- Not established by this source pass: epics, blockers, readiness, enforcement, task_to_epic, workflow_constraints.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:PLAN-04: Local master memory and trusted scope-aware capability packs share context. cross-checked
rookery:PLAN-04
Local master memory and trusted scope-aware capability packs share context.
- Not established by this source pass: project_docs, freshness.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
-
Finding: Local SQLite sessions/messages/worker events/automation runs, worker checkpoints and persistent memory. No org multiuser role matrix established.
rookery:PLAN-05: Trusted MCPs and repository context inform agent tasks. cross-checked
rookery:PLAN-05
Trusted MCPs and repository context inform agent tasks.
- Not established by this source pass: code_search, indexing, multimodal_inputs, citations, conflict_detection, review_enforcement.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
rookery:PLAN-06: Rookery persists master/worker agent sessions and external ticket references, without an independent native issue/task record distinct from the agent session lifecycle.
rookery:PLAN-06
Rookery persists master/worker agent sessions and external ticket references, without an independent native issue/task record distinct from the agent session lifecycle.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: edit, discuss, prioritize, label, assign, search, filter, archive, reopen, project_epic_views, idea_parking, explicit_dispatch, metadata, external_tracker_requirement.
-
Rookery: src/persistence/db.ts
Finding: The complete persisted/domain model contains conversations, worker agent sessions, worktrees/checkpoints, memories, repos, automations and capability settings. Worker ticket_key/ticket_url are external ticket references. There is no independent native issue/task record or lifecycle distinct from these agent sessions; provider workflow-task events remain harness session activity.
rookery:COORD-01: Global fleet runs parallel worktree workers without a concurrency cap. cross-checked
rookery:COORD-01
Global fleet runs parallel worktree workers without a concurrency cap.
- Not established by this source pass: observed_concurrency.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Pinned code resumes background rows as idle with empty background task set, preserves budgets/mode, supports cross-provider handoff; no worker concurrency cap. Same worker reload keeps identity/worktree.
rookery:COORD-02: Master or human dispatches workers and routes followups. cross-checked
rookery:COORD-02
Master or human dispatches workers and routes followups.
- Not established by this source pass: claims, duplicate_prevention, ownership_enforcement.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:COORD-03: Shipped daemon orchestrator delegates inspectable Claude/Codex worktree workers. cross-checked
rookery:COORD-03
Shipped daemon orchestrator delegates inspectable Claude/Codex worktree workers.
- Not established by this source pass: authentication.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
rookery:COORD-04: Persistent daemon rules trigger master turns or worker spawns without client. cross-checked
rookery:COORD-04
Persistent daemon rules trigger master turns or worker spawns without client.
- Not established by this source pass: completion_conditions.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Automation architecture
Finding: Persisted cron/once and Slack triggers route to master or worker; cron overlap skipped, Slack concurrent, once rearmed after crash for at-least-once. Older doc omits newer budget/trigger work, checked against pinned source.
-
Rookery automation implementation
Finding: Automation passes costBudgetUsd/maxTurns/provider to worker/master; untrusted Slack and worker results fenced with random nonce. Codex master accepts bypassPermissions only; provider fixed at creation.
rookery:COORD-05: Messages queue at turn boundaries; interrupt/stop and ranked attention support intervention. cross-checked
rookery:COORD-05
Messages queue at turn boundaries; interrupt/stop and ranked attention support intervention.
- Not established by this source pass: pause, escalation, visible_errors, chat_terminal_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
-
Finding: Pinned code resumes background rows as idle with empty background task set, preserves budgets/mode, supports cross-provider handoff; no worker concurrency cap. Same worker reload keeps identity/worktree.
rookery:COORD-06: Mission control presents master sessions and global live worker fleet. cross-checked
rookery:COORD-06
Mission control presents master sessions and global live worker fleet.
- Not established by this source pass: fleet_fixture, dependencies, navigation_errors, fixture_mode.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:COORD-07: Single session, worker fleet or automation supports natural-language custom orchestration. cross-checked
rookery:COORD-07
Single session, worker fleet or automation supports natural-language custom orchestration.
- Not established by this source pass: growing_epic, discoverability, auth_friction.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
rookery:RUN-01: The operator-owned resident daemon runs on a local machine or deliberately configured headless server, independently of its desktop/CLI/Slack clients. Rookery supplies no managed execution cloud.
rookery:RUN-01
The operator-owned resident daemon runs on a local machine or deliberately configured headless server, independently of its desktop/CLI/Slack clients. Rookery supplies no managed execution cloud.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: hybrid, payer, resources, region, expiry, other_device_continuation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
-
Rookery: docs/reference/settings-and-env.md
Finding: The documented headless daemon can bind an operator-selected network host through ROOKERY_HOST with an explicit ROOKERY_ALLOW_NONLOOPBACK override. CLI, external MCP and Slack act as clients of its resident process; daemon sessions/workers survive client disconnects. An operator can deploy that headless daemon on their server; no Rookery-managed compute service is implemented.
rookery:RUN-02: Rookery workers run native agent processes in separate Git worktrees on the daemon host; they have no product-managed container or VM isolation option.
rookery:RUN-02
Rookery workers run native agent processes in separate Git worktrees on the daemon host; they have no product-managed container or VM isolation option.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: os_sandbox, filesystem, process, network, secrets.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
-
Rookery: src/core/fleet-orchestrator.ts
Finding: Workers run native provider processes rooted in product-managed Git worktrees on the daemon host. The bounded spawn/backend paths implement no Docker/container or VM provisioning; a logical container session in session-manager.ts is a database/session grouping, not OS isolation.
rookery:RUN-03: Daemon restart reconstructs resumable workers only if session handle and worktree survive. cross-checked
rookery:RUN-03
Daemon restart reconstructs resumable workers only if session handle and worktree survive.
- Not established by this source pass: worker_crash, expiry, process_reconnect, duplicate_actions, multi_day_continuity.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
-
Finding: Pinned code resumes background rows as idle with empty background task set, preserves budgets/mode, supports cross-provider handoff; no worker concurrency cap. Same worker reload keeps identity/worktree.
rookery:RUN-04: Bundled runtime and scoped secret/environment setup support local execution.
rookery:RUN-04
Bundled runtime and scoped secret/environment setup support local execution.
- Not established by this source pass: caches, snapshots, ports, duplicate_installs, automatic_repair.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
rookery:RUN-05: Worker USD budgets and Claude per-send turn caps stop at observed turn results.
rookery:RUN-05
Worker USD budgets and Claude per-send turn caps stop at observed turn results.
- Not established by this source pass: time_limits, token_limits, timeouts.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
-
Rookery worker budget and recovery
Finding: Worker checks per-send turn count, lifetime USD budget and repeated aborted/errored turns. Codex reports one subturn so maxTurns>1 does not cap Codex; cost budget is its runaway guard. Stops at observed result boundary, not hard prepaid guarantee.
-
Rookery automation implementation
Finding: Automation passes costBudgetUsd/maxTurns/provider to worker/master; untrusted Slack and worker results fenced with random nonce. Codex master accepts bypassPermissions only; provider fixed at creation.
rookery:RUN-06: Worker states, transcripts and budget/loop notices expose progress and failure.
rookery:RUN-06
Worker states, transcripts and budget/loop notices expose progress and failure.
- Not established by this source pass: traces, usage_export, task_stats, project_stats, approval_status, performance_method, responsiveness.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
-
Rookery worker budget and recovery
Finding: Worker checks per-send turn count, lifetime USD budget and repeated aborted/errored turns. Codex reports one subturn so maxTurns>1 does not cap Codex; cost budget is its runaway guard. Stops at observed result boundary, not hard prepaid guarantee.
rookery:RUN-07: Local usage dashboard and worker cost estimates support spend visibility.
rookery:RUN-07
Local usage dashboard and worker cost estimates support spend visibility.
- Not established by this source pass: task_cost, epic_cost, harness_aggregation, subscription_allowance, provider_reconciliation, compute_cost, export, drilldown.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
-
Rookery worker budget and recovery
Finding: Worker checks per-send turn count, lifetime USD budget and repeated aborted/errored turns. Codex reports one subturn so maxTurns>1 does not cap Codex; cost budget is its runaway guard. Stops at observed result boundary, not hard prepaid guarantee.
rookery:RUN-08: No fleet concurrency cap; per-worker budgets provide limited control. cross-checked
rookery:RUN-08
No fleet concurrency cap; per-worker budgets provide limited control.
- Not established by this source pass: queues, cpu_ram, backpressure, host_awareness, check_reuse, check_deduplication, bounded_tests, fairness.
-
Rookery worker budget and recovery
Finding: Worker checks per-send turn count, lifetime USD budget and repeated aborted/errored turns. Codex reports one subturn so maxTurns>1 does not cap Codex; cost budget is its runaway guard. Stops at observed result boundary, not hard prepaid guarantee.
-
Finding: Pinned code resumes background rows as idle with empty background task set, preserves budgets/mode, supports cross-provider handoff; no worker concurrency cap. Same worker reload keeps identity/worktree.
rookery:TEAM-01: Distinct permitted Slack users can send instructions into the same persistent Rookery master thread. Each turn includes the sender identity and the master serializes its turns.
rookery:TEAM-01
Distinct permitted Slack users can send instructions into the same persistent Rookery master thread. Each turn includes the sender identity and the master serializes its turns.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: visibility, discussion, comments, presence, conflicts, plan_restrictions, owner_online.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
-
Rookery: src/slack/handle-incoming.ts
Finding: Slack input independently checks each human user ID against the allowlist (or configured allow-all). Session identity is team/channel/thread, not sender ID, so distinct permitted Slack users in the same thread call the same master session. The prompt prefix retains each sender name/ID. This uses separate human Slack identities, not a shared owner token.
rookery:TEAM-02: Rookery has capability-token control, Slack user allowlists and external MCP read-only/full-control scope, without named human workspace roles or enterprise SSO.
rookery:TEAM-02
Rookery has capability-token control, Slack user allowlists and external MCP read-only/full-control scope, without named human workspace roles or enterprise SSO.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: project_roles, membership, provisioning, plan_scope.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
-
Finding: The daemon uses a local/shared capability token and Slack checks allowed human IDs. External MCP offers read-only versus full-control tool scope, without a named human membership/role permission matrix. The bounded source contains no enterprise SAML/OIDC SSO path; Slack/provider authentication is separate.
rookery:TEAM-03: Headless defaults autoapprove tools; trusted capability digest and MCP scope are separate gates. cross-checked
rookery:TEAM-03
Headless defaults autoapprove tools; trusted capability digest and MCP scope are separate gates.
- Not established by this source pass: command, network, secret, delivery, approver_identity, lifetime, tunnels.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery automation implementation
Finding: Automation passes costBudgetUsd/maxTurns/provider to worker/master; untrusted Slack and worker results fenced with random nonce. Codex master accepts bypassPermissions only; provider fixed at creation.
rookery:TEAM-04: Local session/worker events and checkpoint records persist decisions and activity. cross-checked
rookery:TEAM-04
Local session/worker events and checkpoint records persist decisions and activity.
- Not established by this source pass: approvals, edits, decisions, cross_user_persistence, export, integrity.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
-
Finding: Local SQLite sessions/messages/worker events/automation runs, worker checkpoints and persistent memory. No org multiuser role matrix established.
rookery:TEAM-05: Per-worker diffs, checkpoints, transcripts and attention queue guide review. cross-checked
rookery:TEAM-05
Per-worker diffs, checkpoints, transcripts and attention queue guide review.
- Not established by this source pass: comments, shipping_guidance, effort, missed_evidence, keyboard, narrow_screen, context_switching, roles.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:TEAM-06: Forks preserve conversation into same or different provider; colleague access itself unknown. cross-checked
rookery:TEAM-06
Forks preserve conversation into same or different provider; colleague access itself unknown.
- Not established by this source pass: ongoing_takeover, same_task, decisions, permissions, runtime_context, owner_disconnect, ownership, attribution.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Pinned code resumes background rows as idle with empty background task set, preserves budgets/mode, supports cross-provider handoff; no worker concurrency cap. Same worker reload keeps identity/worktree.
rookery:SHIP-01: Workspace files, diffs, transcripts and Git checkpoints remain locally. cross-checked
rookery:SHIP-01
Workspace files, diffs, transcripts and Git checkpoints remain locally.
- Not established by this source pass: screenshots, recordings, previews, gallery, task_links, prompt_leakage.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:SHIP-02: Reviewer spawning is configurable worker-settled automation, not an enforced exact-revision ship gate. cross-checked
rookery:SHIP-02
Reviewer spawning is configurable worker-settled automation, not an enforced exact-revision ship gate.
- Not established by this source pass: tests, lint, types, ci, spec_checks, required_checks, failure_blocking, requirement_conflicts.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:SHIP-03: Product manages worktrees/branches/diffs; instructed worker uses shell for commit/push/PR.
rookery:SHIP-03
Product manages worktrees/branches/diffs; instructed worker uses shell for commit/push/PR.
- Not established by this source pass: comments, ci_response, rebase, conflicts.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:SHIP-04: Worker shell can run delivery commands when instructed; no separate native merge/deploy authority established. cross-checked
rookery:SHIP-04
Worker shell can run delivery commands when instructed; no separate native merge/deploy authority established.
- Not established by this source pass: approve, merge, release, deploy, exact_revision.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:SHIP-05: Per-turn checkpoints snapshot tracked and untracked work for local restore. cross-checked
rookery:SHIP-05
Per-turn checkpoints snapshot tracked and untracked work for local restore.
- Not established by this source pass: pr_links, build_links, deployment_links, delivery_status, revert, stale_approval_invalidation.
-
Finding: Persistent worker IDs/worktrees/branches; lazy SDK resume after daemon restart if session/worktree exist, otherwise orphaned. Stop keeps branch; discard destroys. Checkpoint restores only non-running work. GitOps does not commit/push/openPR; worker bash does when instructed.
rookery:SHIP-06: Attention queue ranks many worker results for review. cross-checked
rookery:SHIP-06
Attention queue ranks many worker results for review.
- Not established by this source pass: grouping, risk_size_filters, artifacts, request_changes, exact_revision_approval, dependency_queues, stale_approval_invalidation, check_deduplication.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
rookery:OWN-01: Main application is Apache-2.0; proprietary provider SDK stays separately licensed. cross-checked
rookery:OWN-01
Main application is Apache-2.0; proprietary provider SDK stays separately licensed.
- Not established by this source pass: hosted_parity.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.
-
Finding: Third-party Anthropic SDK is separately proprietary; main app Apache-2.0 does not relicense dependency.
rookery:OWN-02: Full local desktop/daemon source is self-hostable; history lives in local SQLite. cross-checked
rookery:OWN-02
Full local desktop/daemon source is self-hostable; history lives in local SQLite.
- Not established by this source pass: export, import, cancellation, history_portability.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Local SQLite sessions/messages/worker events/automation runs, worker checkpoints and persistent memory. No org multiuser role matrix established.
rookery:OWN-03: Task context goes to the selected provider while Rookery history/settings remain local. The source provides local token/context accounting but no documented ADE telemetry opt-out control.
rookery:OWN-03
Task context goes to the selected provider while Rookery history/settings remain local. The source provides local token/context accounting but no documented ADE telemetry opt-out control.
- Documentation and pinned source inspection only; no hands-on scenario was run.
- Other atomic questions remain unestablished: artifacts, retention, deletion, training, subprocessors, telemetry_defaults.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Rookery Master and worker turns
Finding: Master turns serialized, workers have FIFO pending followups. Worker completion notifies parent, persisted pending notification retry. Per-turn trusted capability overlays and separate generated Codex homes; live reload explicitly required for worker.
-
Finding: Settings stored locally, secret getters write-only; binds127.0.0.1 default, warns for plaintext token on remote bind. Slack allowlist fail-closed; API-key fallback to native CLI OAuth.
-
Finding: The complete source settings/CLI contain no ADE analytics opt-out switch. result-telemetry.ts computes provider token/context usage for the local interface, and README says history, memory, tokens and logs stay local while task context goes to the chosen model provider. No ADE analytics reporter is present in the inspected runtime; provider telemetry controls are separate.
rookery:OWN-04: Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage. cross-checked
rookery:OWN-04
Rookery is Apache-2.0 open source with no paid plan published; you bring your own Anthropic/Codex API keys or CLI logins, and those providers bill for usage.
- First-party pricing pages, terms and licences read 2026-11-10; no purchase, billing or authenticated account test.
-
Finding: Says Rookery's code is Apache-2.0 and you bring your own credentials: an Anthropic or Codex API key pasted in Settings, or existing CLI logins. It offers USD budgets per worker and mentions no paid plan.
-
CChuYong/rookery LICENSE (Apache-2.0)
Finding: The Apache License 2.0 grants a perpetual, worldwide, no-charge, royalty-free copyright license to use and reproduce the code.
rookery:OWN-06: Public desktop installers and source are available; v0.6.0 released October 19.
rookery:OWN-06
Public desktop installers and source are available; v0.6.0 released October 19.
- Not established by this source pass: response_commitments, status_history, deprecation, export_options.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Release v0.6.0 published 2026-10-19 with macOS arm64 DMG, Linux x86_64 AppImage and Windows x64 EXE assets. Release notes describe a Slack Stop button, Claude Agent SDK and Codex CLI updates and cost-accounting fixes. Capability claims stay scoped to pinned main, not a binary test.
rookery:OWN-08: Apache application is freely installable; model usage and own compute cost separately. cross-checked
rookery:OWN-08
Apache application is freely installable; model usage and own compute cost separately.
- Not established by this source pass: trial, credits_trial, paid_only, early_access, card_required, usage_caps, paid_evaluation.
-
Finding: Local resident daemon with master/worker orchestration, isolated Git worktrees, native desktop/CLI/Slack, Claude/Codex selectable per surface. Capability packs with digest trust; automation, attention bell and local usage. Own native CLI login/API keys. App source Apache2; provider SDK separate.
-
Finding: Application source licensed Apache-2.0.