Skip to content

tagirov/rusk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rusk

A cross-platform minimal terminal task manager

rusk release version number

0.1.0

Install

Linux/MacOS/Windows

cargo install --git https://github.com/tagirov/rusk

The binary will be installed to: Linux/MacOS -> $HOME/.cargo/bin/rusk Windows -> %USERPROFILE%\.cargo\bin\rusk.exe Make sure that these paths are added to your $PATH environment variable to use rusk command globally.

Arch Linux (AUR)

paru -S rusk

Manually

git clone https://github.com/tagirov/rusk && cd rusk
cargo build --release

Linux/MacOS

sudo install -m 755 ./target/release/rusk /usr/local/bin

Windows

copy .\target\release\rusk.exe "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\"

Usage

# Add a task
rusk add pump up the wheel

# With a date
rusk add Remove all dust from the table --date 2025-7-1

# List all tasks. These commands are all the same
rusk list
rusk l
rusk

# Edit a task
rusk edit [id] a new text --date YYYY-MM-DD

# Change only the date
rusk edit [id] --date YYYY-MM-DD

# Mark or unmark a task as done
rusk mark [id]

# Delete a task
rusk del [id]

# Delete all done tasks
rusk del --all

Bulk task operations

All of edit, mark, and del commands support flexible ID input:

# Space-separated IDs
rusk mark 1 2 5

# Comma-separated IDs  
rusk edit 1,2,5

# Mixed formats
rusk del 1 2,5 8

Aliases

rusk a (add)
rusk l (list)
rusk m (mark)
rusk e (edit)
rusk d (del)
rusk r (restore)

-t (--text)
-d (--date)
-h (--help)
-V (--version)

Examples

# Change the text and date for tasks with IDs 1 and 2
rusk e 1 2 These tasks are hidden now -d 2000-1-1

# Change only the date for tasks with ID 1
rusk e 1 -d 2025-12-31

Configuration

Database Location

By default, rusk stores tasks to: Linux/MacOS -> $HOME/.rusk/tasks.json Windows -> C:\Users\%USERPROFILE%\.rusk\tasks.json

You can customize this location using the RUSK_DB environment variable:

# Use a custom database file
export RUSK_DB="/path/to/your/tasks.json"
rusk add My task

# Use a custom directory (tasks.json will be created inside)
export RUSK_DB="/path/to/your/project/"
rusk add Project task

# Or set it for a single command
RUSK_DB="./my_tasks.json" rusk add Another task

This proves especially useful for:

  • Keeping different task lists for different projects
  • Sharing task files between machines
  • Testing with temporary databases

Data Safety & Backup

Automatic Backups

  • Every save operation creates a .json.backup file
  • Backups are stored in the same directory as your database
  • Atomic writes prevent data corruption during saves

Manual Restore

# Restore from the automatic backup
rusk restore

# This will:
# 1. Validate the backup file
# 2. Create a safety backup of current database (if valid)
# 3. Restore tasks from backup

About

A cross-platform minimal terminal task manager

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages