# Contributing to Mistral Vibe Thank you for your interest in Mistral Vibe! We appreciate your enthusiasm and support. ## Current Status **Mistral Vibe is in active development** — our team is iterating quickly and making lots of changes under the hood. Because of this pace, we may be slower than usual when reviewing PRs and issues. **We especially encourage**: - **Bug reports** – Help us uncover and squash issues - **Feedback & ideas** – Tell us what works, what doesn't, and what could be even better - **Documentation improvements** – Suggest clarity improvements or highlight missing pieces ## How to Provide Feedback ### Bug Reports If you encounter a bug, please open an issue with the following information: 1. **Description**: A clear description of the bug 2. **Steps to Reproduce**: Detailed steps to reproduce the issue 3. **Expected Behavior**: What you expected to happen 4. **Actual Behavior**: What actually happened 5. **Environment**: - Python version - Operating system - Vibe version 6. **Error Messages**: Any error messages or stack traces 7. **Configuration**: Relevant parts of your `config.toml` (redact any sensitive information) ### Feature Requests and Feedback We'd love to hear your ideas! When submitting feedback or feature request discussions: 1. **Avoid duplicates**: Check opened discussions before creating a new one 2. **Clear Description**: Explain what you'd like to see or improve 3. **Use Case**: Describe your use case and why this would be valuable 4. **Alternatives**: If applicable, mention any alternatives you've considered ## Development Setup This section is for developers who want to set up the repository for local development, even though we're not currently accepting contributions. ### Prerequisites - Python 3.12 or higher - [uv](https://github.com/astral-sh/uv) - Modern Python package manager ### Setup 1. Clone the repository: ```bash git clone cd mistral-vibe ``` 2. Install dependencies: ```bash uv sync --all-extras ``` This will install both runtime and development dependencies. 3. (Optional) Install pre-commit hooks: ```bash uv run pre-commit install ``` Pre-commit hooks will automatically run checks before each commit. ### Logging Configuration Logs are written to `~/.vibe/logs/vibe.log` by default. Control logging via environment variables: | Variable | Description | Default | |----------|-------------|---------| | `LOG_LEVEL` | Logging level (`DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`) | `WARNING` | | `LOG_MAX_BYTES` | Max log file size in bytes before rotation | `10485760` (10 MB) | | `DEBUG_MODE` | When `true`, forces `DEBUG` level | - | Example: ```bash LOG_LEVEL=DEBUG uv run vibe ``` You can also view logs in real-time within the application by pressing `Ctrl+\` to open the debug console. ### Running Tests Run all tests: ```bash uv run pytest ``` Run tests with verbose output: ```bash uv run pytest -v ``` Run a specific test file: ```bash uv run pytest tests/test_agent_tool_call.py ``` ### Profiling Vibe ships a lightweight profiler module (`vibe.cli.profiler`) that wraps [pyinstrument](https://github.com/joerick/pyinstrument). It silently no-ops when pyinstrument is not installed or the `VIBE_PROFILE` env var is unset, so instrumentation can stay in the code with zero overhead in normal use. **1. Add profiling calls** around the code you want to measure: ```python from vibe.cli import profiler profiler.start("startup") # ... code to measure ... profiler.stop_and_print() ``` Only one profiler can run at a time. The label passed to `start()` is used to name the output file. Each call to `stop_and_print` writes an HTML report (`