rku

Finally. Roku publishing made easy.

From your terminal or your CI workflow.

rku push acme-prod --version 4.12.0 ↳ published in 17m

How it works

Roku has no publish API. rku is one.

Roku ships channels through a web portal, by hand. rku drives that portal programmatically — sessions, fixtures, and publish jobs — so shipping a channel becomes a command you can put in CI.

  1. 01 rku login

    Capture a session

    Authenticate against the Roku Developer Portal once. rku persists the session so login only happens when it actually expires.

  2. 02 rku fixture diff

    Reconcile against a fixture

    Your channel config lives as a fixture in your repo. rku shows the pending detail changes before anything ships.

  3. 03 rku push

    Publish & watch

    Upload the build, verify the SHA against the manifest, and stream the reconcile log live until the version is in review.

A publish, end to end

Honest output. No emoji. No surprises.

rku tells you what happened and what to do next, then gets out of the way — the same run, whether you type it or CI does.

Features

Built for shipping, not clicking.

Everything the portal makes you do by hand — sessions, config, publishing, expiry — rku turns into something repeatable, reviewable, and scriptable.

sessions

Sessions that survive

Capture a portal session once; rku reuses it across runs and only prompts to reconnect when ks.session actually expires.

fixtures

Fixtures & diffs

Channel config lives in your repo as a fixture. Reconcile every channel against it on each push, and review the diff first.

ci-native

CI-native

Scoped rku_ci_ tokens and machine-readable --json output drop straight into your pipeline. The same run, in your terminal or on a runner.

jobs

Publish jobs you can watch

Every publish is a job. Stream its reconcile log live, or check status later — published, running, failed, queued.

auto-recreate

Channels that don’t lapse

rku tracks channel expiry and recreates channels inside the lead window before they go dark — no silent outages.

tokens

Scoped tokens

rku_live_, rku_ci_, rku_test_ — environment-prefixed, greppable in code, scannable in logs. Scope is obvious at a glance.

Get started

Ship your next Roku build from the terminal.

Install the CLI, capture a session, push. Two minutes to your first scripted publish.

npm i -g @namiml/rku