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.1

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.1
File Size Uploaded
rigyard-1.0.1.tar.gz 164.3 kB Details

Built distribution (wheel)

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

Total release size: 286.0 kB

Release files / rigyard-1.0.1.tar.gz

Download URL rigyard-1.0.1.tar.gz
Size 164.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7039a059cd9c5821c77c8ed52b6292ba158c2e1e880f514e239768dfa0881d19
BLAKE2b-256 checksum
How to use checksums
274aaa456a24790598c68410c99b6e514588c06d5432e9fb9b518fe531aa891b
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 Sep 28, 2026.

Transparency log

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

Download URL rigyard-1.0.1-py3-none-any.whl
Size 121.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c743e0c3f8b65d2be84b74f7de80f52a3d4dce30cf56305c16670c881e4d9ff2
BLAKE2b-256 checksum
How to use checksums
982da5a149f8d47dd265de1f00ca37b5f9a6870e607f99317cdb5658b8215e23
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 Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.4

2 release files

1.0.3

2 release files

This release

1.0.1 This release

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