Judo

February 15, 2026 · View on GitHub

Crates.io License

     ██╗██╗   ██╗██████╗  ██████╗ 
     ██║██║   ██║██╔══██╗██╔═══██╗
     ██║██║   ██║██║  ██║██║   ██║
██   ██║██║   ██║██║  ██║██║   ██║
╚█████╔╝╚██████╔╝██████╔╝╚██████╔╝
 ╚════╝  ╚═════╝ ╚═════╝  ╚═════╝ 

A terminal-based todo list application.

Table of Contents

What Judo Looks Like

What It Does

Judo (Just Do It) is a simple TUI for managing todo lists. You can create multiple lists, add items to them, mark items as complete, and delete items or entire lists when you're done.

The interface shows your lists on the left side and the items from the selected list on the right side. You can manage multiple databases, switch between them, and create new ones on the fly. All your data is saved locally on your computer, so your todos persist between sessions.

Why Another Todo App

Q: Who needs yet another todo app?
A: No one, really.

Q: Then why did you create Judo in the first place?
A: I am often having conversations in Slack, taking notes on todo's and sending them to my private channel. Which looks embarassing, actually. So, there you go. Plus, I wanted to understand how to work with TUIs.

Q: Why Rust?
A: No particular reason other than I wanted to familiarise more with it. No one cares about "blazing fast" performance for such a simple app.

Installation

Install Judo using Cargo:

cargo install judo

Then run it with:

judo

Usage

When you start Judo, you'll see the main interface with two panels:

  • Left panel: Your todo lists
  • Right panel: Items from the selected list

Navigate between lists and items using the keyboard. You can switch between different databases, create new ones, and manage your todos across multiple databases. All changes are automatically saved to your local database.

Command line usage

Judo also provides subcommands for usage on the command line or inside of shell scripts. Add help, -h, or --help to any subcommand to show its usage:

$ judo help
Judo - TUI for ToDo lists

Usage: judo [COMMAND]

Commands:
  dbs    Manage databases
  lists  Manage todo lists
  items  Manage todo items
  help   Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

Example:

$ judo lists show
Name          ID  DB          No of items
----          --  --          -----------
home          1   dojo        2
work          2   dojo        3
another list  1   another db  1

Key Bindings

Main Screen

List Navigation

KeyAction
wMove up in lists
sMove down in lists
Move up in items
Move down in items
Deselect current item
Select first item in list

Actions

KeyAction
AAdd new list
aAdd new item to selected list
MModify selected list
mModify selected item
DDelete selected list
dDelete selected item
TSelect top list
BSelect bottom list
tSelect top item
bSelect bottom item
cCopy items to clipboard
CChange/switch database
EnterToggle item completion status
Alt/Option + wMove list up in ordering
Alt/Option + sMove list down in ordering
Alt/Option + ↑Move item up in ordering
Alt/Option + ↓Move item down in ordering
qQuit application

Database Management Screen

KeyAction
Move up in database list
Move down in database list
EnterSwitch to selected database
AAdd new database
SSet selected database as default
EscReturn to main screen

Add List/Item/Database Screens

KeyAction
EnterSave and return to previous screen
EscCancel and return to previous screen
BackspaceDelete last character
DeleteDelete character after cursor
Ctrl + aJump to start of the line
Ctrl + eJump to end of the line
Move cursor left
Move cursor right

Configuration

Judo uses a configuration file to manage multiple databases and colour themes. The configuration is stored in:

  • Ubuntu: ~/.config/judo/judo.toml
  • macOS: ~/Library/Application Support/judo/
  • Windows: %APPDATA%\judo\judo.toml

The configuration file is automatically created on first run with a default database. You can add new databases through the UI or manually edit the configuration file. The default database is called "dojo". Similarly, Judo comes equipped with a default colour theme (background: dark green, foreground: white-ish, highlight: reddish) which you can alter in the config file.

Example Configuration

default = "dojo"

[[dbs]]
name = "dojo"
connection_str = "sqlite:/path/to/data/judo.db"

[[dbs]]
name = "work"
connection_str = "sqlite:/path/to/data/work.db"

[[dbs]]
name = "personal"
connection_str = "sqlite:/path/to/data/personal.db"

Data Storage

Your todo lists and items are stored in local SQLite databases on your computer. This means:

  • Your data persists between application sessions
  • No internet connection required
  • Your todos remain private on your machine
  • You can have multiple databases for different contexts (work, personal, projects, etc.)
  • You can backup individual database files if needed
  • Configuration and databases are stored in standard system directories

The databases and configuration are created automatically when you first run the application. Database files are stored in:

  • Ubuntu: ~/.local/share/judo/
  • macOS: ~/Library/Application Support/judo/
  • Windows: %APPDATA%\judo\