Skip to main content

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-suggestions endpoint 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_fork and lineage_breed edge types from lineage data. See Architecture Editor.