Skip to content

joshyorko/rcc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

152 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RCC

Build (caching) Go Report Card 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

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. Download: curl -o rcc https://github.com/joshyorko/rcc/releases/latest/download/rcc-darwin64
  3. Make the downloaded file executable: chmod a+x rcc
  4. Add to path: sudo mv rcc /usr/local/bin/
  5. 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-darwin64
macOS Apple Silicon ✅ Rosetta 2 rcc-darwin64

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 $RCC_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

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors