Simplifying Python-based automation, introducing RCC

Announcing RCC, Robocorp's open-source toolchain that allows you to create, manage and run python-based automation projects in no time!

April 19, 2021

Time to give back to the community! Today we are announcing RCC, our open-source toolchain that allows you to create, manage, and distribute Python-based self-contained automation projects - or robots 🤖 as we call them.

When we started working on our first technical proof-of-concept of what eventually became Robocorp, we had a vision where you could easily create, ship, and Python-based automation code to target environments in real-time. One of the very first problems we encountered was:

“How do we distribute and run Python-based automation routines to environments that we have no control over?”

Many people have asked the same question, as is evident from the various Python installer projects out there, but none fit our needs. In short, we needed to be able to ship and run Python code anywhere, manage dependencies without any expectation of what was available locally (we couldn’t assume even Python to be there), and we needed to do it in a way that was fast and reliable.

Similarly to this distribution problem, we wanted to create a developer experience that would be easy and seamless. We wanted to let our developers write automation code without worrying about environment configuration and dependency management so that their experience would feel joyful rather than tedious. When a developer hits the “run” button on VS Code, everything should already be in place.

As our cloud platform and developer tools started to take shape, we went through many iterations. Finally, we ended up developing a single tool that allows you to solve both of these problems at once. We call it Robot Code Configuration toolchain, or simply just RCC, and it’s available on our GitHub right now! Yes, it is open-source!

Robocorp Automation Stack - Python-based automation development, sharing, and running

The RCC toolchain integrates Python code and Conda environments with a project configuration file, robot.yaml, and locally tracks these projects. It can also pull projects from other sources like GitHub repos, which allows you to share and consume Python projects simply by pointing RCC to a repository.

To summarize its capabilities, the RCC toolchain can:

  • Initialize Python projects from templates
  • Manage an isolated Python environment for each project
  • Execute and package projects that are configured with robot.yaml
  • Pull projects from network / repositories

What does this look like in practice? To get started with running an actual RPA project on your computer, you simply need to install RCC and type into your terminal:

rcc pull robocorp/example-google-image-search
cd example-google-image-search-main
rcc run

During the first run, quite many packages will be installed: after that everything runs super fast. Then, when you run another project, you’ll notice that RCC has cached everything that you used previously. You don’t need to re-download dependencies even though each project is running in a completely isolated environment. When you want to start a new project, RCC lets you do that interactively by just running rcc create, and you’re all set!

Python is the native language of automation

Similar to AI and ML, Python is the native language of automation. RCC was created to simplify Python-based automation and allow for an easy and reliable way to distribute it anywhere. It’s the central piece in our open-source OpenRPA automation stack that allows you to focus on developing automation instead of working on packaging and dependencies.

Sounds good? Let’s get started!

To get started with RCC, read our documentation on GitHub or Robocorp Docs.

You can use RCC by itself as a standalone CLI tool, or integrated into our development tools: the Robocorp VS Code extension and the Robocorp Lab IDE. Choose the one that suits your workflow best on our website! one that suits your workflow best on our website!](https://robocorp.com/get-started)

Share this article