A fast, minimal dependency command-line todo/task manager backed by SQLite
Project description
RazTodo
A lightweight, cross-platform, privacy-first CLI task manager powered by SQLite.
| 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:
- 📦 Installation Guide — Install via pip, pipx, or from source
- 🐳 Docker Guide — Run RazTodo using Docker with volume persistence
- 📖 Usage Guide — Complete command reference with examples
- ⚙️ Configuration Guide — Environment variables and options
- 🏗️ Architecture — Project structure and design patterns
- 🧪 Testing — Running tests and development setup
- 📝 Changelog — Release notes and version history
Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and ensure quality:
# Run tests pytest # Check code quality ruff check src/ tests/ black --check src/ tests/ ty check src/
- Submit a pull request
For detailed guidelines, see the Contributing Guide.
License
MIT License
Support
- 🐛 Found a bug? Open an issue
- 💡 Have a suggestion? Open an issue
- 📧 Questions? Check the Documentation
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
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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab8a1596a2fec2974b30a8fe1399b88e9a407a19ac9d7807755435a9b9b7c40a
|
|
| MD5 |
cd5e31e6fef978172c33d4125d6b740c
|
|
| BLAKE2b-256 |
212530f06e30cfad3392b768f248b6ea3e5cdd4604f40ca1b65380545590b9b8
|
Provenance
The following attestation bundles were made for raztodo-0.3.0.tar.gz:
Publisher:
publish.yml on razbuild/raztodo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
raztodo-0.3.0.tar.gz -
Subject digest:
ab8a1596a2fec2974b30a8fe1399b88e9a407a19ac9d7807755435a9b9b7c40a - Sigstore transparency entry: 1424552269
- Sigstore integration time:
-
Permalink:
razbuild/raztodo@9b9b232d891bb7523d697601cc048d12327f8045 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/razbuild
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9b9b232d891bb7523d697601cc048d12327f8045 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b66cf38c58935b0ce6ce313fb78a572045f510005623e0feff38845e8586fb6
|
|
| MD5 |
0054f81a4aae82aec017e1b232639b39
|
|
| BLAKE2b-256 |
0ca2a143cf3560070a91a3c8de5bcffd07784b898c16c7c9a82e266c7843bb63
|
Provenance
The following attestation bundles were made for raztodo-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on razbuild/raztodo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
raztodo-0.3.0-py3-none-any.whl -
Subject digest:
5b66cf38c58935b0ce6ce313fb78a572045f510005623e0feff38845e8586fb6 - Sigstore transparency entry: 1424552346
- Sigstore integration time:
-
Permalink:
razbuild/raztodo@9b9b232d891bb7523d697601cc048d12327f8045 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/razbuild
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9b9b232d891bb7523d697601cc048d12327f8045 -
Trigger Event:
release
-
Statement type: