Skip to main content

A fast, minimal dependency command-line todo/task manager backed by SQLite

Project description

Logo

GitHub License GitHub Actions Workflow Status Codecov PyPI - Version Python Version from PEP 621 TOML


RazTodo

A lightweight, cross-platform, privacy-first CLI task manager powered by SQLite.

Preview
Preview

Why RazTodo?

Lightweight & Fast — Minimal dependencies, SQLite-powered, optimized for speed
Privacy-First — Your data stays local, no cloud services, no tracking
Developer-Friendly — Clean Architecture, well-tested, type-safe, modern Python
Simple & Powerful — Intuitive CLI, works out of the box, rich features
Cross-Platform — Works seamlessly on Linux, macOS, and Windows

Perfect for developers, power users, and anyone who wants a fast, reliable, local-first task manager.


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 experience.

Quick Start

Installation

# Recommended: Install via pipx (isolated environment)
pipx install raztodo

# Alternative: Install via pip
pip install raztodo

# Install the optional web UI
pip install "raztodo[web]"

The base install provides the CLI. Install raztodo[web] if you also want the rt-web command.

📖 For more installation options (virtual environments, from source), see the Installation Guide

Basic Usage

# Create a task with priority and due date
rt add "Buy groceries" --priority H --due 2024-12-31

# List all tasks
rt list

# Mark task as done
rt done 1

# Search for tasks
rt search "groceries"

# Update a task
rt update 1 --title "Buy groceries and milk"

# Delete a task
rt remove 1

Shell Completion

rt supports native <Tab> completion for bash, zsh and fish. For bash/zsh completion support, install the optional extra first:

pip install "raztodo[completion]"

Quick activation (bash/zsh):

eval "$(rt completion bash)"

Now try:

rt <Tab>
rt add --<Tab>

📖 For permanent setup and other shells (zsh, fish), see the Completion Guide


Docker (Optional)

RazTodo can also be run as a Docker container for isolated or portable usage.

# Build the image
docker build -t raztodo:local .

# Add a task
docker run --rm -it -v "$HOME/raztodo-data:/data" raztodo:local add "My first docker task"

📖 For Docker usage and persistence details, see the Docker Guide


Features

  • 📝 Task Management — Create, update, delete, and organize tasks
  • 🏷️ Tags & Projects — Organize tasks with tags and project names
  • 🔍 Search — Search task titles and descriptions with optional filters
  • 📅 Due Dates & Priority — Set deadlines and priority levels (L/M/H)
  • 💾 Import/Export — Backup and restore tasks via JSON
  • 🎨 Colored Output — Beautiful ANSI colors and icons
  • 🗄️ SQLite Storage — No external services required
  • 🚀 Cross-Platform — Works on Linux, macOS, and Windows
  • Fast Performance — Lazy loading and optimized architecture
  • 🏗️ Clean Architecture — Maintainable and testable codebase
  • Shell Autocompletion — Tab completion for bash, zsh, and fish

Commands

Command Description Example
add Create a new task rt add "Task title" --priority H
list List tasks with filters rt list --pending --priority H
update Update a task rt update 1 --title "New title"
done Mark task as done/undone rt done 1
remove Delete a task rt remove 1
search Search tasks rt search "keyword"
export Export to JSON rt export backup.json
import Import from JSON rt import backup.json
migrate Run database migration rt migrate
clear Delete all tasks rt clear --confirm
completion Output shell completion script rt completion bash
# Get help for any command
rt --help
rt add --help

📖 See the Usage Guide for detailed command documentation


Configuration

RazTodo can be configured using environment variables:

Variable Description Default
RAZTODO_DB Database filename or path tasks.db
LOG_LEVEL Logging level ERROR

Example:

# Use a custom database location
export RAZTODO_DB="/path/to/custom.db"

# Enable debug logging
export LOG_LEVEL="DEBUG"

📖 For detailed configuration options, see the Configuration Guide


Documentation

Complete documentation is available in the docs/ directory:


Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Make your changes and ensure quality:
    # Run tests
    uv run pytest
    
    # Check code quality
    uv run ruff format --check src/ tests/
    uv run ruff check src/ tests/
    uv run ty check src/
    
  4. Submit a pull request

For detailed guidelines, see the shared RazBuild contributing guide.


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.5.1.tar.gz (33.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.5.1-py3-none-any.whl (56.7 kB view details)

Uploaded Python 3

File details

Details for the file raztodo-0.5.1.tar.gz.

File metadata

  • Download URL: raztodo-0.5.1.tar.gz
  • Upload date:
  • Size: 33.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.5.1.tar.gz
Algorithm Hash digest
SHA256 3b14fb46c37fe1a643cdd8506fdb57b60a8aa21f4dbb02dfa34de2b59afd114f
MD5 4ad3f04103532d96253f15e86b0315c2
BLAKE2b-256 87214fc9c1d387ad40ba2ba8d66475da92d325938747a50c34ecb41024d6d829

See more details on using hashes here.

File details

Details for the file raztodo-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: raztodo-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 56.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4fb202ab8b9020b0ff3474bb3be86483a645b25e353c822eeaadbc73c5448cb7
MD5 1795790cdcc573951196284817aed4a9
BLAKE2b-256 d4a22ae18b58c8afe497a445d890318a5bbda79df2e8fed0a8fc63f51272069f

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