Forking & Lineage
Forking creates a personal copy of any public appgrammar. The lineage system tracks the ancestry of all forks and breeds, enabling discovery features and broadcast propagation.
Forking
Via the Web UI
On any appgrammar's detail page, click the Fork button. A copy is created under your account with the same modules and configuration. You become the owner and can modify it freely.
Via the API
POST /api/appgrammars/:id/fork
Returns the new appgrammar with its own ID, slug, and a forked_from reference to the original.
Via MCP
The appgrammar_fork tool provides the same functionality for AI agents:
{
"appgrammar_id": "uuid-to-fork"
}
What Gets Copied
A fork includes the complete plan: all modules, steps, configuration, and design system. It does not copy stars, reviews, or execution history. The fork starts fresh with its own stats.
Viewing Forks
GET /api/appgrammars/:id/forks
Lists all public forks of an appgrammar.
Lineage
Every fork and breed operation creates a lineage link. The lineage system builds an ancestry tree that connects related appgrammars across generations.
Viewing the Lineage Tree
GET /api/appgrammars/:id/lineage
Returns the full ancestry graph: parents (forked from, bred from) and children (forks, breed offspring). In the web UI, the Lineage tab on the appgrammar detail page renders this as an interactive tree.
How Lineage Feeds Other Features
- Breed suggestions: The
breed-suggestionsendpoint uses lineage to find complementary appgrammars. See Registry & Discovery. - Broadcasts: When an author sends a broadcast, all forkers receive it automatically. See Broadcasts & Versioning.
- Architecture edges: The architecture editor auto-computes
lineage_forkandlineage_breededge types from lineage data. See Architecture Editor.