In the web UI
- Open an approved agent or component and select Fork. Choose an approved base version, a new name, and your namespace or an eligible teamspace. A private team source can only be forked into the same private teamspace.
- The new item opens as your draft. An agent opens in the Builder; a component opens in its draft editor. Edit and save it before submitting for review.
- On the detail page or in the review queue, select Diff vs upstream to compare your version with the approved base. Unchanged from upstream means tracked content has not changed. A version number, validation state, or a secret environment/header value alone does not count as an install-content change.
- Submit the draft through its normal review workflow. Approval makes a public fork appear in the source’s Forks tab and count. Drafts and team-private forks never appear there.
From the CLI
--dir scaffold stores the fork’s ID, so subsequent publish --update calls target that draft rather than creating another listing. If a name is already taken, choose another; the existing item is never overwritten.
For scripted integrations, use POST /api/v1/agents/{id}/fork or POST /api/v1/{type}/{id}/fork (type is mcps, skills, hooks, prompts, or sandboxes). GET …/{id}/fork-diff?version=… compares a visible fork version with its approved, currently accessible base. ARD search can filter currently public and approved direct forks using query.filter["obs:forksOf"] set to the upstream’s urn:air: identifier; public results then include obs:forkedFrom. Private and unpublished lineage is never exposed through this facet.
