Explain any cli tool error for toddlers
  • Rust 79.4%
  • Python 15.6%
  • Shell 5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Aelthorim 76885b63d4
Some checks failed
CI / Validate DB (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Unit Test (push) Has been cancelled
CI / Integration Test (push) Has been cancelled
Publish DB / validate (push) Successful in 1m15s
Publish DB / publish-db (push) Successful in 7s
ci: fix publish-db workflow
2026-06-04 20:48:33 +00:00
.forgejo ci: fix publish-db workflow 2026-06-04 20:48:33 +00:00
db ci: fix publish-db workflow 2026-06-04 20:48:33 +00:00
scripts test: improve logic 2026-03-27 20:48:12 +00:00
shell fix: fix a bug where zsh hook was making every command hang indefinitly 2026-03-29 13:10:30 +00:00
src let specific db patterns take priority over the generic Python heuristic 2026-06-04 20:17:49 +00:00
tests style: run cargo fmt on tests 2026-03-31 11:32:05 +00:00
.gitignore test: add integration tests for command-line interface 2026-03-31 11:29:34 +00:00
AGENTS.md docs: add guide for coding agents to assist in database entry creation 2026-03-27 21:45:31 +00:00
Cargo.lock Undo last commit and bump version to 3.0.1 2026-06-04 20:24:41 +00:00
Cargo.toml Undo last commit and bump version to 3.0.1 2026-06-04 20:24:41 +00:00
CONTRIBUTING.md docs: add guide for coding agents to assist in database entry creation 2026-03-27 21:45:31 +00:00
LICENSE chore: update license from MIT to Apache 2.0 2026-03-27 21:56:03 +00:00
README.md Fix README.md badges 2026-06-04 15:38:28 +02:00

why

Build Status License Repo-Stars Repo-Forks

Plain English explanations for compiler errors and CLI failures. Stop staring at cryptic error messages. Just type why.

Demo

Screenshot_20260324_215001

What it does

why reads the last error from your terminal and explains it in plain English, what went wrong, why it happened, and how to fix it. No more context-switching to Google or Stack Overflow.

Installation

cargo install --git https://git.kxnode.net/Aelthorim/why

Usage

Run why after a failed command to get an explanation of the error:

why

Look up a specific error code directly:

why ErrorCode

Browse all supported error codes:

why --list

Set up the shell hook for automatic error capture:

why --setup

Shell Hook Setup

The shell hook captures the output of failed commands automatically so why can read them. Run why --setup for automatic setup, or add the hook manually:

Bash

Add to your ~/.bashrc:

eval "$(why --hook bash)"

Zsh

Add to your ~/.zshrc:

eval "$(why --hook zsh)"

Then restart your shell or run source ~/.bashrc (or ~/.zshrc).

Contributing

Contributions are encouraged! Adding a new error explanation is as simple as copying a YAML template and writing a few sentences of plain English.

See CONTRIBUTING.md for the full guide.

License

Apache 2.0