doing
A Rust clone of doing by Brett Terpstra — a command line tool for remembering what you were doing and tracking what you've done.
[!WARNING] This project is under active development and is not yet ready for everyday use. Expect breaking changes, missing features, and rough edges.
Installation
Shell (recommended)
|
[!TIP] This installs
doingto~/.local/bin. Make sure it's in yourPATH:
Override the install directory or pin a specific version:
DOING_INSTALL_PATH=/.bin DOING_VERSION=0.1.0 |
Cargo
Differences from the original
This is a ground-up rewrite of Brett Terpstra's doing CLI. While we aim to be fully compatible, there are a few intentional differences worth knowing about:
Configuration format
New installations default to TOML for configuration, though YAML and JSON are also supported. If you're coming from
Brett's doing, your existing .doingrc should still work.
Command names use hyphens
Multi-word commands use hyphens instead of underscores. For example, last-note instead of last_note and
mark-flagged instead of mark_flagged. This follows the convention used by most modern CLI tools.
fzf is not installed automatically
Brett's doing will install fzf for you if it's not already on your system. We don't do that — you'll need to
install it yourself if you'd like to use it. If fzf isn't available, a built-in selection menu will be used instead.
views and sections output format
views and sections print one item per line with additional details (e.g., section name, entry count) instead of
tab-separated names on a single line. The new format is more readable but may break scripts that parse the original
tab-separated output.
tag --rename syntax
tag --rename takes two positional values (--rename OLD NEW) instead of requiring the new tag via the --tag flag
(--tag NEW --rename OLD).
config undo not supported
Brett's doing supports config undo to restore the previous config file. We don't currently support this — if you
need to recover a config, use version control or your editor's undo history.
config get output format
config get prints the raw value directly instead of wrapping it in YAML. Paths with ~/ are expanded to their full
form. This makes the output more predictable for scripting. The -o/--output format flag from Brett's doing is not
currently supported.
Documentation
For more details on architecture, contributing, and project policies, see the docs directory.
License
This project is licensed under the MIT License.