Documentation Index
Fetch the complete documentation index at: https://rendobar.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Three rules for any CI: pin the CLI version, authenticate from a secret, pick an output mode you can parse.
GitHub Actions
.github/workflows/render.yml
name: render
on: [push]
jobs:
render:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rendobar CLI
run: |
curl -fsSL https://rendobar.com/install.sh | sh
echo "$HOME/.rendobar/bin" >> "$GITHUB_PATH"
env:
RENDOBAR_VERSION: v1.0.0
- name: Render
run: rb ffmpeg -i ./input.mp4 -c:v libx264 -crf 23 out.mp4
env:
RENDOBAR_API_KEY: ${{ secrets.RENDOBAR_API_KEY }}
- uses: actions/upload-artifact@v4
with:
name: rendered
path: out.mp4
install.sh writes the PATH update to shell rc files, which Actions steps don’t read. The echo … >> "$GITHUB_PATH" line propagates the install dir to following steps. The default GITHUB_TOKEN is auto-picked-up by the installer to lift the GitHub Releases rate limit.
GitLab CI
render:
image: ubuntu:24.04
variables:
RENDOBAR_VERSION: v1.0.0
before_script:
- apt-get update && apt-get install -y curl ca-certificates
- curl -fsSL https://rendobar.com/install.sh | sh
- export PATH="$HOME/.rendobar/bin:$PATH"
script:
- rb ffmpeg -i ./input.mp4 -c:v libx264 -crf 23 out.mp4
artifacts:
paths:
- out.mp4
Set RENDOBAR_API_KEY as a masked, protected CI/CD variable in project settings.
Docker
Multi-stage to keep the final image small:
FROM ubuntu:24.04 AS cli
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates && rm -rf /var/lib/apt/lists/*
ENV RENDOBAR_VERSION=v1.0.0
ENV RENDOBAR_INSTALL_DIR=/usr/local/bin
ENV RENDOBAR_NO_MODIFY_PATH=1
RUN curl -fsSL https://rendobar.com/install.sh | sh
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates && rm -rf /var/lib/apt/lists/*
COPY --from=cli /usr/local/bin/rb /usr/local/bin/rb
ENTRYPOINT ["rb"]
RENDOBAR_NO_MODIFY_PATH=1 skips the rc-file writes; pointless inside a Docker layer.
docker run --rm -v $(pwd):/work -w /work \
-e RENDOBAR_API_KEY=$RENDOBAR_API_KEY \
rb-image ffmpeg -i input.mp4 -c:v libx264 -crf 23 out.mp4
Authenticate from a secret
RENDOBAR_API_KEY is the only auth path for CI. It beats any saved credential and writes nothing to disk. Don’t run rb login in CI — the browser flow will hang.
export RENDOBAR_API_KEY=rb_live_xxx
rb whoami # confirm before running anything else
Output modes for parsing
Progress display goes to stderr. stdout stays empty unless you ask for it.
| Goal | Flag | stdout |
|---|
| Result URL only | --url-only | One line, the signed download URL |
| Full result | --json | JSON: id, status, outputUrl, cost, timing |
| Exit code only | --quiet | (nothing) |
| Submit and exit | --no-wait | One line, the job ID |
# Pipe URL to wget
URL=$(rb ffmpeg --url-only -i in.mp4 -c:v libx264 out.mp4)
wget "$URL" -O out.mp4
# Parse with jq
rb ffmpeg --json -i in.mp4 -c:v libx264 out.mp4 \
| jq -r '"job=\(.id) cost=\(.cost.formatted)"'
# Fire-and-forget
JOB_ID=$(rb ffmpeg --no-wait -i in.mp4 -c:v libx264 out.mp4)
echo "submitted $JOB_ID"
# Boolean assertion
if rb ffmpeg --quiet -i in.mp4 -c:v libx264 out.mp4; then
echo "render passed"
fi
Verify build provenance
For supply-chain-strict pipelines, verify the binary was built by the official rendobar/cli workflow:
curl -fsSL -o rb.tar.gz \
https://github.com/rendobar/cli/releases/download/v1.0.0/rb-linux-x64.tar.gz
gh attestation verify rb.tar.gz --repo rendobar/cli
tar -xzf rb.tar.gz
sudo mv rb /usr/local/bin/rb
Idempotency
The CLI does not expose --idempotency-key. If a retried CI step shouldn’t double-charge, submit via the SDK or POST /jobs directly with an idempotencyKey field.
See also