Skip to main content
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, and pool_inbox
Pod membership does not replace the profile sandbox. Every profile still keeps its implicit home at /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

Roles default to 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

The conductor broadcasts pods to all runners, just like profiles. The rest of the pods API follows the same shape as profiles:

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:
  1. Call pool_info to discover memberships and paths.
  2. Call pool_inbox to catch up on recent public posts.
  3. Use read_file / write_file for shared documents.
  4. Call pool_post for 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:
  1. Implicit home grant: /agents/{self}/**
  2. Profile fs grants and denies
  3. Built-in pod grants for each membership role
  4. Pod custom fs grants and denies
Tokens are substituted before matching: Relative paths in read_file, write_file, and delete_file resolve under /agents/{self}/. Use absolute paths for pod files.