Thanks for your interest in contributing to Fleet! This project is built by and for the multi-agent community.
Open an issue with:
- Fleet version (
fleet --version) - Your OS and bash version (
bash --version) - Steps to reproduce
- Expected vs actual behavior
Open an issue describing:
- What problem you're solving
- Your proposed solution
- Example usage
- Fork the repo
- Create a branch (
git checkout -b feature/my-feature) - Make your changes
- Run tests (
bash tests/test_cli.sh) - Commit with a clear message
- Open a PR
Fleet is modular: each command is a separate file in lib/commands/. To add a new command:
- Create
lib/commands/yourcommand.sh - Define a
cmd_yourcommand()function - Add a case in
bin/fleet's router - Add tests in
tests/test_cli.sh - Document in README.md and SKILL.md
Add examples to examples/your-pattern/:
config.json: working config fileREADME.md: explanation of the pattern, when to use it, architecture diagram
- Bash 4+: no bashisms that break on older systems
- ShellCheck clean: all code must pass
shellcheck -S warning - Python 3.10+: for JSON parsing and complex logic inside heredocs
- No external dependencies: no pip packages, no npm, no jq. Just bash, python3, and curl.
- Colors via
lib/core/output.sh: useout_ok,out_fail,out_warn,out_infohelpers - Config via
lib/core/config.sh: use_json_getfor reading config values
# Run all tests
bash tests/test_cli.sh
# Check syntax
for f in bin/fleet lib/core/*.sh lib/commands/*.sh; do
bash -n "$f"
done
# Validate JSON
for f in examples/*/config.json templates/configs/*.json; do
python3 -c "import json; json.load(open('$f'))"
doneUse conventional commits:
feat: add new commandfix: resolve ShellCheck warningdocs: update configuration referencetest: add integration test for backup
By contributing, you agree that your contributions will be licensed under the MIT License.