First off, thanks for taking the time to contribute!
This project and everyone participating in it is governed by our commitment to creating a welcoming environment. Please be respectful and constructive in all interactions.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples (command used, JSON templates, etc.)
- Describe the behavior you observed and what you expected
- Include your environment (OS, Bun version, willhaben-cli version)
Feature suggestions are welcome! Please:
- Use a clear and descriptive title
- Provide a detailed description of the suggested feature
- Explain why this feature would be useful
- List any alternatives you've considered
- Fork the repo and create your branch from
main - If you've added code that should be tested, add tests
- Ensure your code passes type checking (
bun run typecheck) - Make sure your code follows the existing style
- Write a clear PR description
# Clone your fork
git clone https://github.com/YOUR_USERNAME/willhaben-cli.git
cd willhaben-cli
# Install dependencies
bun install
# Run in development mode
bun run dev -- --help
# Type check
bun run typecheck
# Build
bun run buildsrc/
βββ index.ts # CLI entry point
βββ api/ # API client and endpoints
βββ cli/commands/ # Command implementations
βββ store/ # Configuration and caching
βββ types/ # TypeScript interfaces
- Use TypeScript strict mode
- Use meaningful variable and function names
- Keep functions focused and small
- Add types for all API responses
- Use async/await over raw promises
- Handle errors gracefully with user-friendly messages
The willhaben API is not officially documented. If you discover new endpoints:
- Use mitmproxy to capture traffic from the mobile app
- Document the endpoint structure and parameters
- Add appropriate types
- Implement the functionality
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Keep the first line under 72 characters
- Reference issues and pull requests when relevant
Feel free to open an issue with your question or reach out to the maintainers.
Thank you for contributing!