This project is open and welcoming. Be respectful, constructive, and collaborative. Harassment, trolling, and personal attacks are not tolerated.
- Fork the repository on GitHub.
- Clone your fork locally.
- Create a feature branch (
git checkout -b feature/my-change). - Make your changes following the project conventions.
- Run
cargo buildandcargo testto verify everything works. - Commit your changes with a clear message.
- Push to your fork.
- Open a Pull Request from your branch to the main repository.
Plugins are standalone executables that extend xfetch's functionality, but they
now live in the dedicated plugins repository:
https://github.com/xfetch-cli/pluginsUse that repository for plugin source code, plugin-specific docs, and the plugin contribution workflow. The runtime contract used by the core is documented in docs/PLUGINS.md, and the full authoring guide lives in plugins/docs/README.md.
The plugin authoring checklist includes:
- Create a dedicated plugin directory in the plugins repository.
- Use the
xfetch-plugin-<name>naming convention. - Run
cargo test --workspacein the plugins repository. - Document configuration, dependencies, and example output in the plugin README.
- Use
cargo buildandcargo testbefore submitting. - Follow existing code style — no trailing whitespace, consistent indentation.
- Write all code, comments, and documentation in English.
- Keep plugins focused on a single responsibility.
- Minimize dependencies to keep build times fast.
- Do not add network calls or file I/O to animation plugins — they should be pure transformations.
Open an issue on GitHub with a clear description of the problem, steps to reproduce, and your environment (OS, terminal emulator, xfetch version).
By contributing, you agree that your contributions will be licensed under the project's LICENSE.