Thanks for your interest in contributing to Opik.
If you are looking for setup instructions and contribution workflows, start with our docs:
- Contribution overview: https://www.comet.com/docs/opik/contributing/overview
- Local development setup: https://www.comet.com/docs/opik/contributing/guides/local-development
You can also read and edit those docs directly in this repository:
apps/opik-documentation/documentation/fern/docs/contributing/overview.mdxapps/opik-documentation/documentation/fern/docs/contributing/local-development.mdx
Please review the CLA before contributing:
apps/: deployable services and product surfaces (backend, frontend, docs, and supporting backends)sdks/: SDKs (python,typescript,opik_optimizer) and code generationtests_end_to_end/: end-to-end suites and helpersdeployment/: Docker and Helm deployment assets
- Backend:
- Docs: https://www.comet.com/docs/opik/contributing/guides/backend
- Source:
apps/opik-documentation/documentation/fern/docs/contributing/backend.mdx
- Frontend:
- Docs: https://www.comet.com/docs/opik/contributing/guides/frontend
- Source:
apps/opik-documentation/documentation/fern/docs/contributing/frontend.mdx
- Python SDK:
- Docs: https://www.comet.com/docs/opik/contributing/guides/python-sdk
- Source:
apps/opik-documentation/documentation/fern/docs/contributing/python-sdk.mdx
- TypeScript SDK:
- Docs: https://www.comet.com/docs/opik/contributing/guides/typescript-sdk
- Source:
apps/opik-documentation/documentation/fern/docs/contributing/typescript-sdk.mdx
- Documentation:
- Docs: https://www.comet.com/docs/opik/contributing/guides/documentation
- Source:
apps/opik-documentation/documentation/fern/docs/contributing/documentation.mdx
- Agent Optimizer SDK:
- Docs: https://www.comet.com/docs/opik/contributing/guides/agent-optimizer-sdk
- Source:
apps/opik-documentation/documentation/fern/docs/contributing/agent-optimizer-sdk.mdx
- Open or confirm a tracked issue first (
Fixes #...orResolves #...). - Create a branch:
{username}/{ticket}-{summary}where ticket isOPIK-####,issue-####, orNA. - Keep changes scoped to the requested area.
- Run relevant formatters, linters, and tests before opening a PR.
- Open a draft PR with GitHub CLI:
gh pr create --draft. - Fill
.github/pull_request_template.mdcompletely.
apps/opik-backend/src/main/resources/model_prices_and_context_window.jsonapps/opik-frontend/src/data/model_prices_and_context_window.json
These files are regenerated by automation from upstream BerriAI/litellm. Use the updater workflow or approved automation, not direct edits.
- First commit (used as PR title source):
[<TICKET-KEY>] [BE|FE|SDK|DOCS|INFRA|NA] <type>: <summary>
- Follow-up commits:
<type>(<scope>): <summary>where type is one offeat,fix,refactor,test,docs,chore.
- Include screenshots/videos for user-facing UI changes.
- Keep customer names, non-public internal references, and sensitive operational context out of public PR text.
AI assistance is allowed, but human authors remain accountable for correctness, licensing, and security.
Rules:
- Always run relevant tests/linters for touched code.
- Always be explicit about human/users interaction with produced output.
- Always review prior issues, pull requests, and existing code for related solutions.
- Always address system-generated reviews (Baz, Greptile).
- Never submit unreviewed AI output.
- Never include secrets, tokens, private prompts, internal system instructions, or customer-sensitive data in generated/public content.
- Never disclose vulnerabilities, exploit steps, or incident details in public issues/PRs (use private maintainer/security channels).
- Include the PR template AI watermark/disclosure block when AI is used.
- Cursor compatibility:
make cursor(.cursor -> .agents) - Codex compatibility:
make codex(.codex -> .agents, generatesAGENTS.override.mdfrom.agents/rules/*.mdc) - Claude sync:
make claude(syncs.agentsto.claude) - Git hooks:
make hooks