Thank you for your interest in contributing! This guide explains how to get involved and what to expect when you submit a change.
This repository covers the Stihia AI security proxy for LibreChat and its Docker Compose deployment stack. Contributions that fit this scope are welcome:
- Bug fixes and improvements to the proxy service.
- New provider adapters or guardrail integrations.
- Documentation improvements.
- CI/CD and developer tooling enhancements.
- Docker and deployment configuration.
The Stihia AI security engine itself (the Stihia API and the stihia Python SDK package) and
LibreChat core are maintained separately. For issues with those projects,
please file upstream.
- Issues: We aim to triage new issues within 7 days.
- Pull requests: You can expect an initial review within 14 days. Complex changes may take longer.
- Security reports: Acknowledged within 3 business days (see SECURITY.md).
This project follows a Code of Conduct. By participating you agree to uphold its terms.
Open a Bug Report and fill in the template. Include:
- Steps to reproduce the issue
- Expected vs actual behaviour
- Python version, OS, and Docker version (if applicable)
- Relevant log output
Open a Feature Request and describe the use-case you have in mind.
# Clone the repository
git clone https://github.com/stihia-ai/stihia-librechat.git
cd stihia-librechat
# Install uv (if you don't have it)
# See https://docs.astral.sh/uv/getting-started/installation/
# Create and activate a virtual environment
uv venv
source .venv/bin/activate
# Install dependencies (including dev extras)
uv sync --extra devuv run pytest tests -vuv run ruff check .
uv run ruff format --check .
uv run mypy srcFix auto-fixable lint issues with:
uv run ruff check --fix .
uv run ruff format .- Fork the repository and create a feature branch from
main. - Make your changes in small, focused commits.
- Add or update tests to cover your changes.
- Ensure all checks pass (
pytest,ruff,mypy). - Open a pull request against
mainusing the PR template. - Describe what changed and why in the PR description.
Pull requests are reviewed by at least one maintainer before merging.
- Python ≥ 3.12 — the project targets Python 3.12+.
- Ruff for linting and formatting (line length 120).
- Type hints are expected for public APIs;
mypyruns in CI. - Keep dependencies minimal — add new packages only when necessary.
If you discover a security vulnerability, please follow the process described in SECURITY.md. Do not open a public issue for security reports.
By contributing you agree that your contributions will be licensed under the Apache License 2.0.