Agent Trajectory visualization and analysis platform
Project description
VibeLens
See what your AI coding agents are actually doing.
Replay. Analyze. Evolve.
Live Demo · Quick Start · Supported Agents · PyPI · Changelog
Let your agent know you better!
Your AI coding agents run hundreds of tool calls, burn thousands of tokens, and you have no idea what happened. VibeLens changes that.
# macOS / Linux. Paste into Terminal.
curl -LsSf https://raw.githubusercontent.com/CHATS-lab/VibeLens/main/install.sh | sh
No Python, no pip, nothing to set up first. The script installs uv (a single binary), fetches VibeLens, and opens it in your browser.
Just want a look? Try the live demo. Nothing to install.
One install. Reads local logs. Works with Claude Code, Codex CLI, Gemini CLI, and OpenClaw out of the box.
Features
| Feature | Description |
|---|---|
| Session visualization | Step-by-step timeline with tool calls, thinking, and sub-agents |
| Dashboard analytics | Usage heatmaps, cost breakdowns, and per-project stats |
| Productivity tips (needs LLM key or Agent) | Detects recurring frustration patterns and suggests concrete fixes |
| Personalization (needs LLM key or Agent) | Retrieve, customize, and evolve reusable skills from your real sessions |
| Session sharing | Share sessions via one-click links |
| Multi-agent support | Claude Code, Codex CLI, Gemini CLI, OpenClaw with auto-detection |
Supported Agents
| Agent | Format | Data Location |
|---|---|---|
| Claude Code | JSONL | ~/.claude/projects/ |
| Codex CLI | JSONL | ~/.codex/sessions/ |
| Gemini CLI | JSON | ~/.gemini/tmp/ |
| OpenClaw | JSONL | ~/.openclaw/agents/ |
VibeLens auto-detects the agent format. Just point it at your session directory and it works.
Screenshots
Session Visualization & Dashboard Analytics
|
Session Visualization |
Dashboard Analytics |
Productivity Tips & Personalization
|
Productivity Tips |
Skill Recommendation |
|
Skill Customization |
Skill Evolution |
Quick Start
One-liner (recommended)
Zero prerequisites: no Python, no pip. The commands below install uv first, then run VibeLens.
# macOS / Linux. Paste into Terminal.
curl -LsSf https://raw.githubusercontent.com/CHATS-lab/VibeLens/main/install.sh | sh
# Windows. Paste into PowerShell.
irm https://raw.githubusercontent.com/CHATS-lab/VibeLens/main/install.ps1 | iex
VibeLens starts on http://localhost:12001 and your browser opens automatically. Change it with --port (for example, vibelens serve --port 8080).
Pick your path
| Your situation | Command |
|---|---|
| Nothing installed (recommended) | one-liner above |
| Already have Python 3.10+ | pip install vibelens && vibelens serve |
| Prefer the npm workflow (Python also required) | npx @chats-lab/vibelens serve |
| Want to hack on VibeLens | developer setup |
What happens on first run
- Your browser opens to http://localhost:12001.
- If you have Claude Code, Codex CLI, Gemini CLI, or OpenClaw sessions, VibeLens auto-detects them from
~/.claude/,~/.codex/,~/.gemini/, or~/.openclaw/. - Otherwise, bundled example sessions (recipe-book) show up so you can look around.
- Productivity Tips and Personalization need a language-model API key. Optional; configure later in Settings.
pip (if you already have Python 3.10+)
pip install vibelens
vibelens serve
Check your version first with python3 --version. Need Python? See docs/INSTALL.md.
uv (run without a permanent install)
uvx vibelens serve
This fetches VibeLens into uv's cache and runs it without a global install. The one-liner above calls this under the hood.
npm (if you already have Python and prefer the npm workflow)
VibeLens is a Python app with an npm wrapper for convenience. The wrapper still requires Python 3.10+ and an installed vibelens package. Use this when you already have both and want npx/npm ergonomics.
npx @chats-lab/vibelens serve
Or install globally: npm install -g @chats-lab/vibelens.
Developer setup
git clone https://github.com/CHATS-lab/VibeLens.git
cd VibeLens
uv sync --extra dev
uv run vibelens serve
Configuration
YAML configuration with environment variable overrides (VIBELENS_*). See config/vibelens.example.yaml for all options.
# Use a config file
vibelens serve --config config/self-use.yaml
# Override host/port
vibelens serve --host 0.0.0.0 --port 8080
Troubleshooting
Top issues. For the full list, see docs/INSTALL.md.
Data Donation
VibeLens supports donating your agent session data to advance research on coding agent behavior. Donated sessions are collected by CHATS-Lab (Conversation, Human-AI Technology, and Safety Lab) at Northeastern University.
To donate, upload your data, select the sessions you want to share, and click the Donate Data button.
Contributing
Contributions are welcome! Please ensure code passes ruff check and pytest before submitting.
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 vibelens-1.0.4.tar.gz.
File metadata
- Download URL: vibelens-1.0.4.tar.gz
- Upload date:
- Size: 22.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17d0a40ce559206b7eb5abe9c0ce8f4ad5e1731cf5f3630301c4c9a133330a5d
|
|
| MD5 |
2bd12cebb8eb30da56c866fe4e650993
|
|
| BLAKE2b-256 |
4a3276eea4a1dc860720f676712924f34ffa94dd9dae36d8d14f6f55b9c4c390
|
Provenance
The following attestation bundles were made for vibelens-1.0.4.tar.gz:
Publisher:
publish.yml on CHATS-lab/VibeLens
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vibelens-1.0.4.tar.gz -
Subject digest:
17d0a40ce559206b7eb5abe9c0ce8f4ad5e1731cf5f3630301c4c9a133330a5d - Sigstore transparency entry: 1343610064
- Sigstore integration time:
-
Permalink:
CHATS-lab/VibeLens@7c9d1d0d0dc643c887bf7cf1cd8d24225df102b8 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/CHATS-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c9d1d0d0dc643c887bf7cf1cd8d24225df102b8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vibelens-1.0.4-py3-none-any.whl.
File metadata
- Download URL: vibelens-1.0.4-py3-none-any.whl
- Upload date:
- Size: 12.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c4e2664fe37acac6f2d1af7bcfae3b8ba27d418e0046fe6715879fe482baf78
|
|
| MD5 |
6d9d14a27a6ea2c6d2934130785957dc
|
|
| BLAKE2b-256 |
6c217d0db8d65d8e6a5b3d0dbc1655b1c7d0c25f1959897b27d12b5c0fca1e92
|
Provenance
The following attestation bundles were made for vibelens-1.0.4-py3-none-any.whl:
Publisher:
publish.yml on CHATS-lab/VibeLens
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vibelens-1.0.4-py3-none-any.whl -
Subject digest:
8c4e2664fe37acac6f2d1af7bcfae3b8ba27d418e0046fe6715879fe482baf78 - Sigstore transparency entry: 1343610077
- Sigstore integration time:
-
Permalink:
CHATS-lab/VibeLens@7c9d1d0d0dc643c887bf7cf1cd8d24225df102b8 -
Branch / Tag:
refs/tags/v1.0.4 - Owner: https://github.com/CHATS-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c9d1d0d0dc643c887bf7cf1cd8d24225df102b8 -
Trigger Event:
push
-
Statement type: