- Rust 79.4%
- Python 15.6%
- Shell 5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
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
|
||
| .forgejo | ||
| db | ||
| scripts | ||
| shell | ||
| src | ||
| tests | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
why
Plain English explanations for compiler errors and CLI failures.
Stop staring at cryptic error messages. Just type why.
Demo
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.