A lightweight, cross-platform terminal task manager with tag support and cloud sync.
- Cross-platform: Works on Linux, Windows (CMD/PowerShell), and macOS
- Persistent storage: SQLite database with automatic timestamping
- Cloud-ready: Use any cloud-synced folder for your task database
- Link support: Store and open URLs/file paths directly
- Tag system: Organize tasks with tags and filter by tag
- Interactive mode: Navigate, complete, delete, update, and filter tasks with keyboard
- Simple CLI: Intuitive command-line interface
- Python 3.x
- rich library
- SQLite (included with Python)
Install dependencies:
pip install -r requirements.txtcd /path/to/servante
python setup.pycp servante.py ~/.local/bin/servante
chmod +x ~/.local/bin/servanteAdd to PATH (add to ~/.bashrc or ~/.zshrc):
export PATH="$PATH:$HOME/.local/bin"mkdir %APPDATA%\Servante
copy servante.py %APPDATA%\Servante\servante.pyAdd to PATH (run as Administrator or via System Settings):
setx PATH "%PATH%;%APPDATA%\Servante"Alternatively, create a batch file servante.cmd in a PATH directory:
@python "%APPDATA%\Servante\servante.py" %*Note: To run
servantefrom anywhere and use the shell aliases, the script location must be in your system PATH.
# Add a simple task
servante add "Finish the report"
# Add task with link and tags
servante add "Research API" -l "https://example.com" -t "work dev"
# List pending tasks (interactive mode)
servante list
# List all tasks (including completed)
servante list --all
# Mark task as completed
servante complete 1
# Update task link and/or tags
servante update 1 -l "https://newlink.com" -t "urgent"
# Remove task
servante remove 1
# Open link associated with task
servante open 1
# Search tasks
servante search "report"When running servante list:
| Key | Action |
|---|---|
| ↑/↓ | Navigate tasks |
| d | Delete selected task |
| c | Complete selected task |
| a | Add new task |
| u | Update selected task |
| o / Enter | Open task link |
| s | Search by title |
| f | Filter by tag |
| x | Clear search/filter |
| v | Toggle view (pending/all) |
| q | Quit |
Default location: ~/.servante/tasks.db
# Set custom path via environment
export SERVANTE_DB="$HOME/Nextcloud/tasks.db"
# Or specify per-command
servante --db ~/Nextcloud/tasks.db list| Command | Description |
|---|---|
servante add "title" [-l link] [-t tags] |
Add a new task |
servante update <id> [-l link] [-t tags] |
Update task link/tags |
servante list [-a/--all] |
List tasks (interactive) |
servante complete <id> [id...] |
Mark task(s) complete |
servante remove <id> [id...] |
Delete task(s) |
servante open <id> |
Open task's link |
servante search "term" |
Search tasks |
servante --db PATH <cmd> |
Use custom database |
# Add to ~/.bashrc or ~/.zshrc
alias s='servante'
alias sl='servante list'
alias sa='servante add'# Add to $PROFILE
function s { servante $args }
function sl { servante list $args }
function sa { servante add $args }servante --db ~/work.db list
servante --db ~/personal.db listServante works great in a quake/drop-down terminal (like Yakuake, Guake, or iTerm2's hotkey window). Bind servante list to your quake terminal for instant task access with a single keypress.
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is a learning activity for me to get better with so called AI coding tools and it was created mainly by prompting. Tools and Models used:
- crush: Xiaomi: MiMo-V2-Flash Free (Initial build)
- claude: Sonnet and Opus 4.5 (Refactoring, improved features and finishing touches)
- codex: GPT 5.2 Codex (Code review)
This project is licensed under the MIT License - see the LICENSE file for details.