An open API service indexing awesome lists of open source software.

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

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.

![](images/preview.png)

### 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 |