Skip to content

Latest commit

 

History

556 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RCC

Build (caching) Lint codecov Release

RCC

RCC allows you to create, manage, and distribute Python-based self-contained automation packages. RCC also allows you to run your automations in isolated Python environments so they can still access the rest of your machine.

Repeatable, Contained Code - movable and isolated Python environments for your automation.

Together with robot.yaml configuration file, rcc is a foundation that allows anyone to build and share automation easily.

RCC is actively maintained by JoshYorko.

Why use rcc?

  • You do not need to install Python on the target machine
  • You can control exactly which version of Python your automation will run on (..and which pip version is used to resolve dependencies)
  • You can avoid Works on my machine
  • No need for venv, pyenv, ... tooling and knowledge sharing inside your team.
  • Define dependencies in conda.yaml and automation config in robot.yaml and let RCC do the heavy lifting.
  • If you have run into "dependency drifts", where once working runtime environment dependencies get updated and break your production system?, RCC can freeze ALL dependencies, pre-build environments, and more.
  • RCC will give you a heads-up if your automations have been leaving behind processes after running.

...and much much more.

Getting Started

Install rcc

Installation guide

Pull a robot from GitHub:

rcc pull github.com/joshyorko/template-python-browser

Run robot

rcc run

Create your own robot from templates

rcc create

For detailed instructions, visit the RCC documentation to get started. To build rcc from this repository, see the Setup Guide

Environment artifact providers

Named providers are stored per ROBOCORP_HOME and are used by the portable artifact commands:

rcc provider add office --type http --url http://127.0.0.1:8080 \
  --authorization-env RCC_PROVIDER_OFFICE_AUTHORIZATION --json
rcc provider list --json
rcc provider inspect office --json
rcc provider test office --json
rcc provider remove office --json
rcc env publish --robot robot.yaml --provider office --json
rcc env acquire --artifact sha256:<digest> --provider office --json

authorization-env stores only the environment-variable name. When present, its value must be a complete HTTP Authorization header (for example, Bearer token); the secret is never persisted or printed. Provider URLs must be root-only with no userinfo, query, or fragment. HTTP is restricted to explicit loopback hosts (localhost, 127.0.0.0/8, or ::1); remote endpoints must use HTTPS. Redirects are rejected. The built-in local provider uses the local provider root; it is distinct from the RCC cache and local materializations. A warm acquire reuses a complete local materialization without contacting the provider or rebuilding, even when the provider authorization variable is absent. Existing direct HTTP(S) --provider URLs remain supported. Provider names select transport only; the immutable sha256: Artifact digest remains the identity. The legacy rccremote protocol is classified as compatibility level A for v18.

Installing RCC from the command line

Links to changelog and different versions available here

Windows

  1. Open the command prompt
  2. Download: curl -o rcc.exe https://github.com/joshyorko/rcc/releases/latest/download/rcc-windows64.exe
  3. Add to system path: Open Start -> Edit the system environment variables
  4. Test: rcc

macOS

  1. Open the terminal
  2. Intel: curl -o rcc https://github.com/joshyorko/rcc/releases/latest/download/rcc-macos64
  3. Apple Silicon: curl -o rcc https://github.com/joshyorko/rcc/releases/latest/download/rcc-macosarm64
  4. Make the downloaded file executable: chmod a+x rcc
  5. Add to path: sudo mv rcc /usr/local/bin/
  6. Test: rcc

Linux

  1. Open the terminal
  2. Download: curl -o rcc https://github.com/joshyorko/rcc/releases/latest/download/rcc-linux64
  3. Make the downloaded file executable: chmod a+x rcc
  4. Add to path: sudo mv rcc /usr/local/bin/
  5. Test: rcc

Homebrew (macOS & Linux)

RCC is available via Homebrew for both macOS and Linux:

brew tap joshyorko/tools
brew install --cask rcc

Platform Support

Platform Status Binary
Linux x64 ✅ Native rcc-linux64
macOS Intel ✅ Native rcc-macos64
macOS Apple Silicon ✅ Native rcc-macosarm64

For Brewfile Users

