What is Airweave?
Airweave is an open-source context retrieval layer for AI agents that connects to various data sources, indexes content, and makes it searchable through a unified API. The most common contribution is adding new connectors to expand the range of data sources Airweave can access.Ways to Contribute
Add a Connector
Build a new source integration to connect Airweave to your favorite tool or API
Fix Bugs
Help improve stability by fixing issues and improving error handling
Improve Documentation
Help others by improving guides, adding examples, or fixing typos
Optimize Performance
Enhance sync speed, reduce memory usage, or improve search relevance
Getting Started
Prerequisites
Before you begin, ensure you have:- Docker & Docker Compose - For running the complete stack
- Python 3.11+ - For backend development
- Node.js 20+ - For frontend development (optional)
- Git - For version control
- Cursor - Recommended IDE with AI assistance (optional but helpful)
Development Setup
Fork and clone the repository
Fork the repository on GitHub, then clone your fork:Add the upstream repository as a remote:
Install pre-commit hooks
Set up pre-commit hooks to ensure code quality:This automatically runs linting and formatting checks before each commit.
Start the development environment
Use the startup script to launch all services:This will:
- Start PostgreSQL, Qdrant, Temporal, and Redis via Docker
- Initialize the database
- Launch the FastAPI backend
- Start the React frontend (optional)
Verify the setup
Check that Airweave is running:
- Backend API: http://localhost:8001
- Frontend: http://localhost:3000
- API docs: http://localhost:8001/docs
For day-to-day development, use VS Code launch configurations instead of
./start.sh. See the “Development Workflow” section below.Development Workflow
Using VS Code Launch Configurations
For efficient development, use the provided VS Code configurations:- Open the project in VS Code
- Go to the “Run and Debug” view (Ctrl+Shift+D or Cmd+Shift+D)
- Select a configuration:
- FastAPI - Run the backend server
- Debug React - Run the frontend with debugging
- FastAPI + ARQ Worker - Full stack development
- Pytest Debug - Run and debug tests
Creating a Feature Branch
Create a new branch for your changes:feature/- New features or connectorsfix/- Bug fixesdocs/- Documentation updatesrefactor/- Code refactoring
Making Changes
- Make your changes following the coding standards (see below)
- Run tests to ensure nothing breaks
- Commit your changes with a descriptive message
Commit Message Format
Follow the conventional commit format:feat- New featurefix- Bug fixdocs- Documentation changesstyle- Code style changes (formatting)refactor- Code refactoringtest- Adding or updating testschore- Maintenance tasks
Coding Standards
Backend (Python)
- Linting & Formatting: We use Ruff for both linting and formatting
- Type Hints: Use type annotations for all function parameters and return values
- Docstrings: Add docstrings to classes and public methods
- Async/Await: Use async functions for I/O operations
Frontend (TypeScript)
- Linting: We use ESLint with TypeScript support
- Formatting: Prettier for consistent code style
- Type Safety: Leverage TypeScript’s type system
Testing
Backend Tests
Run the test suite:Integration Tests with Monke
For end-to-end connector testing, we use Monke - our integration testing framework:Submitting Your Contribution
Open a pull request
- Go to the Airweave repository
- Click “New Pull Request”
- Select your fork and branch
- Fill out the PR template with:
- Clear description of changes
- Link to related issues
- Testing approach
- Screenshots (if UI changes)
Code Review Process
What to expect during review:- Automated Checks - CI/CD runs tests and linting automatically
- Maintainer Review - Core team reviews code quality and design
- Testing Verification - Ensures tests pass and cover new code
- Documentation Check - Verifies docs are updated if needed
Most PRs are reviewed within 2-3 business days. Large changes may take longer.
Development Tips
Using Cursor for Connector Development
Cursor AI can significantly speed up connector development:-
Add API docs to Cursor
- Go to Cursor Settings → Features → Docs → Add New Doc
- Add the API reference URL for your source (e.g., https://docs.github.com/rest)
-
Reference the connector guide
-
Let Cursor generate boilerplate
-
Use local MCP testing (optional)
- Set
LOCAL_CURSOR_DEVELOPMENT=truein.env - Run
python .cursor/mcp/sync_test/server.py - Configure MCP in Cursor Settings
- Set
Common Development Tasks
Add a new Python dependency:Project Structure
Understanding the codebase layout:Getting Help
If you need assistance:Discord Community
Join our Discord for real-time help and discussions
GitHub Issues
Search existing issues or open a new one
GitHub Discussions
Ask questions and share ideas
Documentation
Browse the full documentation
Next Steps
Ready to contribute?Add a Connector
Step-by-step guide to building a new source integration
Explore Architecture
Understand how Airweave works under the hood