MCPcopy Index your code
hub / github.com/alepez/lavagna

github.com/alepez/lavagna @v2.1.9

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.9 ↗ · + Follow
119 symbols 170 edges 10 files 4 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

lavagna

It's a blackboard, not a lasagna.

preview

Lavagna is a collaborative blackboard, perfect for creating simple sketches during online meetings. It has an (optional) minimal toolbar which can be hidden to avoid distractions from your drawings. You can control colors and line width using the keyboard or the toolbar.

It's just you, your peers, and your creativity.

Online demo

An online demo is available: demo

It supports passing options as url paramters:

  • collaboration url: https://lavagna.devand.dev/?collab-url=wss://lavagna-server.devand.dev/demo
  • debug pane: https://lavagna.devand.dev/?collab-url=wss://lavagna-server.devand.dev/demo&dbg=true
  • ui: https://lavagna.devand.dev/?collab-url=wss://lavagna-server.devand.dev/demo&dbg=true&ui=true

Keyboard bindings

Button Action Note
C Color Change the chalk color
M Grow Grow chalk size 2x
N Shrink Shrink chalk size 2x
X Clear Clear the whole blackboard
U Toolbar Toggle toolbar visibility

Installation

Archives of precompiled binaries for lavagna are available for Windows, macOS and Linux.

Install from source

If you're a Rust programmer, lavagna can be installed with cargo.

  • Note that the minimum supported version of Rust for lavagna is 1.61.0, although lavagna may work with older versions.

To install from sources:

git clone https://github.com/alepez/lavagna.git
cd lavagna
cargo install --path lavagna --locked

Install from crates.io

To install from crates.io:

cargo install lavagna

Note that the version available in crates.io may be older than the one you find on latest release page.

Instant collaboration

lavagna uses WebRtc for instant collaboration. So you can use it for online meetings. You don't even need to install anything, because lavagna is available as a web-app too.

You need a signaling server like matchbox_server installed somewhere.

Don't worry, for quick testing you can borrow devand.dev signaling server:

lavagna --collab-url wss://lavagna-server.devand.dev/YOUR_ROOM

Change YOUR_ROOM to your preferred name or a unique id. If you do the same on different device, anything you draw will be visible on the other side (and vice versa).

Desktop app development

lavagna works on many operating systems:

  • Linux (x86)
  • Linux (ARM)
  • macOS (x86)
  • Windows

You just need to have a Rust toolchain installed. Run this from the project directory:

cargo run

To print help information, just use:

cargo run -- --help

Web app development

This script builds all the assets needed for a web application. You'll find them on www directory, so you can use any http server able to serve static files.

./tools/build-web
cd www
python -m http.server 8000

See also docker/lavagna-webapp/Dockerfile as an example of how to publish the web-app.

Core symbols most depended-on inside this repo

send
called by 10
src/collab.rs
button
called by 5
src/ui.rs
get
called by 5
src/local_chalk.rs
label
called by 4
src/ui.rs
color_from_u32
called by 3
src/collab.rs
build
called by 2
src/drawing.rs
add_point
called by 2
src/drawing.rs
make_chalk
called by 2
src/drawing.rs

Shape

Function 52
Class 40
Method 26
Enum 1

Languages

Rust100%

Modules by API surface

src/local_chalk.rs28 symbols
src/collab.rs28 symbols
src/ui.rs21 symbols
src/drawing.rs17 symbols
src/lib.rs8 symbols
src/web.rs6 symbols
src/debug.rs5 symbols
src/keybinding.rs3 symbols
src/cli.rs2 symbols
src/main.rs1 symbols

For agents

$ claude mcp add lavagna \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact