todo.yaml
v1.15.2
Published
A flexible, configurable, and file-based todo tracker.
Downloads
8
Readme
todo.yaml
A flexible, configurable, and file-based todo tracker.
A GUI for your todo.yaml file.
Why?
If you have a todo.yaml, you can already edit it in your favorite editor, but gratuitous GUIs are always nice.
Getting started
CD into the directory that has your todo.yaml file. If there is no todo.yaml in the directory, one will be created for you.
You can configure your todo.yaml when the file is created, and you can configure it later by running todo configure. The configuration lives in the todo.yaml file itself under the configuration key/
Commands
Square brackets indicate an optional arguments.
| Command | Description |
| --- | --- |
| todo [file-name] | Opens the todo GUI. Creates and configures a todo.yaml file in the cwd if one doesn't already exist. Opens the GUI for editing the todo.yaml file at http://0.0.0.0:3000/ or process.env.PORT. If no file name is specified, a choice of yaml files in the directory is given. If there are no yaml files in the directory, the name of the yaml file to be created can be entered. The file name must have a .yaml suffix. |
| todo.yaml | Alias for todo |
| npx todo.yaml | Runs todo without globally installing todo.yaml |
| todo configure [file-name.yaml] | Configure the todo.yaml in the cwd |
| todo c | alias for todo configure|
|todo --version | Show the version |
| todo -V | alias for todo --version` |
GUI
- To search and visually filter all todos across all columns enter a string into the input that begins with
/. - If present, clicking on the title, importance, or due date column headers can be used to resort the items.
- To add a todo, type it into the input and hit enter.
- To switch between yaml files in the same directory use the dropdown. You should configure each yaml file with the CLI before you start interacting with it.
Configuration
The app will listen on process.env.PORT, or, if that's not present, 3000.
To interactively configure your todo.yaml, run todo configure.
The interactive configuration will automatically set the following for you based on your choices:
addTodosToTopOption to add new todos at the top of the list vs the bottomnextActionsOption to star todos and have them be ordered as top prioritysaveCompletedOption to save completed todosshuddownServerButtonOption to add anXbutton in the lower right of the GUI that will close the window and shutdown the serversubtasksOption to track subtaskscolumns: dueDateOption to track due datescolumns: importanceOption to track importance via a numbercolumns: notesOption to add notes to items
To sort by two columns on them one after another. For example to sort by Due Date and Importance, click on Importance first and then Due Date.
Try it
npx todo.yamlInstall it
npm i -g todo.yamlTips and Tricks
Manual Editing
- When editing the todo.yaml by hand, you can add in new todo items as strings. They will automatically be turned into objects the next time the api interacts with them.
- You can edit the configuration file interactively via
todo configureor manually in your todo.yaml
Syncing
- You can use Dropbox or other methods to sync your todo.yamls between desktop and mobile.
- Do you want to share you TODO with the world?
npx localtunnel --port 3000 - This is easy to run as a web app via pm2, use
npx todo.yamlas thescriptand set thecwdfor the directory yourtodo.yamlis in.
Organization
- You can use as many yaml files as you want and you can switch among them with the dropdown on the bottom left. You can only switch among yaml files in the same directory.
Dev Workflow
git clone [email protected]:pajtai/todo.yaml.git
npm run devTo install pre-commit hooks:
npm set-script prepare "husky install" && npm run prepareTODO Suggestions
It's your todo.yaml file, so, obviously, do as you wish, but I've noticed the following:
Track only important todos. The other items take care of themselves.
Some people say it's a good idea to write down ALL your todos, since there is a cost to keeping them in your head. The flip side of this is that writing a todo down gives it a life of its own. If you write down all your todos, the trivial ones will flood the important ones. It's probably better to only track certain todos.
Don't be afraid to delete todos.
I think people have a built-in aversion to loss and missing out. This causes our todos to accumulate more and more items until the important items are flooded by the trivial items. It's a good idea to delete old todos that you're not going to do.
FAQ
- Q: What dependencies are required to run
todo.yaml?- A: You can run
todo.yamlif you have Node installed. I suggest using nvm to install Node.
- A: You can run
- Q: Wouldn't using a DB be better?
- A: Depends on what you mean by "better." Using a file allows easy easy setup with the need to configure a DB. Using a file alsow allow you to easily work with and own your data.
- Q: How do you update the app?
- A:
npm i -g todo.yamlwill install or update the app.
- A:
- Q: I update the app, and I see a blank screen. How can I fix this?
- A: It's a caching issue. So if you hard reload, the problem should go away.
Roadmap
Obviously, it's a todo.yaml!
Screenshots
Below are several screenshots of what the GUI can be configured to look like.
A Simple List

Forward Slash Search

Next Actions

Subtasks

Columns

