π€ Contributing to TruLens¶
Interested in contributing to TruLens? Here's how to get started!
Step 1: Join the community.
Step 2: Find something to work on below, or browse open issues.
Getting Started¶
New to TruLens? These are great entry points:
Good First Issues¶
Issues tagged good first issue
are curated for new contributors. They're well-scoped and often include guidance
on where to start.
Add Usage Examples¶
Applied TruLens to an interesting use case? Share it as a cookbook example notebookβlike Evaluating Weaviate Query Agents.
Examples live in examples/ and are organized into folders:
| Folder | Purpose |
|---|---|
quickstart/ |
Minimal, focused notebooks for getting started fast. These should be simple and demonstrate core TruLens concepts with minimal dependencies. |
expositional/ |
In-depth tutorials organized by topic (frameworks/, models/, use_cases/, vector_stores/). These can be longer and cover advanced integrations. |
experimental/ |
Work-in-progress examples, internal testing notebooks, or demos of experimental features. Not published to docs. |
Example notebooks should:
- Start with a clear title and description
- Include versioned dependencies:
# !pip install trulens trulens-apps-langchain==1.2.0 - Be self-contained and runnable
- Go in the appropriate folder based on scope and audience
Improve Documentation¶
Found something confusing? If it confused you, it's confusing others too. Documentation improvements are always welcomeβfrom fixing typos to clarifying concepts.
Core Contributions¶
Ready to dive deeper? These areas have significant impact:
Feedback Functions¶
Feedback functions are the backbone of TruLens evaluations. Extend the library with new evaluation methods:
- Add to an existing provider module
- See the custom feedback functions guide
Requirements: Functions should accept text input(s) and return a float (0.0β1.0) or dict[str, float].
Provider Integrations¶
Need a model provider we don't support? Add a new trulens-providers-* package:
- Browse existing providers in
src/providers/ - Each provider is a separate installable package (see Package Architecture)
Or open an issue requesting a providerβwe track demand.
App Integrations¶
Instrument a new LLM framework by adding a trulens-apps-* package:
- See existing integrations: LangChain, LlamaIndex, NeMo Guardrails
- App packages live in
src/apps/
Connector Integrations¶
Connectors define where TruLens stores trace and evaluation logs. Add a new
trulens-connectors-* package to support additional databases:
- See the existing Snowflake connector in
src/connectors/ - Connectors implement the storage interface for traces, records, and feedback results
Bug Fixes¶
Bugs are tracked in GitHub Issues. Feel free to claim an issue by commenting or assigning yourself.
Advanced Contributions¶
For contributors familiar with the codebase:
Dashboard & Frontend¶
The TruLens dashboard (src/dashboard/) uses React + TypeScript. Contributions welcome for:
- UI/UX improvements
- New visualizations
- Performance optimizations
Instrumentation & OTEL¶
TruLens uses OpenTelemetry for tracing. Work in this area includes:
- Span and attribute improvements in
trulens.core.otel - New exporters and integrations
- Performance and reliability enhancements
See Design Principles for architecture context.
Experimental Features¶
Have an idea that pushes TruLens in a new direction? Experimental features use
the experimental_ prefix and can be toggled via TruSession.experimental_enable_feature().
Past community contributions include the SQLAlchemy connector and LiteLLM provider.
Reference¶
Before contributing, familiarize yourself with:
| Guide | Description |
|---|---|
| Development Setup | Environment setup, running tests, local development |
| Standards | Code style, testing, and documentation conventions |
| Design Principles | Architecture goals and API design rationale |
| Package Architecture | Modular package structure since TruLens 1.0 |
| Release Policies | Versioning, deprecation, and experimental features |
| Tech Debt | Known issues and areas needing refactoring |
| Database Schema | OTEL events table, legacy schema, and migrations |
Contributors¶
TruLens Contributors¶
Maintainers¶
The current maintainers of TruLens are:
| Name | Employer | Github Name |
|---|---|---|
| Daniel Huang | Snowflake | sfc-gh-dhuang |
| David Kurokawa | Snowflake | sfc-gh-dkurokawa |
| Garett Tok Ern Liang | Snowflake | sfc-gh-gtokernliang |
| Josh Reini | Snowflake | sfc-gh-jreini |
| Nikhil Vytla | Snowflake | sfc-gh-nvytla |
| Prudhvi Dharmana | Snowflake | sfc-gh-pdharmana |
| Shayak Sen | Snowflake | sfc-gh-shsen |