Crates.io | tascli |
lib.rs | tascli |
version | 0.9.0 |
created_at | 2025-03-23 09:48:54.783949+00 |
updated_at | 2025-09-08 20:01:39.287568+00 |
description | A simple CLI tool for tracking tasks and records from terminal |
homepage | |
repository | https://github.com/Aperocky/tascli |
max_upload_size | |
id | 1602513 |
size | 2,299,490 |
A simple, fast, local CLI tool for tracking tasks and records from unix terminal.
Installation:
cargo install tascli
# or use brew
brew tap Aperocky/tascli
brew install tascli
Tasks and records are stored in ~/.local/share/tascli/tascli.db
(configurable) with rusqlite
.
Create tasks with deadlines:
# Basic tasks
tascli task "Create readme" today
tascli task "Publish package" tomorrow
tascli task "Do taxes" 4/15
# With category
tascli task -c work "Read emails" week
List tasks:
# List active tasks
$ tascli list task
output:
Task List:
----------------------------------------------------------------------------------------------
| Index | Category | Content | Deadline |
----------------------------------------------------------------------------------------------
| 1 | life | Unpack the crib | Today |
----------------------------------------------------------------------------------------------
| 2 | tascli | Add pagination capability for tascli | Sunday |
| | | list actions | |
----------------------------------------------------------------------------------------------
| 3 | tascli | Add readme section on timestring | Sunday |
| | | format | |
----------------------------------------------------------------------------------------------
| 4 | life | Do state taxes | Sunday |
----------------------------------------------------------------------------------------------
| 5 | tascli | Sort list output by time instead of | Sunday |
| | | internal id | |
----------------------------------------------------------------------------------------------
| 6 | tascli | Fix length issue for unicode chars | Sunday |
----------------------------------------------------------------------------------------------
| 7 | life | Two month pictures - follow the lead | 4/23 |
| | | from the previous one month pictures | |
----------------------------------------------------------------------------------------------
Complete tasks:
# Mark index 1 as done
tascli done 1
List all tasks in tascli
category (including completed)
tascli list task -s all -c tascli
Search tasks:
tascli list task --search "rust"
Example output:
Task List:
----------------------------------------------------------------------------------------------
| Index | Category | Content | Deadline |
----------------------------------------------------------------------------------------------
| 1 | tascli | Add a tascli command to delete a row | Today (completed) |
| | | in the task or record table | |
----------------------------------------------------------------------------------------------
| 2 | tascli | Fix addition and modification commands| Today (completed) |
| | | output to have N/A for index | |
----------------------------------------------------------------------------------------------
| 3 | tascli | Insert guardrail against accidental | Today (completed) |
| | | valid syntax like 'task list' that is | |
| | | mistakenly made | |
----------------------------------------------------------------------------------------------
| 4 | tascli | Create a gif for readme | Today (completed) |
----------------------------------------------------------------------------------------------
| 5 | tascli | Add pagination capability for tascli | Sunday |
| | | list actions | |
----------------------------------------------------------------------------------------------
| 6 | tascli | Add readme section on timestring | Sunday |
| | | format | |
----------------------------------------------------------------------------------------------
Create records (for tracking events):
# With current time
tascli record -c feeding "100ML"
# With specific time
tascli record -c feeding -t 11:20AM "100ML"
List records:
# -d 1 stand for only get last 1 day of record
tascli list record -d 1
Search records:
tascli list record --search "secret"
Example output:
Records List:
----------------------------------------------------------------------------------------------
| Index | Category | Content | Created At |
----------------------------------------------------------------------------------------------
| 1 | feeding | 110ML | Today 1:00AM |
----------------------------------------------------------------------------------------------
| 2 | feeding | breastfeeding | Today 4:10AM |
----------------------------------------------------------------------------------------------
| 3 | feeding | 100ML | Today 7:30AM |
----------------------------------------------------------------------------------------------
| 4 | feeding | 110ML | Today 11:20AM |
----------------------------------------------------------------------------------------------
This application accepts flexible time strings in various formats:
today
, tomorrow
, yesterday
, friday
, eom
(end of month), eoy
(end of year)YYYY-MM-DD
, MM/DD/YYYY
, MM/DD
(current year)HH:MM
, 3:00PM
, 3PM
2025-03-24 15:30
, tomorrow 3PM
When only a date is provided, the time defaults to end of day (23:59:59). When only a time is provided, the date defaults to today.
If storing the db file in location other than ~/.local/share/tascli/tascli.db
is preferred, create a config file:
{
"data_dir": "/where/you/want/it"
}
at ~/.config/tascli/config.json
to adjust the location of the stored file. Note, if you already have existing tasks, you may want to move/copy the db file there first.
tascli
uses clap
for argument parsing, use --help
to get help on all levels of this cli:
aperocky@~$ tascli -h
Usage: tascli <COMMAND>
Commands:
task add task with end time
record add record
done Finish tasks
update Update tasks or records wording/deadlines
delete Delete Records or Tasks
list list tasks or records
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
aperocky@~$ tascli task -h
add task with end time
Usage: tascli task [OPTIONS] <CONTENT> [TIMESTR]
Arguments:
<CONTENT> Description of the task
[TIMESTR] Time the task is due, default to EOD
Options:
-c, --category <CATEGORY> Category of the task
-h, --help Print help