tarea

Crates.iotarea
lib.rstarea
version0.1.0
created_at2025-07-23 15:10:29.716938+00
updated_at2025-07-23 15:10:29.716938+00
descriptionsmall task manager
homepagehttps://github.com/marcelarie/tarea
repositoryhttps://github.com/marcelarie/tarea
max_upload_size
id1764894
size56,583
Marcel Arie (marcelarie)

documentation

README

tarea

tarea is a very small command‑line task manager written in Rust.
Tasks are stored in a local SQLite database (~/.tarea/tasks.db) with UUID primary keys.

Install

Install directly from crates.io:

cargo install tarea

Or, from the project directory:

cargo install --path .

Build

git clone https://github.com/marcelarie/tarea.git
cd tarea
cargo build --release

Usage

# list tasks
tarea

# add a task
tarea Finish report -d "due tomorrow"

# remove the database (confirmation required)
tarea --delete-database

Display

  • Each task shows an 8‑character UUID prefix, status ([p] pending, [d] done, [s] standby), the (optionally truncated) name, and the creation timestamp.
  • Long names are cut after 70 characters and suffixed with ....

Bugs

  • When running --show it uses the id of the --all list not the pending default list
  • Improve is_due_soon, should work differently

Todo

  • Add a new task
    • With uuid
    • With description
    • With creation date
  • Print tasks
    • Print a list of all the tasks
      • Print only pending if no arg is passed
    • Print specific status
    • Print one task
  • Change task status
    • to done
    • to pending
    • to standby
  • Add due date
    • Show due date in red color when its close
  • Show small graph of task

Nice to haves

  • Encrypt task db
  • Backup db remotly
  • Sync DB with remote machine

Core features

  • Edit a task
    • Change name or description
    • Update due date
  • Delete / archive a task
    • Soft‑delete to an archive table
    • Permanently purge archived tasks
  • Tagging / categories
    • Assign multiple tags per task
    • Filter or list by tag
  • Search / fuzzy‑search tasks
  • Sort options
    • By creation date
    • By due date
    • By name
  • Recurring tasks
    • Daily / weekly / monthly cadence
  • Import / export
    • JSON
    • CSV / TSV
    • Markdown checklist
  • Bulk operations
    • Mark several tasks done at once
    • Delete multiple tasks

UX / CLI niceties

  • Shell completions for Bash/Zsh/Fish
  • Config file (~/.tarea.toml) for defaults (colors, DB path, truncation length)
  • Natural‑language due‑date parsing (“in 3 days”, “next Friday”)
  • Auto‑paginate long task lists (less‑style)
  • Interactive mode / simple TUI (via crossterm or ratatui)
  • Clipboard copy of task ID / content

Automation & notifications

  • Local notifications when a task is due
  • Optional e‑mail or webhook reminders
  • Cron helper to print today’s pending tasks at login

Data & statistics

  • Weekly productivity summary (tasks completed per day)
  • Burn‑down chart for tasks with due dates
  • “Streak” counter for consecutive days with at least one completion

Security & reliability

  • Multi‑profile support (separate DB per project)
  • End‑to‑end encrypted remote sync (e.g. with age + rclone)
  • Automatic versioned backups with retention policy
  • Integrity check / vacuum command
Commit count: 0

cargo fmt