Getting Started
1
Fork and clone
2
Install dependencies
3
Run tests
Development Workflow
Running Tests
Integration Tests
Integration tests require Docker and built images:Linting
Type Checking
Code Style
General Guidelines
- Use type hints for all function signatures
- Write docstrings for public functions and classes
- Keep functions focused and small
- Use meaningful variable names
Logging
Always use the logger, neverprint():
Exception Handling
Add debug logging to exception handlers:Abstract Methods
Use ellipsis (...) not pass in abstract method bodies:
Project Structure
Key areas for contribution:| Area | Location | Description |
|---|---|---|
| Core runtime | src/helios/runner.py | Task execution |
| LLM providers | src/helios/gateway/ | Add new LLM backends |
| Environments | src/helios/environment/ | Container management |
| Tools | src/helios/tools/ | Agent capabilities |
| Web viewer | src/helios/server/ | Real-time UI |
Adding a New LLM Provider
1
Create gateway implementation
Create
src/helios/gateway/newprovider.py:2
Update factory
Add routing in
src/helios/gateway/factory.py:3
Add tool implementations
Create provider-specific tools in
src/helios/tools/newprovider/.4
Add tests
Create tests in
tests/test_newprovider.py.Adding a New Environment Provider
1
Create environment implementation
Create
src/helios/environment/newenv.py:2
Update factory
Add to
src/helios/environment/factory.py:3
Add tests
Create tests in
tests/test_newenv.py.Pull Request Process
1
Create a branch
2
Make changes
Write code, add tests, update documentation.
3
Run all checks
4
Commit with clear message
5
Push and create PR
Testing Your Changes
Before submitting:- Unit tests pass:
uv run pytest tests/ -v - Linting passes:
uv run ruff check src/ - Types check:
uv run pyright src/ - Manual testing: Run a real task with your changes
Testing with Real Tasks
Documentation
Documentation lives indocs/ and uses Mintlify.
Local Preview
Adding Documentation
- Create
.mdxfiles in the appropriate directory - Update
mint.jsonnavigation - Use Mintlify components (Cards, Tabs, Accordions, etc.)
Getting Help
- Open an issue on GitHub
- Check existing issues for similar problems
- Include reproduction steps and logs