Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/darrikonn/td-cli
A todo command line todo manager ✔️
https://github.com/darrikonn/td-cli
td td-cli todo todolist
Last synced: 6 days ago
JSON representation
A todo command line todo manager ✔️
- Host: GitHub
- URL: https://github.com/darrikonn/td-cli
- Owner: darrikonn
- License: mit
- Created: 2018-06-09T14:04:21.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-06T08:12:52.000Z (2 months ago)
- Last Synced: 2024-10-01T20:17:47.060Z (about 1 month ago)
- Topics: td, td-cli, todo, todolist
- Language: Python
- Homepage: https://pypi.org/project/td-cli/
- Size: 7.61 MB
- Stars: 191
- Watchers: 9
- Forks: 10
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-cli-apps - td-cli - A TODO manager to organize and manage your TODO's across multiple projects. (Productivity / Note Taking and Lists)
- fucking-awesome-cli-apps - td-cli - A TODO manager to organize and manage your TODO's across multiple projects. (Productivity / Note Taking and Lists)
README
td-cli is a command line todo manager,
where you can organize and manage your todos across multiple projects
## Installation
[**td-cli**](https://pypi.org/project/td-cli/) only works for `python 3`, so it needs to be installed with `pip3`
```bash
pip3 install td-cli
```### Windows 10
In order to use the interactive mode on Windows, you'll have to install [**windows-curses**](https://pypi.org/project/windows-curses/)
```bash
pip install windows-curses
```In addition to that, [**Windows Terminal**](https://github.com/microsoft/terminal) is recommended for better UX.
## Getting started
Run `td --help` to see possible commands.
Here are some to get you started:
- Run `td` to list all your todos.
- Run `td add "my new awesome todo"` to add a new todo.
- Run `td complete` to complete your todo. You don't have to specify the whole `id`, a substring will do. It'll fetch the first one that it finds in the same order as when you list your todos.
Note that `global` is a preserved group name where you can list all your global groups. You can always set it as the default with:
```bash
td group global preset
```## API
Check out the [`api`](https://github.com/darrikonn/td-cli/blob/master/API.md).
## Configuring
The location of your todos and your configuration will depend on these environment variables (in this order):
1. **TD_CLI_HOME**: determines where your `todo.db` and `todo.cfg` file will live
2. **XDG_CONFIG_HOME**: a fallback if `$TD_CLI_HOME` is not set
3. **HOME**: a fallback if `$XDG_CONFIG_HOME` is not set. If `$HOME` is used; all files will be transformed to a dotfile, i.e.`~/.todo.db` and `~/.todo.cfg`.### Database name
Your database instance will be located in in the before-mentioned configuration directory.
By default the database will be named `todo`.You can change your database name by specifying `database_name` in your `$TD_CLI_HOME/.todo.cfg` file:
```cfg
[settings]
database_name: something_else
```This results in a database instance at `$TD_CLI_HOME/.something_else.db`
### Format
You can specify your preferred format of your todo's details via the format config keyword:
```cfg
format: md
```This would result in the `.md` (Markdown) file extension when editing a todo. This allows you to use the power of your editor to e.g. syntax highlight the details, and etc.
### Editor
When editing a todo, `td edit`, you can both specify the todo's `name` and the todo's `details` via options (see `td edit --help`). If no option is specified, your todo will be opened in `vi` by default (your `environement EDITOR` will override this) where you can edit the todo's details. You can change the default editor by updating your config:
```cfg
[settings]
editor: nvim
```### Only list uncompleted todos
When listing todos, by default td-cli will list both completed and uncompleted todos. If you want to only list uncompleted todos by default, then you can apply the completed config:
```cfg
[settings]
completed: 0
```### Group
When listing todos, you have the option of specifying what group to list from:
```bash
td -g my-group
# or
td g my-group
```If no group is provided, `td` will list from the current default group. You can globally set the default group with:
```bash
td g my-group preset
```However, there's an option to set the default group per git project (this is not possible from the root config `$TD_CLI_HOME/.todo.cfg`).
In any root of your projects, you can create a `.td.cfg` config file to specify what group to default on (this will override the global default group):```cfg
[settings]
group: my-group
```If you run `td` within your git project, td will default to _my-group_.
I recommend globally ignoring `.td.cfg` in `~/.gitignore`.