Hands-on workshop — Robot Framework User Group Munich, September 2026.
Most people know RobotCode as the VS Code extension for Robot Framework: syntax
highlighting, code completion, a ▶ button.
That is only its most visible face.
In this meetup, we dig out the treasures of RobotCode — and try every one of them on a small, realistic project.
RobotCode is a toolkit built around *one core that uses Robot Framework's own parser.
The same core powers the
- editor,
- the command line,
- CI pipelines and
- AI agents,
and, importantly, all of them read the same robot.toml.
Configure once, use everywhere: what you set up in
robot.tomlis what the ▶ button, your terminal, the pipeline and an AI agent all see.
flowchart LR
TOML[("robot.toml<br/>profiles · paths · variables")]
RF["Robot Framework<br/>parser & runner"]
CORE["RobotCode core<br/>analysis · caching · configuration"]
LSP["Language Server"]
DAP["Debug Adapter"]
CLI["robotcode CLI<br/>robot · discover · analyze · results · repl · robot-debug"]
VSC["VS Code"]
IJ["IntelliJ"]
NV["Neovim & other LSP editors"]
TERM["Terminal"]
CI["CI pipeline"]
AI["AI agents"]
RF --> CORE
TOML -.-> CORE
CORE --> LSP
CORE --> DAP
CORE --> CLI
LSP --> VSC
LSP --> IJ
LSP --> NV
DAP --> VSC
CLI --> TERM
CLI --> CI
CLI --> AI
On the repository page: Code → Codespaces → Create codespace on main. The Codespace comes with VS Code, the RobotCode extension and uv — but deliberately without a Python environment. Creating it is the first exercise.
What is already available?
- Python 3.12+
- uv (or pip)
- VS Code with the extensions
- RobotCode
- Python
- Even Better TOML
and a clone of this repository with all branches.
| # | Chapter | Switch with |
|---|---|---|
| 0 | Intro: what is RobotCode? | (this page) |
| 1 | Getting started: environments with uv and pip | ./topic 01 |
| 2 | robot.toml, profiles and .robotignore |
./topic 02 |
| 3 | discover: what tests do I actually have? |
./topic 03 |
| 4 | REPL and notebooks | ./topic 04 |
| Break | ||
| 5 | Running tests and the wrapper | ./topic 05 |
| 6 | robot-debug: debugging without a GUI |
./topic 06 |
| 7 | Analyzer, diagnostics modifiers, Robocop, CI | ./topic 07 |
| 8 | results: what happened, without opening log.html |
./topic 08 |
| 9 | Working with AI agents | ./topic 09 |
| Wrap-up: cheat sheet | ./topic main |
Use the ./topic script in the terminal:
./topic # choose a chapter from a menu (↑/↓, Enter; s = solution, q = quit)
./topic 05 # go to chapter 5 directly and open its TOPIC.md
./topic 05 --solution # look at the model solution
./topic check # compare your work with the solution
./topic reset # start the current chapter over
./topic main # back to this page
./topic list # plain list of all chapters
./topic update # get the latest version of all chaptersYour changes are never lost: when you leave a chapter, ./topic saves (stashes) them, and when you come back they are
restored.
In this repository, we have a small, realistic project that is used in all exercises.
It implements a simple banking domain with accounts, deposits, withdrawals and transfers.
Checking accounts may be overdrawn up to their limit, savings accounts may not.
The domain is deliberately trivial, so all attention stays on RobotCode.
bank/BankLibrary.py Robot Framework keywords (in-memory bank, or the web service if ${BANK_URL} is set)
bank/service.py the same bank as a JSON web service: python -m bank.service
resources/banking.resource project keywords
tests/accounts/ smoke and regression tests
tests/api/ integration tests against the web service
robot.toml profiles: local, service, smoke, regression, ci
Now it is time to switch to the first topic:
./topic 01
- Documentation: https://robotcode.io
- What's new: https://robotcode.io/news/
- Source and issues: https://github.com/robotcodedev/robotcode
- Agent plugins: https://github.com/robotcodedev/robotframework-agent-plugins