Last updated: 2026-09-06
What is a Pod?
A Pod groups profiles that need to collaborate through shared state. Pods add two things to each member profile:- A role-aware filesystem policy under
/pools/{pool}/... - Pod tools:
pool_info,pool_post, andpool_inbox
/agents/{self}/**; pod access is layered on top.
The API, CLI, and SDKs still use the older name pool for this concept: routes live under
/api/pools, the command is orca pools, the shared workspace is mounted at /pools/{pool}/**, and the tools are pool_info, pool_post, and pool_inbox. “Pod” in this documentation and “pool” in those identifiers refer to the same thing.Pod Schema
member when omitted or unknown.
POST /api/pools/{name}/pin and DELETE /api/pools/{name}/pin set and clear PinnedAt. Listing pods (GET /api/pools) orders them by pinnedAt descending (pinned pods first), then updatedAt descending, then name.
Creating a Pod
Built-in Path Layout
Every pod uses the same directory conventions:pool_info returns the concrete paths for the active session.
Role Permissions
Custom
fs.read, fs.write, fs.delete, and fs.deny entries are additive. deny always wins.
Pod Tools
@pool is part of @default, so normal profiles can inspect pod membership immediately. Tools that read or write posts use the runner’s VirtualFS dispatcher; with no VFS_* environment they still work in that runner’s in-memory storage, but posts are not shared with vfs serve or other runner processes.
Typical agent workflow:
- Call
pool_infoto discover memberships and paths. - Call
pool_inboxto catch up on recent public posts. - Use
read_file/write_filefor shared documents. - Call
pool_postfor updates other members should see.
Admin tools
A separate, opt-in@pools.admin capability bundle grants a second set of tools that manage the pod catalog itself, rather than just posting to it:
These are state-changing mutations over the pods API above; grant
@pools.admin only to profiles that should be able to create, reconfigure, or delete pods programmatically.
Effective Filesystem Policy
The runner compiles a session policy in this order:- Implicit home grant:
/agents/{self}/** - Profile
fsgrants and denies - Built-in pod grants for each membership role
- Pod custom
fsgrants and denies
Relative paths in
read_file, write_file, and delete_file resolve under /agents/{self}/. Use absolute paths for pod files.