Get started with Orchard
Everything you need to understand Orchard's core concepts and get your team sharing knowledge across AI sessions.
Account & API keys
Create an account — this is the identity your teammates will see in the mesh.
Then add your API keys. Orchard supports Anthropic, OpenAI, and OpenRouter. Keys are stored locally on your machine and never sent to our servers.
Your first project
Point Orchard at an existing repo or start fresh. The engine indexes your codebase and creates a workspace. Then follow these steps:
Seedpacks
A seedpack is a versioned, SHA256-manifested bundle that gives your AI sessions new capabilities. Think of it as an npm package for your agent's skills, rules, hooks, MCP servers, and CLI tools.
Plant a seedpack and every AI session on your machine gains its capabilities immediately. Share it with your team and propagation completes within 60 seconds.
| Component | What it does |
|---|---|
| Skills | Reusable agent capabilities — code review, debugging, test generation, deployment checks |
| Rules | Constraints that shape behavior — coding standards, security policies, naming conventions |
| Hooks | Shell commands triggered by events — pre-commit validation, auto-formatting |
| MCP Servers | Model Context Protocol extensions — databases, APIs, browser automation |
| CLI Tools | Bundled utilities — scaffolding, migration runners, code generators |
| Templates | Project scaffolds and file templates for new code |
$ orchard seedpack list 23 seedpacks installed · 4 core (required) · 19 optional $ orchard seedpack plant superpowers Planted superpowers@2.1.0 · SHA256 verified · 12 skills, 4 rules, 2 hooks loaded
The Mesh
The mesh is Orchard's peer-to-peer network. Every laptop running Orchard can join — knowledge, skills, and session memory propagate across devices and teammates within seconds.
Machines discover each other through encrypted tunnels. NAT traversal is built in — no port forwarding, no VPN, no IT tickets. Share a PIN with a teammate and their machine joins your mesh.
Work offline and the sync layer queues changes locally. Reconnect and queued changes replay automatically. No lockout, no lost work.
TeamSync
TeamSync is the propagation engine inside the mesh. Four GenServers coordinate to push every new learning across the team in under 60 seconds:
| GenServer | Responsibility |
|---|---|
| MemorySync | Replicates scoped memory across teammates |
| PollenClaimer | Distributes new skills and rules |
Sessions and proposals sync via project-scoped RLS on the existing mirror tables — no dedicated replication workers needed. One engineer commits a new rule — every teammate's agent sees it before the next standup.
Roots discovery
Roots is Orchard's semantic discovery layer. It surfaces what a teammate figured out last month the moment your agent needs it — without anyone typing a question.
A Rust-backed vector index (vecstore) stores embeddings of your team's collective knowledge. When an agent encounters a problem, Roots searches across all team members' memory and session history to find relevant context. The agent already knows where to look.
Roles & permissions
Every team member is assigned one of three roles. Each role inherits the permissions of the roles below it.
| Role | Can do |
|---|---|
| Owner | Manage billing, team settings, and everything below |
| Admin | Manage seedpacks, proposals, member invites, and everything below |
| Member | Use all tools, contribute knowledge, submit proposals |
Inviting teammates
Canopy dashboard
Canopy is your team's command center. It runs inside the Orchard Desktop app and shows everything happening across your team's AI sessions.
Active sessions, recent proposals, seedpack changes, team members — all visible in one place. Switch between teams without logging out. Each team has its own projects, seedpacks, proposals, and mesh.
Plugin API
The local engine exposes a versioned, scope-authenticated HTTP API at http://127.0.0.1:19470/api/v1 so a plugin can call Orchard directly -- offline, with no cloud round-trip. It is off by default; enable it in Settings -> Developer (the plugins_api.enabled flag).
Authentication
Mint a scoped key in Canopy (Settings -> Developer -> API keys) or with orchard keys create. Send it on every request as a Bearer token (or the X-Orchard-Api-Key header). The plaintext key is shown once at creation -- store it securely.
curl -H "Authorization: Bearer orch_..." \ http://127.0.0.1:19470/api/v1
Scopes
Keys carry a closed set of scopes and each endpoint enforces one -- request only what you need. The live vocabulary and preset tiers are served at GET /api/v1/scopes.
| Scope | Grants |
|---|---|
| projects:read / projects:write | Read or manage projects |
| terminal:read / terminal:spawn / terminal:write | Read, spawn, and drive sessions |
| proposals:read / proposals:write / proposals:execute | Read, author, and build proposals |
| files:read / files:write | Read and write within a bound project |
Endpoints
The curated /api/v1 surface covers discovery, projects, sessions and terminals, proposals, files, and events. The full machine-readable contract is the OpenAPI 3.1 document at GET /api/v1/openapi.json.
Using the client
The @orchard-ai/client TypeScript SDK resolves the engine URL and attaches your key automatically.
import { OrchardClient } from "@orchard-ai/client";
const client = new OrchardClient({ apiKey: "orch_..." });
const info = await client.discover(); // GET /api/v1
const projects = await client.request("GET", "/api/v1/projects");