suna / CONTRIBUTING.md
R-Kentaren's picture
Upload folder using huggingface_hub
4efde5d verified

Contributing to Suna

Thank you for your interest in contributing to Suna! This document outlines the contribution process and guidelines.

Contribution Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -am 'feat(your_file): add some feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Open a Pull Request

Development Setup

Quick Setup

The easiest way to get started is using our setup wizard:

python setup.py

This will guide you through configuring all required services and dependencies.

Detailed Setup Instructions

For detailed setup instructions, please refer to:

Required Services

Before contributing, ensure you have access to:

Required:

  • Supabase project (database and auth)
  • LLM provider API key (OpenAI, Anthropic, or OpenRouter)
  • Daytona account (for agent execution)
  • Tavily API key (for search)
  • Firecrawl API key (for web scraping)

Optional:

  • RapidAPI key (for additional tools)
  • Custom MCP server configurations

Code Style Guidelines

  • Follow existing code style and patterns
  • Use descriptive commit messages
  • Keep PRs focused on a single feature or fix
  • Add tests for new functionality
  • Update documentation as needed

Reporting Issues

When reporting issues, please include:

  • Steps to reproduce
  • Expected behavior
  • Actual behavior
  • Environment details (OS, Node/Docker versions, etc.)
  • Relevant logs or screenshots
  • Configuration details (redacted API keys)

Development Tips

  • Use the setup wizard to ensure consistent configuration
  • Check the troubleshooting section in the Self-Hosting Guide
  • Test both Docker and manual setup when making changes
  • Ensure your changes work with the latest setup.py configuration