Skip to main content
RazTodo

RazTodo

A local-first task manager for developers, with a native CLI and local AI assistance powered by Ollama.


PyPI Version Python Versions CI Codecov (with branch)


Preview

A command-line task manager powered by SQLite, with optional AI-assisted task explanations via Ollama.


Why RazTodo

Most task managers pull you into a browser tab or a cloud account just to jot down a to-do. RazTodo stays entirely in your terminal, backed by a single local SQLite database, with no accounts, no telemetry, and no background services.

Highlights

  • 💻 Native CLI built for daily terminal workflows
  • 🗄️ Single local SQLite database, your data never leaves your machine
  • 🤖 Optional local AI task explanations powered by Ollama
  • 🔒 No cloud services, accounts, or telemetry
  • ⚡ Fast startup with zero background services
  • ⌨️ Shell completion for bash, zsh, and fish
  • 🌐 Optional Web UI via the companion raztodo-web package

Architecture

RazTodo follows a layered architecture, keeping the core task-management logic independent of any interface:

src/raztodo/
├── application/     # use cases / orchestration
├── domain/          # core task model and business rules
├── infrastructure/  # SQLite, settings, logging, LLM (Ollama) integration
└── presentation/
    └── cli/         # the `rt` command-line interface
  • Separation of concerns: core logic is independent of the CLI.
  • Local-first storage: all data stays on your machine in SQLite.

Quick Start

Installation

# Recommended (pipx)
pipx install raztodo

# No-install (uv)
uvx --from raztodo rt

# Standard install
pip install raztodo

# Shell completion (optional)
pip install "raztodo[completion]"

# Web UI (optional, separate package)
pip install raztodo-web

For virtual environment and source installation, see the Installation Guide.

Basic Usage

# Add a task
rt add "Prepare weekly 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 "Weekly groceries: milk, vegetables, essentials"

# Delete
rt remove 1

Shell Completion

# Requires raztodo[completion]
eval "$(rt completion bash)"

Supports bash, zsh, and fish. For permanent setup, see the Completion Guide.


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
explain Explain a task using AI (requires Ollama) rt explain 1 --plan
rt --help
rt add --help

📖 See the Usage Guide for full command documentation.


AI / Ollama Integration

RazTodo can optionally use Ollama to explain a task locally, no data leaves your machine.

rt explain 1 --short   # concise summary
rt explain 1 --plan    # actionable step-by-step plan
rt explain 1 --deep    # detailed analysis and recommendations

📖 See the Explain Guide for installation, configuration, supported models, and usage examples.


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

An optional Docker image runs RazTodo's CLI (rt) directly as the container entrypoint.

docker build \
  --build-arg USER_UID=$(id -u) \
  --build-arg USER_GID=$(id -g) \
  -t raztodo:local .
docker run --rm raztodo:local --help

docker run --rm \
  -v raztodo-data:/data \
  raztodo:local add "Buy milk"

docker run --rm \
  -v raztodo-data:/data \
  raztodo:local list

📖 See the Docker Guide.


Documentation

Core:

Advanced:


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.
  • raztodo-web: Optional Web UI, installs on top of raztodo (pip install raztodo-web).

Contributing

Contributions are welcome! Whether it's bug reports, feature requests, documentation improvements, or code changes, check the contribution guide before getting started.

See the Contributing Guide for development setup, testing, coding standards, and pull request guidelines.


License

License

Made by RazBuild

Metadata

Release files for raztodo 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for raztodo 0.11.0
File Size Uploaded
raztodo-0.11.0.tar.gz 31.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for raztodo 0.11.0
File Interpreter ABI Platform
raztodo-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 87.0 kB

Release files / raztodo-0.11.0.tar.gz

Download URL raztodo-0.11.0.tar.gz
Size 31.8 kB
Tags Source
SHA-256 checksum
How to use checksums
794573e31dab5e97b39ddaba900809b4fb58211dccd9018b2c214d11c29f9848
BLAKE2b-256 checksum
How to use checksums
7ba4f55462408480d577ed5d8ba434f5a5ef0132e1c377ab43680ec380558ba2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","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}

Release files / raztodo-0.11.0-py3-none-any.whl

Download URL raztodo-0.11.0-py3-none-any.whl
Size 55.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8afec9065c81ce4eb5265a8603a4f31a9b96a3fa625376dcb3f803c47f303630
BLAKE2b-256 checksum
How to use checksums
dfb2b4b62030396ef4f90f7f3840d664179496400955a137e1dde081b42de1f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.6 {"installer":{"name":"uv","version":"0.12.6","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}

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 release files

0.10.0

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page