First off, thank you for taking the time to contribute! Contributions from the community help make BeaudyShell more comprehensive, accurate, and helpful for everyone.
By participating in this project, you agree to abide by our Code of Conduct.
We use GitHub Issues to track bug reports. Before submitting a bug report, please:
- Search existing issues to ensure it hasn't been reported.
- Verify the bug on a clean checkout of the repository.
- Provide:
- BeaudyShell version (
beaudy-shell --version) - Platform details (OS, architecture)
- Steps to reproduce the issue
- Relevant log output (
~/.beaudy.logif applicable)
- BeaudyShell version (
If you have ideas for new built‑ins, UI improvements, or performance enhancements:
- Check existing issues for similar suggestions.
- Open a Feature Request describing the motivation, proposed behavior, and any design considerations.
- Fork the repository and create a branch from
main(e.g.,feat/your-feature). - Keep changes focused; avoid mixing unrelated updates.
- Follow the project's coding style (see below).
- Ensure
cargo fmt,cargo clippy, andcargo testall pass. - Submit a PR with a clear description and reference any related issues.
- Rust stable (via
rustup) - cargo (comes with Rust)
- make (for the provided Makefile targets)
# Clone the repository
git clone https://github.com/BleckWolf25/BeaudyShell.git
cd BeaudyShell
# Build all crates
cargo build --workspace- Compile & run:
make run - Run tests:
make test - Format:
make fmt - Lint:
make lint - Release build:
make release - Package:
make package
- Use
rustfmtdefaults (4‑space indentation). - Prefer
snake_casefor functions/variables,PascalCasefor types. - Keep line length ≤ 100 characters.
- Document public items with
///comments. - Avoid
unwrap/expectin library code; return properResult.
crates/beaudy-entry: REPL and high‑level orchestration.crates/beaudy-router: PTY handling,cdbuilt‑in, command routing.crates/beaudy-builtins: Built‑in commands (bhelp,bls).crates/beaudy-a11y: Accessibility helpers (OSC 133 markers).
Use conventional prefixes:
feat:new featurefix:bug fixdocs:documentation changesrefactor:internal refactortest:test additions/updateschore:build or tooling changes
Example:
feat: add configurable prompt style via ~/.beaudy.toml
make test # runs all unit tests across workspaceAll tests should pass on both Linux and Windows CI runners.
Do not disclose security issues publicly. See our SECURITY.md for reporting instructions.