mailing-list-cli is a shipped Rust binary, published to crates.io and the 199-biotechnologies/homebrew-tap Homebrew tap. Contributions to commands, tests, and docs are welcome.
- Fork, branch, code.
- Run
cargo testandcargo clippyuntil both are green. - Open a PR. Keep it focused — one feature or one fix per PR.
For anything larger than a bug fix, open an issue first so the shape is agreed before you build. The research dossiers explain why the tool is designed the way it is; the release process lives in docs/release.md.
- We follow the agent-cli-framework patterns. Read the framework README before adding new commands.
- All output respects
--jsonand TTY auto-detection — no command writes plain text in piped mode. - Errors carry an actionable
suggestionfield. A suggestion that doesn't work is a P0 bug. - Exit codes are
0,1,2,3, or4. Never invent new ones. - No interactive prompts, ever. Use flags.
- Update
agent-infowhenever you add or change a command, and add an integration test that asserts the command appears.
- Unit tests live next to the code.
- Integration tests verify the public CLI surface end-to-end against a stub email-cli script (
tests/fixtures/stub-email-cli.sh) — this crate has no Resend code of its own; every API call goes through email-cli. - A spec test ensures every command listed in
agent-infois routable.
Be kind. Disagree on the merits. We're all trying to build a tool that makes a hard job easy.
By contributing you agree your work is licensed under the MIT license.