Skip to content

razbuild/raztodo

Logo

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


About

RazTodo is a lightweight, cross-platform CLI task manager powered by SQLite, offering fast, privacy-first todo management with minimal external dependencies.

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

📖 For complete command reference, see the Usage 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

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
# 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/
    mypy src/
  4. Submit a pull request

For detailed guidelines, see the Contributing Guide.


License

MIT License


Support

About

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

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages