Contributing to kraken-cli
August 6, 2026 ยท View on GitHub
Thank you for your interest in contributing. This document explains how to submit changes and report issues.
How to Contribute
Open PRs and issues here on GitHub. The maintainers review submissions and merge accepted changes into future releases. Response times vary. Not every PR will be accepted, and some may require changes before they can be merged.
Issues and Feature Requests
Use GitHub Issues for bug reports and feature requests.
Bug reports. Include:
- The command you ran (redact any API keys or secrets).
- The output you received (use
-o jsonfor structured output). - What you expected instead.
- Your OS and architecture (
uname -a). - The CLI version (
kraken --version).
Feature requests. Describe what you want the CLI to do and why. Include a usage example if possible. Prefix the title with Feature request: so it is easy to find.
Submitting Changes
- Fork the repository.
- Create a branch from
main. - Make your changes.
- Run
cargo buildandcargo testlocally. - Open a pull request against
main.
PR Guidelines
- Keep PRs focused. One logical change per PR.
- Write clear commit messages. Describe what changed and why.
- Add or update tests for new behavior.
- Do not include unrelated formatting or refactoring changes.
- Enable "Allow edits from maintainers" on your PR so the team can make small adjustments before merging.
What Makes a Good PR
- Bug fixes with a reproducer or test case.
- New commands or flags that extend existing command groups.
- Documentation improvements.
- Test coverage for untested code paths.
What Will Likely Be Declined
- Large architectural changes without prior discussion. Open an issue first.
- Changes that break backward compatibility without strong justification.
- Features that require exchange infrastructure changes outside the CLI.
Code Style
- Follow existing patterns in the codebase.
- Before submitting, run the CI gates locally:
cargo clippy --all-targets -- -D warningscargo +nightly fmt(formatting uses nightly rustfmt for import grouping; seerustfmt.toml)cargo sort(keepsCargo.tomltables alphabetized)cargo test
- No nightly-only language features. The crate itself must build on stable Rust (MSRV in
Cargo.toml); onlyrustfmtruns on nightly.
License
By contributing, you agree that your contributions will be licensed under the MIT License.
Security
If you discover a security vulnerability, do not open a public issue. Follow the responsible disclosure process described in DISCLAIMER.md.