---
title: "Contributing to Agency Swarm"
description: "Learn how to contribute to Agency Swarm"
icon: "code-fork"
---
We welcome contributions to Agency Swarm! By contributing, you help improve the framework for everyone. Here's how you can get involved:
## Setting Up Your Development Environment
### Prerequisites
- Python 3.12 or higher
- Pip
- Git
### Setup
1. Clone the repository:
```bash
git clone https://github.com/VRSEN/agency-swarm.git
cd agency-swarm
```
2. Create and activate a virtual environment (recommended):
```bash
python -m venv .venv
source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
```
3. Install dependencies including development tools:
```bash
pip install -e ".[dev]"
```
4. Install Pre-Commit Hooks:
```bash
pip install pre-commit
pre-commit install
```
## Running Tests
Testing ensures that your contributions work as intended and do not break existing functionality.
Ensure all test dependencies are installed.
```bash
pip install -e ".[dev]"
```
Run the test suite using Pytest.
```bash
pytest
```
Check the test coverage to ensure comprehensive testing.
```bash
pytest --cov=agency_swarm tests/
```
## Submitting Changes
Create a branch for your work:
```bash
git checkout -b feature/your-feature-name
```
Commit your updates:
```bash
git add .
git commit -m "Add [feature]: Description"
```
Push your branch:
```bash
git push origin feature/your-feature-name
```
Open a pull request on GitHub:
```markdown
- Provide a concise title and description.
- Reference related issues.
```
### Code Style and Linting
This project uses `ruff` for linting and code formatting. Configuration for this tool can be found in `pyproject.toml`.
Before committing your changes, please check and fix linting errors:
```bash
ruff check . --fix
```
It's recommended to install these tools in your development environment. If you followed the setup instructions, they should already be installed via:
```bash
pip install -e ".[dev]"
```