Thanks for considering contributing! We keep things simple and clean — here’s how you can help:
- Open an issue if you find a bug, improvement idea, or enhancement.
- Fork the repo and submit a pull request (PR).
- Keep changes small and focused.
- Keep
.zshrcreadable and minimal — no unnecessary plugin frameworks. - Follow existing file organization.
- No external dependencies unless absolutely necessary.
- Run the test suite:
./run-tests.sh(42 comprehensive tests) - Test your changes locally by sourcing the
.zshrc - Make sure prompt rendering and terminal colors remain clean
- Ensure all user-facing functionality works as expected
- Tests are compatible with both macOS and Ubuntu CI environments
To contribute cleanly to this project, we recommend setting up a local environment with basic tooling.
Please ensure you have the following installed locally:
shfmt— for shell script formatting
Install it via Homebrew:
brew install shfmtAutomatically format code before commits:
cp git-hooks/pre-commit .git/hooks/
chmod +x .git/hooks/pre-commitTo enable automatic formatting of src/.zshrc before every commit, manually copy the pre-commit hook:
cp git-hooks/pre-commit .git/hooks/
chmod +x .git/hooks/pre-commitThis ensures consistent formatting standards.
To ensure a smooth development experience, we recommend installing the suggested extensions when prompted by VSCode or Cursor:
- Shell Format (
foxundermoon.shell-format) — Formats.zshrccleanly usingshfmt - EditorConfig (
editorconfig.editorconfig) — Ensures consistent formatting rules across different editors - Markdownlint (
davidanson.vscode-markdownlint) — Helps maintain clean and consistent Markdown style
These extensions are optional but highly recommended.
By contributing, you agree your code will be licensed under the MIT License.