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.


Quick Start

Installation

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

# Alternative: Install via pip
pip install raztodo

📖 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

Quick activation (bash/zsh):

eval "$(rt completion bash)"

Now try:

rt <Tab>
rt add --<Tab>

📖 For permanet 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
  • 🔍 Full-Text Search — Search across all task fields
  • 📅 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 fo 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 bash,zsh,fish Shell type for completion 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
    pytest
    
    # Check code quality
    ruff check src/ tests/
    black --check src/ tests/
    ty check src/
    
  4. Submit a pull request

For detailed guidelines, see the Contributing Guide.


License

MIT License


Support

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.3.0.tar.gz (167.8 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.3.0-py3-none-any.whl (47.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: raztodo-0.3.0.tar.gz
  • Upload date:
  • Size: 167.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for raztodo-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ab8a1596a2fec2974b30a8fe1399b88e9a407a19ac9d7807755435a9b9b7c40a
MD5 cd5e31e6fef978172c33d4125d6b740c
BLAKE2b-256 212530f06e30cfad3392b768f248b6ea3e5cdd4604f40ca1b65380545590b9b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for raztodo-0.3.0.tar.gz:

Publisher: publish.yml on razbuild/raztodo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: raztodo-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 47.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for raztodo-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b66cf38c58935b0ce6ce313fb78a572045f510005623e0feff38845e8586fb6
MD5 0054f81a4aae82aec017e1b232639b39
BLAKE2b-256 0ca2a143cf3560070a91a3c8de5bcffd07784b898c16c7c9a82e266c7843bb63

See more details on using hashes here.

Provenance

The following attestation bundles were made for raztodo-0.3.0-py3-none-any.whl:

Publisher: publish.yml on razbuild/raztodo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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