https://github.com/micartey/viro
A Java doodle application with mcp integration for large language models
https://github.com/micartey/viro
doodle drawing graphics highlight java llm mcp mcp-server overlay paint painting screen-sharing
Last synced: 15 days ago
JSON representation
A Java doodle application with mcp integration for large language models
- Host: GitHub
- URL: https://github.com/micartey/viro
- Owner: micartey
- License: mit
- Created: 2021-07-08T09:25:02.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2026-05-27T14:25:22.000Z (about 1 month ago)
- Last Synced: 2026-05-27T16:10:30.730Z (about 1 month ago)
- Topics: doodle, drawing, graphics, highlight, java, llm, mcp, mcp-server, overlay, paint, painting, screen-sharing
- Language: Java
- Homepage:
- Size: 114 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# viro
Introduction •
Getting Started •
Troubleshooting
## 📚 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](https://github.com/micartey/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](https://github.com/micartey/viro/blob/1a8fa0810a2b03d8fedd1727def66c3e9a417cc9/src/main/java/me/micartey/viro/input/MouseObserver.java#L49-L62).
### Development
*(Writing this for future me in order to not spend an entire evening to get this up and running)*
```bash
nix develop
```
You can also enable javaFx globally.
This also provides a runtime that can guaranteed execute the artifact.
```nix
programs.java = {
enable = true;
package = (pkgs.jdk17.override { enableJavaFX = true; });
};
```
## Getting Started
Go to the [releases](https://github.com/micartey/viro/releases) and download the newest version of viro.
Or use nix (recommended):
```bash
nix run github:micartey/viro --no-sandbox
```
### Requirements
- Java 17+
- Depending on your system: javafx (e.g. on Nix)
### 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:
```json
{
"mcpServers": {
"viro": {
"url": "http://localhost:8099/mcp/sse"
}
}
}
```
*(Please keep in mind that the syntax for this depends on the tool you use)*
### 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 |