Skip to main content

Rigyard

Rigyard is a configuration-driven CLI for containerized robotics development. A single project manifest organizes layered image builds, development containers, project builds and tests inside containers, project-specific tasks, and multi-process debugging scenarios managed by tmux.

Features

  • Build layered images from ordered Dockerfile fragments.
  • Create reproducible development containers and run lifecycle hooks.
  • Run project build scripts inside existing containers, starting stopped containers when allowed.
  • Run user-defined test and test-result commands with the same configurable start behavior.
  • Expose constrained project-specific container tasks through the CLI and interactive menu.
  • Start tmux debugging scenarios in existing containers or Docker Compose services.
  • Reuse configuration with global variables, string templates, and interactive runtime values.
  • Use the same application behavior through direct commands or a branded one-shot interactive menu.

Requirements

  • Linux and Bash for the setup script; it installs Python 3.12 and Rigyard using uv
  • Docker for container operations; Compose scenarios require Docker Compose v2
  • Scenario support requires tmux on the host and an interactive shell in each target container

Installation

For Linux, download the standalone installer and install Rigyard from PyPI without cloning the repository or preinstalling Python:

curl -fsSL https://raw.githubusercontent.com/zz990099/Rigyard/main/scripts/bootstrap_from_pypi.sh \
  -o bootstrap_from_pypi.sh
bash bootstrap_from_pypi.sh
"${XDG_DATA_HOME:-$HOME/.local/share}/rigyard/venv/bin/rigyard" --version

The installer downloads uv if needed, creates a dedicated Python environment, and prints the executable path. No activation is required. Docker, Compose, and tmux are checked but installed separately when needed. See installation and requirements for wget, version pinning, source-checkout setup, and troubleshooting. For development, see the contribution guide.

Quick start

By default, Rigyard reads rigyard.yaml from the current directory:

version: 3

metadata:
  name: robot-development

workspace:
  command_alias: robot

variables:
  PROJECT_ROOT: ${RIGYARD_ROOT}
  BRANDING_ROOT: ${PROJECT_ROOT}/branding
  CONTAINER_WORKSPACE_ROOT: /workspace

branding:
  logo_file: ${BRANDING_ROOT}/logo.txt

sources:
  images: [config/images.yaml]
  containers: [config/containers.yaml]
  builds: [config/builds.yaml]
  tests: [config/tests.yaml]
  tasks: [config/tasks.yaml]
  scenarios: [config/scenarios.yaml]

Validate the configuration and run configured operations:

rigyard validate
rigyard image build development
rigyard container create development
rigyard build native
rigyard test run unit
rigyard test report unit
rigyard task run clean
rigyard scene start robot-system development

Run rigyard without a subcommand to open the one-shot interactive menu:

rigyard

With the built-in logo and the example sources configured, the menu looks like this (colours omitted):

$ rigyard
██████╗ ██╗ ██████╗ ██╗   ██╗ █████╗ ██████╗ ██████╗
██╔══██╗██║██╔════╝ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
██████╔╝██║██║  ███╗ ╚████╔╝ ███████║██████╔╝██║  ██║
██╔══██╗██║██║   ██║  ╚██╔╝  ██╔══██║██╔══██╗██║  ██║
██║  ██║██║╚██████╔╝   ██║   ██║  ██║██║  ██║██████╔╝
╚═╝  ╚═╝╚═╝ ╚═════╝    ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═════╝

Project: robot-development
Configuration: /workspace/robot-development/rigyard.yaml

1) Build image
2) Create container
3) Build project
4) Scene…
5) Test…
6) Tasks…
0) Exit
Select [0-6]:

Custom terminal logos can be inline or loaded from a templated path; see the root manifest guide.

When the manifest lives elsewhere, pass it explicitly or bind the current workspace:

rigyard --config path/to/rigyard.yaml validate
rigyard init -f path/to/rigyard.yaml
robot build native

Configured aliases are installed in the active Conda or virtual environment. They are generic commands that discover the nearest current-or-parent workspace at runtime, so the same alias can be shared by multiple workspaces. They can be removed with rigyard alias remove.

Documentation

Start with the minimal example or browse the complete robot-development reference project.

License

MIT


Powered by Codex — AI-assisted development and documentation.

Metadata

Release files for rigyard 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rigyard 1.0.3
File Size Uploaded
rigyard-1.0.3.tar.gz 165.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rigyard 1.0.3
File Interpreter ABI Platform
rigyard-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 286.6 kB

Release files / rigyard-1.0.3.tar.gz

Download URL rigyard-1.0.3.tar.gz
Size 165.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b6314bab9534064f0f5d3aaccbdbe776a12e3a70ece263815cc93487b3ea6721
BLAKE2b-256 checksum
How to use checksums
f6281dce28889249f8c8997b576b3df71c6c3f4162e82217d228e8a75b9f12c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / rigyard-1.0.3-py3-none-any.whl

Download URL rigyard-1.0.3-py3-none-any.whl
Size 121.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dae888f0c4fd233219b64e011dc8d583be6327d107649e162e3ed0b6fbfb1fe0
BLAKE2b-256 checksum
How to use checksums
177dd0e0b1fdac05e399aa58946921f9900b64564a619b18cebdf866b4fb3d22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.4

2 release files

This release

1.0.3 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page