Configuration Reference
Config File Location
doing looks for configuration in the following order:
DOING_CONFIGenvironment variable (if set, points to an explicit config file)$XDG_CONFIG_HOME/doing/config.toml(typically~/.config/doing/config.toml)~/.doingrcin your home directory
New installations create a TOML config file at the XDG path. YAML and JSON are also supported -- the format is detected from the file extension. Files without an extension (like .doingrc) are parsed as YAML first, then TOML as a fallback.
Local .doingrc files found in the current directory or its parents are discovered and merged on top of the global config, so you can have project-specific overrides.
Managing Configuration
Use the doing config subcommands to view and modify your configuration:
| Command | Description |
|---|---|
doing config edit | Open the config file in your editor |
doing config get KEY | Print the value of a specific config key |
doing config set KEY VALUE | Set a config key to a new value |
doing config list | List all current configuration values |
Configuration Keys
| Key | Default | Description |
|---|---|---|
doing_file | ~/what_was_i_doing.md | Path to the doing file where entries are stored |
current_section | Currently | Default section name for new entries |
default_tags | [] | Tags automatically added to every new entry |
templates.default | (built-in) | Default template for rendering entry output |
editor_app | (system default) | Preferred editor for config edit and note editing |
backup_dir | (internal) | Directory where undo backups are stored |
autotag.rules | {} | Map of regex patterns to tags for automatic tagging |
views | {} | Named view configurations for reusable display presets |
budgets | {} | Time budgets per tag for tracking time allocation |
Environment Variables
Set DOING_FILE to override the doing file path without changing your config:
sh
export DOING_FILE=~/projects/work/doing.md
doing now "Working on the project"This takes precedence over the doing_file value in your config.
Example Config File
A practical .config/doing/config.toml:
toml
doing_file = "~/what_was_i_doing.md"
current_section = "Currently"
default_tags = ["work"]
editor_app = "nvim"
backup_dir = "~/.local/share/doing/backups"
[templates]
default = "%title (%tags) - %duration"
[autotag.rules]
"meeting|standup" = ["meeting"]
"review|PR" = ["code-review"]
[views.work]
section = "Currently"
count = 10
tags_bool = "OR"
[budgets]
meeting = "2h"
code-review = "1h"A YAML equivalent (.doingrc):
yaml
doing_file: ~/what_was_i_doing.md
current_section: Currently
default_tags:
- work
editor_app: nvim
backup_dir: ~/.local/share/doing/backups
templates:
default: "%title (%tags) - %duration"
autotag:
rules:
"meeting|standup":
- meeting
"review|PR":
- code-review
views:
work:
section: Currently
count: 10
tags_bool: OR
budgets:
meeting: 2h
code-review: 1h