Contributing
Bestie is early. The best contributions are focused, tested, and easy to review.
Before you start
Section titled “Before you start”- Read the README for current status and scope.
- Read the security and privacy rules before touching secrets, logs, memory, Telegram, MCP, or tool execution.
- Check existing issues and discussions to avoid duplicate work.
- For larger changes, open an issue or discussion before writing a big PR.
Local setup
Section titled “Local setup”npm cinpm run buildnpm testRun the CLI locally:
bestie --helpbestie onboardbestie doctorbestie chatPull request expectations
Section titled “Pull request expectations”A good PR should:
- Solve one clear problem.
- Include tests for behavior changes.
- Update docs when user-facing behavior or config changes.
- Keep secrets out of code, logs, screenshots, fixtures, and test output.
- Avoid unrelated formatting churn.
- Explain validation in the PR description.
Architecture guidelines
Section titled “Architecture guidelines”- Keep CLI command files thin; put reusable behavior in runtime services.
- Keep character behavior data-driven through editable character and prompt files.
- Keep OpenAI-compatible providers configurable by
baseUrl,model, andapiKeyEnv. - Treat external content as untrusted.
- Do not enable broad write, destructive, or public actions without explicit permission checks and tests.
Testing
Section titled “Testing”Run focused tests while developing, then run:
npm run buildnpm testIf relevant, also run:
npm run smokenpm run eval:characterDo not run real Telegram smoke in normal CI or PR validation. It requires explicit local setup and fresh owner messages.
Commit style
Section titled “Commit style”Use clear, imperative commit subjects:
Add Telegram attachment size validationFix provider timeout error mappingDocument local memory export flowMaintainers may ask for smaller PRs, tests, docs updates, or safety notes. That is normal for a project handling private data and provider credentials.