doing 0.0.1-alpha.2

A command line tool for remembering what you were doing and tracking what you've done
doing-0.0.1-alpha.2 is not a library.
Visit the last successful build: doing-0.1.13

doing

Build Version

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)

curl -fsSL https://raw.githubusercontent.com/aaronmallen/doing/main/script/install.sh | sh

[!TIP] This installs doing to ~/.local/bin. Make sure it's in your PATH:

export PATH="$HOME/.local/bin:$PATH"

Override the install directory or pin a specific version:

DOING_INSTALL_PATH=~/.bin DOING_VERSION=0.1.0 curl -fsSL https://raw.githubusercontent.com/aaronmallen/doing/main/script/install.sh | sh

Cargo

cargo install doing

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.