Introduction • Getting Started • Troubleshooting
viro is a java overlay doodle application meant to quickly draw and highlight things in screen sharings or recordings. It is implemented in JavaFx and builds on the Spring Boot framework.

Due to scalability and ease of development, an event-based architecture is being used. Most parts are covered by the build-in event system of Spring Boot, some other parts are covered by jation. jation is being used to only execute events for the current selected brush. It provides a possibility to add a filter before invoking a method, which checks if the brush is the selected brush. The code can be found here.
(Writing this for future me in order to not spend an entire evening to get this up and running)
nix develop
You can also enable javaFx globally. This also provides a runtime that can guaranteed execute the artifact.
programs.java = {
enable = true;
package = (pkgs.jdk17.override { enableJavaFX = true; });
};
Go to the releases and download the newest version of viro. Or use nix (recommended):
nix run github:micartey/viro
viro also has an SSE-MCP-Endpoint for Large-Language-Modules (LLMs) to interface and draw shapes on their own.
For gemini-cli, you’ll need to add the following:
{
"mcpServers": {
"viro": {
"url": "http://localhost:8099/mcp/sse"
}
}
}
(Please keep in mind that the syntax for this depends on the tool you use)
drawShapeThere are some shortcuts you can use. They are currently not configurable, but will be in the feature. At the moment, the following shortcuts are pre-defined and static:
| Shortcut | Name | Description |
|---|---|---|
| CTRL + Z | Undo | Remove shape |
| CTRL + Y | Redo | Recreate removed shape |
| CTRL + SHIFT + I | Import Image | Import a png / jpg into the scene |
| CTRL + SHIFT + ENTF | Clear | Remove all shapes and reset background color |