toru/README.md

97 lines
3.8 KiB
Markdown
Raw Normal View History

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:
```
2022-08-24 23:15:43 +00:00
toru 0.1.4
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
2022-08-22 10:45:01 +00:00
-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
2022-08-24 23:15:43 +00:00
edit Edit a task directly
2022-08-22 10:45:01 +00:00
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
2022-08-24 23:15:43 +00:00
track For tracking time against a task
2022-08-22 10:45:01 +00:00
vault Commands for interacting with vaults
view Displays the specified task in detail
2022-08-21 08:02:12 +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.
2022-08-22 10:45:01 +00:00
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
2022-08-25 00:11:06 +00:00
- Options to configure and customise output of `list`
- Simple query language to select:
- which columns to include
- which column to order by (and if ascending or descending)
- and to filter by
- tags within a specified collection
- only include tasks with incomplete dependencies, and similarly only tasks which are not dependents
- due date, completion date, etc greater than or less than specific value
- If no values given, use a default query stored in `state.toml`