A lightweight, offline-first kanban board desktop app.
Boards are plain directories of markdown files - no databases, no cloud, no accounts.
Built as a fast, personal replacement for Trello that plays nicely with Obsidian and other markdown tools.
See more screenshots in docs/screenshots/
Daedalus uses ~60 MB of RAM and loads boards in under 100ms. Note: This depends on board size, but for reference I went from 1-3GB RAM on Trello to ~200MB RAM loading the same board in Daedalus.
#label, icon:, and url: filter prefixes[[card-id]] links between cards? for helpdaedalus-cli for scripting and automation.md files = cards, board.yaml = configA board is a plain directory: subdirectories are lists, .md files are cards (YAML frontmatter + markdown body), and board.yaml holds config.
All frontmatter fields except id, title, and list_order are optional.
Unknown YAML keys are preserved through round-trips, so cards edited by other tools won't lose data.
See docs/SCHEMA.md for the full field reference, types, valid values, and examples.
Daedalus doesn't ship with icons to stay small. Upload your own SVG or PNG files through the icon manager, or drop them into _assets/icons/.
Good sources: Lucide, Simple Icons, or any site's favicon.
# Convert .ico to .png if needed
python3 -c "from PIL import Image; Image.open('favicon.ico').save('favicon.png')"
daedalus-cli provides scriptable access to boards:
daedalus-cli --board ~/boards/my-board board # board info (title, list/card counts)
daedalus-cli --board ~/boards/my-board summary # detailed text overview of board state
daedalus-cli --board ~/boards/my-board board-json # full board as JSON (config, cards, icons)
daedalus-cli --board ~/boards/my-board lists # get all lists
daedalus-cli --board ~/boards/my-board cards todo # get cards in a list
daedalus-cli --board ~/boards/my-board card-get 42 # get full card details by ID
daedalus-cli --board ~/boards/my-board card-create todo "New task" # create a task
daedalus-cli --board ~/boards/my-board card-delete 42 # delete a card by ID
daedalus-cli --board ~/boards/my-board list-create backlog # create a list
daedalus-cli --board ~/boards/my-board list-delete backlog # delete a list by name
daedalus-cli --board ~/boards/my-board export-json out.json # export board as JSON file
daedalus-cli --board ~/boards/my-board export-zip out.zip # export board as zip file
Most output is JSON for easy piping to jq or other tools. The summary command outputs plain text.
Export your Trello board as JSON, then convert:
python3 scripts/trello_to_md.py --input trello_export.json --output ~/boards/my-board
This creates list directories and card markdown files with frontmatter metadata from the Trello export.
daedalus-cli not fully tested. This was a nice to have for automation, but I don't really use it in my workflow yet.sudo pacman -Syu --needed base-devel gtk3 webkit2gtk svt-av1 libavif npm go
go install github.com/wailsapp/wails/v2/cmd/wails@latest
wails doctor # verify all dependencies
wails dev # Development server with hot reload
wails build # Production build
go test ./... # Run Go tests
cd frontend && npx svelte-check # TypeScript/Svelte type checking
DAEDALUS_DEBUG=1 wails dev
Features that I originally thought up, but I need to think about it more.