> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livepeer.org/llms.txt
> Use this file to discover all available pages before exploring further.

# BYOC SDK

> The @muxionlabs/byoc-sdk: scaffold, test, and deploy BYOC containers with CLI tooling from MuxionLabs (formerly AI SPE).

export const CenteredContainer = ({children, maxWidth = "800px", padding = "0", preset = "default", width = "", minWidth = "", marginRight = "", marginBottom = "", textAlign = "", style = {}, className = "", ...rest}) => {
  const presets = {
    default: {},
    fitContent: {
      width: "fit-content",
      minWidth: "fit-content"
    },
    readable70: {
      width: "70%",
      minWidth: "fit-content"
    },
    readable80: {
      width: "80%",
      minWidth: "fit-content"
    },
    readable90: {
      width: "90%"
    },
    wide900: {
      maxWidth: "900px"
    }
  };
  const presetStyle = presets[preset] || presets.default;
  return <div className={className} style={{
    maxWidth: presetStyle.maxWidth || maxWidth,
    margin: "0 auto",
    padding: padding,
    ...presetStyle.width ? {
      width: presetStyle.width
    } : {},
    ...presetStyle.minWidth ? {
      minWidth: presetStyle.minWidth
    } : {},
    ...width ? {
      width
    } : {},
    ...minWidth ? {
      minWidth
    } : {},
    ...marginRight ? {
      marginRight
    } : {},
    ...marginBottom ? {
      marginBottom
    } : {},
    ...textAlign ? {
      textAlign
    } : {},
    ...style
  }} {...rest}>
      {children}
    </div>;
};

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>;
};

<CenteredContainer preset="readable90">
  <Tip>The BYOC SDK from MuxionLabs provides CLI tooling for scaffolding, testing, and deploying BYOC containers. Source at github.com/muxionlabs/byoc-sdk.</Tip>
</CenteredContainer>

<CustomDivider />

The `@muxionlabs/byoc-sdk` is a developer tool maintained by MuxionLabs (formerly the AI Video SPE) for building BYOC containers on the Livepeer Network. It provides scaffolding, local testing, and deployment utilities.

Source: [`muxionlabs/byoc-sdk`](https://github.com/muxionlabs/byoc-sdk)

Example applications: [`muxionlabs/byoc-example-apps`](https://github.com/muxionlabs/byoc-example-apps)

<CustomDivider />

## Capabilities

The SDK includes:

* **Scaffold:** Generate a BYOC container project with FrameProcessor boilerplate, Dockerfile, health check, and `aiModels.json` template
* **Local test harness:** Run your container against a local trickle server without a full Orchestrator setup
* **Docker build utilities:** Multi-stage Dockerfile patterns optimised for NVIDIA CUDA base images and model weight caching
* **Deployment helpers:** Register the container with a local or remote Orchestrator's `aiModels.json`

<CustomDivider />

## Related repositories

| Repository                                                                        | Purpose                                                                |
| --------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [`muxionlabs/byoc-sdk`](https://github.com/muxionlabs/byoc-sdk)                   | SDK source and CLI tooling                                             |
| [`muxionlabs/byoc-example-apps`](https://github.com/muxionlabs/byoc-example-apps) | Working BYOC container examples                                        |
| [`muxionlabs/runner-router`](https://github.com/muxionlabs/runner-router)         | Multi-container routing for Orchestrators running multiple BYOC models |
| [`muxionlabs/StreamDiffusionV2`](https://github.com/muxionlabs/StreamDiffusionV2) | StreamDiffusion V2 checkpoint optimised for BYOC deployment            |

<Note>
  The BYOC SDK is maintained by MuxionLabs, not the Livepeer core team. Check the repository for current version and compatibility with your go-livepeer version.
</Note>

<CustomDivider />

The [BYOC quickstart](/v2/developers/build/compute/byoc/byoc-quickstart) walks through building a container from scratch. The [BYOC architecture](/v2/developers/build/compute/byoc/byoc-architecture) covers the container interface and registration model.
