viro


IntroductionGetting StartedTroubleshooting

📚 Introduction

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.

Architecture

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.

Development

(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; });
};

Getting Started

Go to the releases and download the newest version of viro. Or use nix (recommended):

nix run github:micartey/viro

Requirements

MCP

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)

TODO:

Shortcuts

There 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