#task-manager #manager #sorting #config #completion #logging

rutd-core

Core functionality for RuTD - A Rust based To-Do list manager

18 releases (4 breaking)

Uses new Rust 2024

new 0.6.1 May 5, 2025
0.6.0 May 5, 2025
0.5.0 May 5, 2025
0.4.1-rc.9 May 5, 2025
0.2.2-rc.1 May 3, 2025

#28 in #task-manager

Download history 672/week @ 2025-04-29

672 downloads per month
Used in 2 crates (via rutd-cli)

MIT license

210KB
4.5K SLoC

RuTD - Rust Todo Manager

MIT License Crates.io Version Crates.io Total Downloads GitHub branch check runs GitHub Stars

RuTD ("Rust To Do" or "Rush To Do") is a high-performance todo list manager built in Rust. It's designed for developers and power users who value efficiency, control, and Git integration in their task management workflow.

Status: RuTD is stable and feature-rich with core and advanced functionality complete. New features are being actively developed.

Demo

Key Features

  • Fast & Lightweight: Written in Rust for excellent performance and minimal resource usage
  • Git-Integrated: Automatically tracks task changes in Git for version control and syncing
  • CLI-First: Powerful command-line interface with intuitive commands and filtering
  • Dynamic Shell Completions: Built-in completion for Bash, Zsh, Fish, and Elvish
  • Advanced Filtering: Powerful query capabilities for finding and organizing tasks
  • Flexible Storage: Task data stored in TOML format, one file per task
  • Developer-Friendly: Designed by developers, for developers
  • Conventional Commits: Automated commit message generation following standards

Installation

Pre-built Binaries

Pre-built binaries are available for Linux, macOS and Windows. You can download the latest release from the Releases page.

Build from source

RuTD provides both command-line and TUI interfaces (coming soon). You can install both via:

cargo install rutd

or you can install only the CLI version (and TUI will work the same way in the future):

cargo install rutd-cli

Quick Start

Here are some quick commands to get you started with RuTD:

# Add a new task
rutd-cli add "Implement new feature" --priority high --scope backend --type feat

# List all tasks
rutd-cli list

# List high priority tasks
rutd-cli list --priority high

# Mark a task as done (replace task-id with the actual ID)
rutd-cli done task-id

# Edit a task
rutd-cli edit task-id

See the Usage for more detailed commands and options.

Shell Completion

RuTD supports shell completion with clap_complete. For better experience, RuTD uses dynamic completion for commands, so it is recommended to source the completion script in your shell configuration file.

Bash

Run the following command in your terminal to add the completion script to your ~/.bashrc:

echo "source <(COMPLETE=bash rutd-cli)" >> ~/.bashrc

Zsh

Run the following command in your terminal to add the completion script to your ~/.zshrc:

echo "source <(COMPLETE=zsh rutd-cli)" >> ~/.zshrc

Fish

Run the following command in your terminal to add the completion script to your ~/.config/fish/config.fish:

echo "source (COMPLETE=fish rutd-cli | psub)" >> ~/.config/fish/config.fish

Elvish

Run the following command in your terminal to add the completion script to your ~/.elvish/rc.elv:

echo "eval (E:COMPLETE=elvish rutd-cli | slurp)" >> ~/.elvish/rc.elv

Xonsh

Install fish shell and follow the steps for fish completion. Then, install xontrib-fish-completer and add the following line to your ~/.xonshrc:

xontrib load fish_completer

PowerShell

Run the following command in PowerShell to add the completion script to your profile:

$env:COMPLETE = "powershell"
echo "rutd-cli | Out-String | Invoke-Expression" >> $PROFILE
Remove-Item Env:\COMPLETE

Current Status & Roadmap

RuTD development follows a phased approach:

  • ✅ Completed Phases: Core task management, Git integration, task state transitions, time tracking, filtering, and shell completions are all implemented and stable.

  • 🔄 Current Phase (In Progress):

    • Dynamic shell completions
    • Windows support
    • Custom sorting
    • Time-based conflict resolution
    • Background synchronization
    • Configuration command (export default, edit, etc.)
    • Terminal User Interface (TUI) development
  • 🔮 Future Enhancements (Planned):

    • Configuration schema validation
    • Advanced TUI editing
    • Reporting and visualization
    • Plugin system
    • Alternative Git backend options

Configuration

Tasks are stored in ~/.rutd directory by default. Configuration options will be expanded in upcoming releases.

Acknowledgments

RuTD draws inspiration from:

  • dstask for its CLI-first approach to task management
  • taskwarrior for advanced task filtering concepts

And the development process heavily relies on LLM tools. Huge shout out to:

License

This project is licensed under the MIT License - see the LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Change Log

See the CHANGELOG for a detailed list of changes and updates.

Dependencies

~13–24MB
~431K SLoC