A visual tracer and debugger for LangChain and LangGraph
Project description
LangLens
Node-Level Observability for LangChain and LangGraph.
LangLens is a lightweight visual tracer and debugger designed specifically for LLM-powered applications. It captures detailed execution logs from your agents and chains, allowing you to inspect every LLM call, tool execution, and state transition with precision.
✨ Features
- 🔍 Interactive Trace Viewer: Explore complex workflows through a rich graphical interface.
- 🧩 Node-Level Granularity: Deep dive into individual chain runs, LLM inputs/outputs, and tool executions.
- 💻 VS Code Extension: Debug your traces directly inside VS Code with a custom editor experience.
- 🚀 CLI Tool: Quickly host a local viewer for any
.langlensfile. - 🔌 Seamless Integration: Add observability to your existing projects with a single line of code.
🏗️ How it Works
LangLens bridges the gap between your LLM execution and visual debugging:
graph TD
subgraph "Capture Phase"
A[LLM App] -- "1. LangChain Callbacks" --> B(LangLens Handler)
B -- "2. Stream Events" --> C[[.langlens file]]
end
subgraph "Visualization Phase"
C -- "3a. CLI Server" --> D[Web Browser]
C -- "3b. Custom Editor" --> E[VS Code IDE]
D --> F{Interactive UI}
E --> F
F -- "4. Inspect Nodes" --> G[Observability & Debugging]
end
- Capture: The
LangLensCallbackHandlerhooks into LangChain's event system to record starts, ends, and errors of every chain, tool, and LLM call. - Storage: Events are serialized and saved into a
.langlensfile (JSONL format), providing a portable trace of the entire execution. - Visualization:
- The CLI Tool launches a local Python server that hosts a Svelte-based frontend.
- The VS Code Extension registers as a custom editor for
.langlensfiles, embedding the same Svelte UI directly into your workspace.
- Debugging: Use the interactive graph to navigate complex agentic workflows and inspect raw inputs/outputs at any level of the tree.
📦 Installation
Python Package
Install LangLens via pip:
pip install langlens
VS Code Extension
Install the LangLens Viewer from the VS Code Marketplace.
🚀 Quick Start
1. Integrate the Callback
Add the LangLensCallbackHandler to your LangChain or LangGraph execution config.
from langlens import LangLensCallbackHandler
from langchain_openai import ChatOpenAI
# Initialize the handler (creates a logs.langlens file)
handler = LangLensCallbackHandler(filename="logs.langlens")
# Attach it to your run
llm = ChatOpenAI()
config = {"callbacks": [handler]}
response = llm.invoke("How does a sunrise look from Mars?", config=config)
2. Visualize the Trace
Option A: Using the CLI
Run the following command to start a local server and open the viewer in your browser:
langlens visualize logs.langlens
Option B: Using VS Code
Simply open any .langlens file. The LangLens Viewer will automatically render the interactive trace.
🛠️ Development
Local Setup
-
Build the Web UI: This bundles the Svelte app and copies assets to the Python and VS Code extension folders.
./build_ui.sh
-
Install Python Package (Editable mode):
pip install -e .
-
VS Code Extension:
- Open the
vscode-extensionfolder in VS Code. - Run
pnpm install. - Press
F5to start the Extension Development Host.
- Open the
Packaging
To build distribution packages manually:
./scripts/package.sh
📄 License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langlens-0.1.2.tar.gz.
File metadata
- Download URL: langlens-0.1.2.tar.gz
- Upload date:
- Size: 280.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
341692b2e38ea8025f3891cb11d1d3dacc47bb5335a1a18703a12370f25fef93
|
|
| MD5 |
7700fdb49981fb4f344539e537e64f3e
|
|
| BLAKE2b-256 |
d546dffb633b52642c5eead2d0848697e7984f106f1a6bfbcbae6f8888b53186
|
File details
Details for the file langlens-0.1.2-py3-none-any.whl.
File metadata
- Download URL: langlens-0.1.2-py3-none-any.whl
- Upload date:
- Size: 285.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8fdee4c1001a3c428451e58afe58144b0e01fdb1673b6f9da7714bc9950f050
|
|
| MD5 |
c2ff5dbf4d1be54115f1ae575961e1dc
|
|
| BLAKE2b-256 |
716503c097f55fa9cd78122992af383e6ec4df8851fd458e2082820df0664fba
|