A fast, local-first task manager with a CLI and an optional web UI, backed by SQLite
Project description
Preview
Fast CLI + optional Web UI powered by FastAPI
Why RazTodo?
Lightweight & Fast — Single runtime dependency, SQLite-powered, optimized for speed
Privacy-First — Your data stays local, no cloud, no tracking
Developer-Friendly — Clean Architecture, well-tested, type-safe, modern Python
Simple & Powerful — Intuitive CLI with an optional web UI
Cross-Platform — Works on Linux, macOS, and Windows
Ecosystem
RazTodo is part of the RazBuild ecosystem of open-source developer tools.
- RazTint — Zero-dependency ANSI colors, icons, and terminal formatting utilities powering RazTodo's CLI output.
Installation
# Recommended: isolated environment via pipx
pipx install raztodo
# Or via pip
pip install raztodo
# With optional web UI
pip install "raztodo[web]"
# With shell completion support
pip install "raztodo[completion]"
📖 For virtual environment and source installation, see the Installation Guide
Quick Start
CLI
# Add a task
rt add "Buy groceries" --priority H --due 2026-12-31
# List all tasks
rt list
# Mark as done
rt done 1
# Search
rt search "groceries"
# Update
rt update 1 --title "Buy groceries and milk"
# Delete
rt remove 1
Web UI
# Requires raztodo[web]
rt-web
Opens a single-page interface in your browser for creating, listing, searching, completing, deleting, importing, and exporting tasks.
Shell Completion
# Requires raztodo[completion]
eval "$(rt completion bash)"
Supports bash, zsh, and fish. For permanent setup see the Completion Guide.
Features
- 📝 Task Management — Create, update, complete, and delete tasks
- 🏷️ Tags & Projects — Organize tasks with tags and project names
- 🔍 Search — Filter by keyword with optional scope controls
- 📅 Due Dates & Priority — Deadlines and priority levels (L/M/H)
- 💾 Import/Export — Backup and restore via JSON
- 🌐 Web UI — Optional single-page FastAPI interface via
rt-web - 🎨 Colored Output — ANSI colors and icons via RazTint
- 🗄️ SQLite Storage — No external services required
- 🚀 Cross-Platform — Linux, macOS, and Windows
- ⚡ Fast — Lazy loading and optimized query layer
- ✨ Shell Autocompletion — Tab completion for bash, zsh, and fish
Commands
| Command | Description | Example |
|---|---|---|
add |
Create a new task | rt add "Task" --priority H |
list |
List tasks with filters | rt list --pending --priority H |
update |
Update a task | rt update 1 --title "New title" |
done |
Toggle task done/undone | rt done 1 |
remove |
Delete a task | rt remove 1 |
search |
Search tasks by keyword | rt search "keyword" |
export |
Export tasks to JSON | rt export backup.json |
import |
Import tasks from JSON | rt import backup.json |
migrate |
Run database migrations | rt migrate |
clear |
Delete all tasks | rt clear --confirm |
completion |
Output shell completion script | rt completion bash |
rt --help
rt add --help
📖 See the Usage Guide for full command documentation.
Configuration
| Variable | Description | Default |
|---|---|---|
RAZTODO_DB |
Database filename or path | tasks.db |
LOG_LEVEL |
Logging level | ERROR |
export RAZTODO_DB="/path/to/custom.db"
export LOG_LEVEL="DEBUG"
📖 See the Configuration Guide
Docker
docker build -t raztodo:local .
docker run --rm -it -v "$HOME/raztodo-data:/data" raztodo:local add "My first task"
📖 See the Docker Guide
Documentation
- 📦 Installation Guide
- ⌨️ Completion Guide
- 🐳 Docker Guide
- 📖 Usage Guide
- ⚙️ Configuration Guide
- 🏗️ Architecture
- 🧪 Testing
- 📝 Changelog
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and verify quality:
uv run pytest uv run ruff format --check src/ tests/ uv run ruff check src/ tests/ uv run ty check src/
- Submit a pull request
See the shared RazBuild contributing guide for detailed guidelines.
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file raztodo-0.6.0.tar.gz.
File metadata
- Download URL: raztodo-0.6.0.tar.gz
- Upload date:
- Size: 39.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12f295b4fd9c980ee3e9acc0d78303d72ce18f4d82e56bdb6b522d2f23484742
|
|
| MD5 |
46c923b2b4b05c75ad8f7e9c6b8f1d5e
|
|
| BLAKE2b-256 |
0f422ee203471de65b8550dcbe0820d43fb598c741528e47bd38d390bad6b27b
|
File details
Details for the file raztodo-0.6.0-py3-none-any.whl.
File metadata
- Download URL: raztodo-0.6.0-py3-none-any.whl
- Upload date:
- Size: 64.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10607260b1fcff6045a83093fa8caead63f86a312318d28dd8f07465ec556b5f
|
|
| MD5 |
081459957b12cd158a8adfd6d31f76c0
|
|
| BLAKE2b-256 |
a3c53d99b7cb11ecb7bd101076208eb3d104c89ef1aaf9b3b0291ddceb2f8572
|