Skip to main content

A fast, local-first task manager with a CLI and an optional web UI, backed by SQLite

Project description

RazTodo

License PyPI Version CI Codecov Python Versions PyPI Downloads

A fast, local-first task manager with a CLI and an optional web UI, backed by SQLite.


Preview

CLI Demo

Web UI Demo

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


Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. 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/
    
  4. Submit a pull request

See the shared RazBuild contributing guide for detailed guidelines.


License

MIT License

Made by RazBuild

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

raztodo-0.6.0.tar.gz (39.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

raztodo-0.6.0-py3-none-any.whl (64.1 kB view details)

Uploaded Python 3

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

Hashes for raztodo-0.6.0.tar.gz
Algorithm Hash digest
SHA256 12f295b4fd9c980ee3e9acc0d78303d72ce18f4d82e56bdb6b522d2f23484742
MD5 46c923b2b4b05c75ad8f7e9c6b8f1d5e
BLAKE2b-256 0f422ee203471de65b8550dcbe0820d43fb598c741528e47bd38d390bad6b27b

See more details on using hashes here.

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

Hashes for raztodo-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 10607260b1fcff6045a83093fa8caead63f86a312318d28dd8f07465ec556b5f
MD5 081459957b12cd158a8adfd6d31f76c0
BLAKE2b-256 a3c53d99b7cb11ecb7bd101076208eb3d104c89ef1aaf9b3b0291ddceb2f8572

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page