Skip to content

🀝 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:

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:

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

See contributors on GitHub.

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