aleda145/kavla

Infinte canvas for data

4

stars

16

commits

TypeScript

primary language

Sep 9, 2026

updated

README

Kavla

Kavla is an infinite canvas for exploratory analysis. It's all about embracing the analytical mess. Paste a picture, draw some shapes, write some SQL, make a chart. Compared to a notebook, in Kavla you can easily branch your analysis and keep the dead ends around.

For a better understanding on what you can do, check out kavla.dev. There you can also try the web version.

It's built with tldraw and duckdb. It can connect to a few databases, see list below.

Running

See the release page on github or go to https://kavla.dev/download

Desktop App

Simply install the desktop app as you would normally on your system. Double click works on debian! (I dont have a Mac so I don't know if that works. Please let me know in an issue!)

CLI

Download the CLI from the release page, then run:

kavla run

This will start a web server that serves the application on http://localhost:40743/.

Docker

 docker run --rm -p 40743:40743 -v kavla-data:/data aleda145/kavla:latest

Or see compose.yaml

There is no access control for the web server. Don't put it online without adequate security!

Supported Sources

SourceTypeConnection
DuckDBduckdbPath to an existing DuckDB file
DirectorydirectoryPath to a directory with CSV, Parquet, or JSON files
BigQuerybigqueryGoogle Cloud project ID (experimental)
PostgrespostgresPostgres URI

Collaboration

If you are interested in live multiplayer and sharing canvases with your team, check out the offering on kavla.dev

After signing up you can use the same CLI to interact with kavla.dev canvases:

Login

kavla login

Connect to a canvas

kavla connect

Or connect directly:

kavla connect <room_id>

Licensing

Kavla's original source code is licensed under the Apache License 2.0.

Third-party components remain under their own terms. See Third-party software and licenses, including the separately licensed tldraw SDK and the bundled tldraw 3.15.4 license.

Contributors

aleda145

16 commits

aleda145/kavla

Infinte canvas for data

4

stars

16

commits

TypeScript

primary language

Sep 9, 2026

updated

README

Kavla

Kavla is an infinite canvas for exploratory analysis. It's all about embracing the analytical mess. Paste a picture, draw some shapes, write some SQL, make a chart. Compared to a notebook, in Kavla you can easily branch your analysis and keep the dead ends around.

For a better understanding on what you can do, check out kavla.dev. There you can also try the web version.

It's built with tldraw and duckdb. It can connect to a few databases, see list below.

Running

See the release page on github or go to https://kavla.dev/download

Desktop App

Simply install the desktop app as you would normally on your system. Double click works on debian! (I dont have a Mac so I don't know if that works. Please let me know in an issue!)

CLI

Download the CLI from the release page, then run:

kavla run

This will start a web server that serves the application on http://localhost:40743/.

Docker

 docker run --rm -p 40743:40743 -v kavla-data:/data aleda145/kavla:latest

Or see compose.yaml

There is no access control for the web server. Don't put it online without adequate security!

Supported Sources

SourceTypeConnection
DuckDBduckdbPath to an existing DuckDB file
DirectorydirectoryPath to a directory with CSV, Parquet, or JSON files
BigQuerybigqueryGoogle Cloud project ID (experimental)
PostgrespostgresPostgres URI

Collaboration

If you are interested in live multiplayer and sharing canvases with your team, check out the offering on kavla.dev

After signing up you can use the same CLI to interact with kavla.dev canvases:

Login

kavla login

Connect to a canvas

kavla connect

Or connect directly:

kavla connect <room_id>

Licensing

Kavla's original source code is licensed under the Apache License 2.0.

Third-party components remain under their own terms. See Third-party software and licenses, including the separately licensed tldraw SDK and the bundled tldraw 3.15.4 license.

Contributors

aleda145

16 commits

Languages

TypeScript

62.2%

Go

32.9%

Python

1.3%

Shell

1.2%