2022-08-20 04:01:43 +00:00
# Toru
A (currently in development) to do app for the command line.
2022-08-24 10:50:32 +00:00
---
2022-08-22 10:45:01 +00:00
## Current Project Status
2022-08-21 08:02:12 +00:00
This program is at the state where I am regularly using it, and it definately is workable. That said, it does not include all of the core features required to make it an adequate alternative to people who have a to-do system they like, and as such I am regularly making breaking changes. I don't recommend it if you want a stable to do system (yet, although I will update this message when that's no longer true) but if you like some of the ideas here and want to try it out, feedback is welcomed.
2022-08-24 10:50:32 +00:00
---
2022-08-22 10:45:01 +00:00
## Design
2022-08-21 08:02:12 +00:00
2022-08-22 10:45:01 +00:00
The general idea of Toru is to have a to-do app which uses distinct, mutually exclusive vaults of tasks with configuration which is in a human readable and easy to export and import format (to completely separate personal, work, study, etc), however within a vault, to use tags and dependencies as a means of organising notes, rather than mutually exclusive folders.
2022-08-21 08:02:12 +00:00
For example, in a given vault, one may have a big project they are working on. This project, and all of the subtasks are listed together on the top level (and not organised according to projects). In order to conveniently organise and view tasks, use tags and dependencies, and filter searches for tasks to get the desired information. This allows you to categorise tasks even when they do not fall into any one obvious category.
2022-08-24 10:50:32 +00:00
---
## Installation
The easiest way to install is from [crates.io ](https://crates.io/crates/toru ) with cargo:
2022-08-22 10:45:01 +00:00
2022-08-21 08:02:12 +00:00
```
cargo install toru
```
2022-08-22 10:45:01 +00:00
2022-08-24 10:50:32 +00:00
Alternatively you can build from source:
2022-08-21 08:02:12 +00:00
```
2022-08-24 10:50:32 +00:00
git clone https://github.com/aaron-jack-manning/toru.git
cd toru
cargo build --release
```
which will create an executable at `/target/release/toru` .
---
## Getting Started
Simply type `toru` in terminal to display help information for each command:
```
toru 0.1.2
2022-08-22 10:45:01 +00:00
Aaron Manning < contact @ aaronmanning . net >
A command line task manager.
USAGE:
toru < SUBCOMMAND >
OPTIONS:
-H, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
clean Deletes all discarded tasks
complete Mark a task as complete
config For making changes to global configuration
delete Delete a task completely
discard Discard a task without deleting the underlying file
edit Edit a note directly
git Run Git commands at the root of the vault
gitignore Adds the recommended .gitignore file to the vault
list Lists tasks according to the specified ordering and filters
new Create a new task
2022-08-24 10:50:32 +00:00
stats For statistics about the state of your vault
svn Run Subversion commands at the root of the vault
2022-08-22 10:45:01 +00:00
switch Switches to the specified vault
track For tracking time against a note
vault Commands for interacting with vaults
view Displays the specified task in detail
2022-08-21 08:02:12 +00:00
```
2022-08-22 10:45:01 +00:00
You can view any help screen by passing in the `-H` or `--help` flag, and the internal documentation is designed to make it obvious how to use Toru.
To start up you will need a vault to store tasks in, which you can create by running `toru vault new <NAME> <PATH>` .
2022-08-21 08:02:12 +00:00
2022-08-24 10:50:32 +00:00
If you ever want to view all vaults, along with which is the current one, run `toru vault list` .
2022-08-22 10:45:01 +00:00
Then you can run `toru new` to create your first task.
2022-08-21 08:02:12 +00:00
2022-08-24 10:50:32 +00:00
---
## Roadmap
2022-08-21 08:02:12 +00:00
- Options to configure and customise output of `list`
2022-08-20 04:01:43 +00:00
- Options for which field to order by, and how to order (ascending or descending)
- Options for which columns to include
2022-08-21 08:02:12 +00:00
- Filters, to exclude notes of a certain type
2022-08-20 04:01:43 +00:00
- If no values given, read a set of defaults from a `list.toml` file, which can be edited from a similar command
- Dependency tracker
- Store dependencies in a file and correctly update them upon creation and removal of notes
- Error if any circular dependencies are introduced
- Make sure dependencies written to file are only those that could be successfully created
2022-08-21 08:02:12 +00:00
- List dependencies as a tree on note view below info
- Due dates
- Taken as input when creating notes
- Displayed in list view by default (with number of days remaining)
2022-08-23 23:56:23 +00:00
- Completed Date
- Keep track of completed date, and correctly update upon marking as complete or manual edit
- Disallow removing it in a manual edit unless complete is also marked to false
- Add to statistics
- Statistics
- Completed tasks over last x days
- Improve formatting to terminal to make easier to read for `tracked` command
- Automatically added recurring notes system