{"slug": "show-hn-raztodo-a-local-first-task-manager-for-developers", "title": "Show HN: RazTodo, a local-first task manager for developers", "summary": "RazTodo, a local-first task manager for developers, was released on Hacker News with a native CLI, optional Web UI, and local AI assistance powered by Ollama. The tool stores all data in a single SQLite database, offers commands like add, list, done, search, update, remove, and explain, and supports shell completion for bash, zsh, and fish. It is built with FastAPI and a lightweight static frontend, with no cloud services, accounts, or telemetry.", "body_md": "**A local-first task manager for developers with a native CLI, optional Web UI, and local AI assistance powered by Ollama.**\n\n**CLI**\n\n*Local AI assistance powered by Ollama*\n\n**Web UI**\n\n*CLI + optional Web UI powered by FastAPI*\n\nMost task managers are either web-first, cloud-dependent, or tied to a single interface. RazTodo keeps everything local while letting you manage the same tasks from a native CLI or an optional Web UI.\n\n- 💻 Native CLI built for daily terminal workflows\n- 🌐 Optional Web UI backed by the same local database\n- 🤖 Local AI assistance powered by Ollama\n- 🗄️ Single SQLite database shared across all interfaces\n- 🔒 No cloud services, accounts, or telemetry\n- ⚡ Fast startup with zero background services\n\n```\nCLI ─┐\n     ├── Core Engine ─── SQLite\nWeb ─┘\n```\n\nBoth the CLI and Web UI use the same core engine and SQLite database, so every interface stays synchronized automatically.\n\nThe architecture follows three design principles:\n\n**Separation of concerns** core logic is independent of the user interface.**Local-first storage** all data stays on your machine.**Composable interfaces** use only the interfaces you need.\n\n```\n# Add a task\nrt add \"Prepare weekly groceries\" --priority H --due 2026-12-31\n\n# List all tasks\nrt list\n\n# Mark as done\nrt done 1\n\n# Search\nrt search \"groceries\"\n\n# Update\nrt update 1 --title \"Weekly groceries: milk, vegetables, essentials\"\n\n# Delete\nrt remove 1\n```\n\nStart the server:\n\n```\nrt-web\n```\n\nThen open `http://127.0.0.1:8000`\n\n.\n\nNote\n\nRuns locally only (not exposed to the internet) Single-user design with no authentication layer CLI and Web UI share one SQLite database (real-time sync) Local-first architecture optimized for personal use Built with FastAPI + lightweight static frontend AI-powered task explanations (Summary / Deep Analysis / Action Plan) via Ollama\n\n```\n# Requires raztodo[completion]\neval \"$(rt completion bash)\"\n```\n\nSupports bash, zsh, and fish. For permanent setup see the [Completion Guide](https://github.com/razbuild/raztodo/blob/master/docs/COMPLETION.md).\n\nRazTodo integrates with Ollama to provide optional local AI assistance for your tasks. Every explanation runs locally using your own LLM, keeping your data private.\n\nAvailable explanation modes:\n\n`--short`\n\n— concise summary of the task`--plan`\n\n— actionable step-by-step plan`--deep`\n\n— detailed analysis and recommendations\n\nExample:\n\n```\nrt explain 1 --short\nrt explain 1 --plan\nrt explain 1 --deep\n```\n\nNote\n\nRequires Ollama with a compatible local model. All AI processing is performed locally.\n\n📖 See the [Explain Guide](https://github.com/razbuild/raztodo/blob/master/docs/EXPLAIN.md) for installation, configuration, supported models, and usage examples.\n\n```\n# Recommended (pipx)\npipx install raztodo\n\n# No-install (uv)\nuvx --from raztodo rt\n\n# Standard install\npip install raztodo\n\n# Web UI (optional)\npip install \"raztodo[web]\"\n\n# Shell completion (optional)\npip install \"raztodo[completion]\"\n\n# Everything (web + completion)\npip install \"raztodo[all]\"\n```\n\nFor virtual environment and source installation, see the [Installation Guide](https://github.com/razbuild/raztodo/blob/master/docs/INSTALLATION.md).\n\n| Command | Description | Example |\n|---|---|---|\n`add` |\nCreate a new task | `rt add \"Task\" --priority H` |\n`list` |\nList tasks with filters | `rt list --pending --priority H` |\n`update` |\nUpdate a task | `rt update 1 --title \"New title\"` |\n`done` |\nToggle task done/undone | `rt done 1` |\n`remove` |\nDelete a task | `rt remove 1` |\n`search` |\nSearch tasks by keyword | `rt search \"keyword\"` |\n`export` |\nExport tasks to JSON | `rt export backup.json` |\n`import` |\nImport tasks from JSON | `rt import backup.json` |\n`migrate` |\nRun database migrations | `rt migrate` |\n`clear` |\nDelete all tasks | `rt clear --confirm` |\n`completion` |\nOutput shell completion script | `rt completion bash` |\n`explain` |\nGet an AI explanation of a task | `rt explain 1 --plan` |\n\n```\nrt --help\nrt add --help\n```\n\n📖 See the [Usage Guide](https://github.com/razbuild/raztodo/blob/master/docs/USAGE.md) for full command documentation.\n\n| Variable | Description | Default |\n|---|---|---|\n`RAZTODO_DB` |\nDatabase filename or path | `tasks.db` |\n`LOG_LEVEL` |\nLogging level | `ERROR` |\n\n```\nexport RAZTODO_DB=\"/path/to/custom.db\"\nexport LOG_LEVEL=\"DEBUG\"\n```\n\nTip\n\n📖 See the [Configuration Guide](https://github.com/razbuild/raztodo/blob/master/docs/CONFIGURATION.md)\n\n```\ndocker build -t raztodo:local .\ndocker run --rm -it -v \"$HOME/raztodo-data:/data\" raztodo:local add \"My first task\"\n```\n\nNote\n\nkept CLI-only to minimize image size and dependencies\n\nTip\n\n📖 See the [Docker Guide](https://github.com/razbuild/raztodo/blob/master/docs/DOCKER.md)\n\n**Core:**\n\n**Advanced:**\n\n- ⌨️\n[Completion Guide](https://github.com/razbuild/raztodo/blob/master/docs/COMPLETION.md) - 🐳\n[Docker Guide](https://github.com/razbuild/raztodo/blob/master/docs/DOCKER.md) - 🏗️\n[Architecture](https://github.com/razbuild/raztodo/blob/master/docs/ARCHITECTURE.md) - 🧪\n[Testing](https://github.com/razbuild/raztodo/blob/master/docs/TESTING.md) - 📝\n[Changelog](https://github.com/razbuild/raztodo/blob/master/CHANGELOG.md)\n\nRazTodo is part of the [RazBuild](https://github.com/razbuild) ecosystem of open-source developer tools.\n\n[RazTint](https://github.com/razbuild/raztint)Zero-dependency ANSI colors, icons, and terminal formatting utilities powering RazTodo's CLI output.\n\nWe welcome bug reports, feature requests, and pull requests.\n\n```\ngit clone https://github.com/razbuild/raztodo\ncd raztodo\nuv sync\nuv run pytest\nuv run ruff check src/ tests/\nuv run ruff format src/ tests/\nuv run ty check src/\n```\n\n- Create feature branch\n- Implement changes\n- Ensure tests pass\n- Submit PR\n\nSee the [CONTRIBUTING](https://github.com/razbuild/.github/blob/main/CONTRIBUTING.md) guide for details.", "url": "https://wpnews.pro/news/show-hn-raztodo-a-local-first-task-manager-for-developers", "canonical_source": "https://github.com/razbuild/raztodo", "published_at": "2026-08-04 13:02:30+00:00", "updated_at": "2026-08-04 13:23:18.163926+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "artificial-intelligence"], "entities": ["RazTodo", "Ollama", "FastAPI", "SQLite", "Hacker News"], "alternates": {"html": "https://wpnews.pro/news/show-hn-raztodo-a-local-first-task-manager-for-developers", "markdown": "https://wpnews.pro/news/show-hn-raztodo-a-local-first-task-manager-for-developers.md", "text": "https://wpnews.pro/news/show-hn-raztodo-a-local-first-task-manager-for-developers.txt", "jsonld": "https://wpnews.pro/news/show-hn-raztodo-a-local-first-task-manager-for-developers.jsonld"}}