Contributing
We welcome contributions to OpenZess! Here's how to get involved.
Development Setup
- Fork and clone the repository
- Follow the Installation Guide to set up your environment
- Create a feature branch:
git checkout -b feature/my-feature
Project Structure
openzess/
├── frontend/ # React + Vite UI
│ ├── src/
│ │ ├── pages/ # 21 page components
│ │ ├── components/# Shared UI components
│ │ ├── context/ # Theme context
│ │ └── utils/ # Personas, helpers
│ └── index.html
├── backend/ # FastAPI + Python
│ ├── server.py # 30+ REST endpoints
│ ├── agent.py # Core LLM agent
│ ├── database.py # SQLAlchemy ORM
│ ├── plugins/ # Custom tool plugins
│ └── ...
├── openzess-docs/ # This documentation site
├── start_wsl.sh # WSL boot script
├── .env # Environment variables
└── docker-compose.yml # Docker configurationAdding a New Tool
- Add the function to
agent.py - Add the schema to
NATIVE_TOOL_SCHEMAS - Register in
native_tool_funcs
Or use the Plugin System for a zero-friction approach.
Code Style
- Frontend: TypeScript with React functional components
- Backend: Python 3.10+ with type hints
- Formatting: Standard Prettier for TS, Black for Python
Reporting Issues
Please file issues on GitHub with:
- Steps to reproduce
- Expected vs actual behavior
- Your OS and Node/Python versions