> ## Documentation Index
> Fetch the complete documentation index at: https://na-36-changelog-go-livepeer-2026-05-18.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# The Livepeer Engineering Stack

> The key repositories, components, and layers that make up the Livepeer open source stack, and how they connect.

export const Image = ({src, alt = "", caption, icon, hint, fullwidth = true, className = "", style = {}, ...rest}) => {
  icon = icon ? icon : "arrow-turn-down-right";
  return <Frame caption={caption} hint={hint} className={className} style={style} {...rest}>
      <img src={src} alt={alt} style={{
    width: fullwidth ? "100%" : undefined
  }} />
    </Frame>;
};

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

The Livepeer network is built entirely in the open. Every component – from the Go node implementation to the Solidity staking contracts to the AI inference runtime – lives in public repositories on GitHub under the `livepeer` organisation.

This page maps the main repos, explains how they connect, and points you to the right starting point for the kind of contribution you want to make.

<Image src="/snippets/assets/media/images/livepeer-oss-stack.svg" alt="Diagram of the Livepeer open source stack, showing how the different repositories connect" />

<CustomDivider />

## Repo map

| Repo                                                                                                                        | What it does                                                                                                       | Language           | Role in the stack                                                                                   |
| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------ | --------------------------------------------------------------------------------------------------- |
| [`livepeer/go-livepeer`](https://github.com/livepeer/go-livepeer)                                                           | The Livepeer node – implements Broadcaster, Orchestrator, Transcoder, and Gateway roles                            | Go                 | Core runtime; everything else depends on or connects to this                                        |
| [`livepeer/livepeer-protocol`](https://github.com/livepeer/livepeer-protocol)                                               | Solidity smart contracts governing staking, bonding, and on-chain job settlement on Arbitrum                       | Solidity           | Protocol layer; go-livepeer calls these contracts for on-chain operations                           |
| [`livepeer/ai-worker`](https://github.com/livepeer/ai-worker)                                                               | The AI runner – containerised Python inference service for batch and real-time AI pipelines                        | Python             | go-livepeer spawns `ai-runner` Docker containers per pipeline to handle inference                   |
| [`livepeer/comfystream`](https://github.com/livepeer/comfystream)                                                           | Real-time AI video pipeline engine built on ComfyUI; the primary tool for building `live-video-to-video` workflows | Python             | Connects to the Livepeer network via the trickle protocol (see pytrickle)                           |
| [`livepeer/pytrickle`](https://github.com/livepeer/pytrickle)                                                               | Python SDK for the trickle streaming protocol – the transport layer used by comfystream and BYOC pipelines         | Python             | Transport layer; used by comfystream and by custom BYOC containers (via PyTrickle `FrameProcessor`) |
| [`livepeer/livepeer.js`](https://github.com/livepeer/livepeer.js) / [`livepeer/ui-kit`](https://github.com/livepeer/ui-kit) | Frontend SDK and React components for integrating Livepeer video into web applications                             | TypeScript / React | Application layer; independent of the AI and protocol stack                                         |
| [`livepeer/docs`](https://github.com/livepeer/docs)                                                                         | This documentation site                                                                                            | MDX (Mintlify)     | Docs; you are reading the output of this repo right now                                             |

<CustomDivider />

## How the repos connect

`go-livepeer` is the foundation. It implements the node software that every participant in the network runs – in Gateway mode, Orchestrator mode, or both. When AI inference is enabled, `go-livepeer` spawns one or more `ai-runner` Docker containers (from `livepeer/ai-worker`) per GPU, and proxies inference requests to them via a local REST interface.

`livepeer-protocol` defines the on-chain rules. The Solidity contracts on Arbitrum govern staking, bonding, reward distribution, and slashing. `go-livepeer` calls these contracts when a node registers on-chain or settles payments. Off-chain AI gateways bypass this layer entirely – they talk directly to orchestrators without on-chain settlement.

`comfystream` sits above `go-livepeer` for the real-time AI path. It runs alongside ComfyUI and uses `pytrickle` to exchange frames with an orchestrator over the trickle streaming protocol. A BYOC developer using `pytrickle` directly implements their own `FrameProcessor` class – the same interface that `comfystream` uses internally.

`livepeer.js` / `ui-kit` is independent of the above. It is the application SDK for developers building Studio-integrated video apps – stream playback, upload, asset management. It does not interact with `go-livepeer` directly.

<CustomDivider />

## Where to start contributing

| If you want to…                                                               | Start with                                                                                                                         | Look for                                                       |
| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| **Build or improve AI pipelines** (batch inference, new pipeline types)       | [`livepeer/ai-worker`](https://github.com/livepeer/ai-worker)                                                                      | Open issues and `runner/pipelines/` Python modules             |
| **Build real-time AI workflows** (ComfyStream, BYOC, trickle transport)       | [`livepeer/comfystream`](https://github.com/livepeer/comfystream) or [`livepeer/pytrickle`](https://github.com/livepeer/pytrickle) | Open issues; ask in `#comfystream` Discord                     |
| **Contribute to the core node** (gateway, orchestrator, transcoder logic)     | [`livepeer/go-livepeer`](https://github.com/livepeer/go-livepeer)                                                                  | "Contributing to go-livepeer" guide in the README; open issues |
| **Work on protocol contracts** (staking, bonding, governance)                 | [`livepeer/livepeer-protocol`](https://github.com/livepeer/livepeer-protocol)                                                      | Open issues; Protocol R\&D SPE (Sidestream) for mentorship     |
| **Build the frontend SDK** (player, React components, Studio API integration) | [`livepeer/ui-kit`](https://github.com/livepeer/ui-kit)                                                                            | Open issues; `#developers` Discord                             |
| **Improve documentation**                                                     | [`livepeer/docs`](https://github.com/livepeer/docs) – branch `docs-v2`                                                             | Open issues tagged `docs`; contribution guide                  |

All repositories accept pull requests. The `go-livepeer` README links directly to a contributing guide. For `ai-worker` and `comfystream`, open issues are the best starting point – ask in the relevant Discord channel (`#comfystream`, `#developers`, `#protocol-development`) before starting work on anything substantial.

<CustomDivider />