Add to your Brewfile:

tap "joshyorko/tools"
cask "rcc"

Or with the full path:

cask "joshyorko/tools/rcc"

Documentation

The changelog can be seen here. It is also visible inside RCC using the command rcc docs changelog.

Some tips, tricks, and recipes can be found here. These are also visible inside RCC using the command: rcc docs recipes.

For additional documentation on robot.yaml, conda.yaml, and the broader ecosystem, see the Robocorp Documentation.

Telemetry

This fork disables all internal telemetry by default:

  • No background metrics are sent and internal metrics are disabled across product modes.
  • The installation identifier header is not attached to outbound HTTP requests when telemetry is disabled.
  • The rcc configure identity output will always report tracking as disabled unless explicitly modified in code; feedback/metric commands are effectively no-ops.

Custom Endpoints

You can repoint all network endpoints via environment variables or a local settings.yaml.

Environment variables (take precedence over builtin settings):

  • RCC_ENDPOINT_CLOUD_API
  • RCC_ENDPOINT_CLOUD_LINKING
  • RCC_ENDPOINT_CLOUD_UI
  • RCC_ENDPOINT_DOWNLOADS
  • RCC_ENDPOINT_DOCS
  • RCC_ENDPOINT_TELEMETRY
  • RCC_ENDPOINT_ISSUES
  • RCC_ENDPOINT_PYPI
  • RCC_ENDPOINT_PYPI_TRUSTED
  • RCC_ENDPOINT_CONDA
  • RCC_ENDPOINT_UV_RELEASES - Override the uv binary download URL (default: GitHub releases)
  • RCC_AUTOUPDATES_TEMPLATES - Override the templates.yaml URL for robot templates
  • RCC_AUTOUPDATES_RCC_INDEX - Override the index.json URL for version checking

Example (~/.zshrc):

# Point rcc at your own control plane endpoints
export RCC_ENDPOINT_CLOUD_API="https://api.your-domain.com/"
export RCC_ENDPOINT_CLOUD_UI="https://console.your-domain.com/"
export RCC_ENDPOINT_CLOUD_LINKING="https://console.your-domain.com/link/"

# Optional: switch where generic downloads resolve
export RCC_ENDPOINT_DOWNLOADS="https://downloads.your-domain.com/"

# Optional mirrors for docs, PyPI, and conda
export RCC_ENDPOINT_DOCS="https://docs.your-domain.com/"
export RCC_ENDPOINT_PYPI="https://pypi.org/simple/"
export RCC_ENDPOINT_PYPI_TRUSTED="https://pypi.org/"
export RCC_ENDPOINT_CONDA="https://conda.anaconda.org/"

# Optional: override where rcc checks for updates
# (defaults shown here; replace with your own mirror/private registry if needed)
export RCC_AUTOUPDATES_TEMPLATES="https://github.com/joshyorko/robot-templates/releases/latest/download/templates.yaml"
export RCC_AUTOUPDATES_RCC_INDEX="https://github.com/joshyorko/rcc/releases/latest/download/index.json"

# Validate your overrides
build/rcc configuration diagnostics --quick --json | jq .

Local settings file: write a settings.yaml to $ROBOCORP_HOME/settings.yaml with an endpoints: section. See assets/robocorp_settings.yaml for the full shape; any key you set there will override the built-in defaults.

Notes

Micromamba is embedded into rcc and extracted locally at runtime; no live download is needed for the conda-forge path. The uv-native path (conda.yaml with no channels) downloads uv on-demand and caches it locally. If you rebuild assets yourself, you can change the micromamba download base used during asset preparation via:

export RCC_DOWNLOADS_BASE="https://downloads.your-domain.com"
rcc run -r developer/toolkit.yaml --dev -t assets

To verify what endpoints are in effect at runtime, run:

build/rcc configuration diagnostics --quick --json | jq .

Acknowledgements

RCC was originally developed by the Robocorp team and released as open source under the Apache 2.0 license. This fork continues development independently.

License

Apache 2.0

About

No description, website, or topics provided.

Resources

Contributing

Stars

23 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages