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!
Sound familiar?
- Your agent is powerful, but it doesn't know you.
- So many agent skills out there. Which ones actually fit your workflow?
- Your agent keeps repeating the same mistakes.
- Running an agent team but no idea what they're doing.
Why VibeLens:
- Personalization: Turns your real sessions into reusable skills your agent can load.
- Productivity tips: Spots where the agent got stuck or went off track, and tells you how to fix it.
- Session visualization: Replays what actually happened, step by step.
- Multi-agent support: Claude Code, Codex CLI, Gemini CLI, OpenClaw, Hermes with auto-detection
- Dashboard analytics: Show usage heatmaps, cost breakdowns, and per-project stats
Just want a look? Try the live demo. Nothing to install.
Quick Start
Requirement: either uv (preferred) or Python 3.10+.
Don't have uv or Python yet?
Install uv (recommended, single binary, no Python needed):
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# or: brew install uv
# Windows
irm https://astral.sh/uv/install.ps1 | iex
# or: winget install --id=astral-sh.uv -e
Install or upgrade Python 3.10+ (alternative):
# macOS
brew install python@3.12
# Debian / Ubuntu
sudo apt update && sudo apt install -y python3 python3-pip
# Fedora / RHEL
sudo dnf install -y python3 python3-pip
# Arch
sudo pacman -S python python-pip
# Windows
winget install --id Python.Python.3.12 -e
# or: choco install python
Official downloads: python.org · uv docs
Run the one-liner:
# 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
After installation, start VibeLens any time with:
vibelens serve
VibeLens opens on http://localhost:12001 and your browser launches automatically.
Change it with --port (for example, vibelens serve --port 8080). Press Ctrl+C to stop.
vibelens: command not found after a uv install?
This happens when uv's tool bin directory isn't on your shell's PATH. The installer tries to fix this automatically, but the change only takes effect in new terminals. Try one of:
- Open a new terminal and run
vibelens serveagain. - Run the PATH fix manually, then reopen your terminal:
uv tool update-shell
- Add it to PATH yourself (replace the path with what
uv tool dir --binprints):echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc # or ~/.bashrc source ~/.zshrc
- Skip the shim entirely and always use:
uvx vibelens serve
Prefer a manual install?
| Your situation | Command |
|---|---|
Have uv |
uv tool install vibelens && uv tool update-shell (then open a new terminal and run vibelens serve) |
| Have Python 3.10+ | pip install vibelens && vibelens serve |
| Want to run without installing | uvx vibelens serve |
| Prefer the npm workflow (Python also required) | npx @chats-lab/vibelens serve |
| Want to hack on VibeLens | developer setup |
The npm wrapper requires Python 3.10+ and an installed vibelens package. It's a convenience layer, not a replacement. Install globally with npm install -g @chats-lab/vibelens if you prefer.
Full install guide and troubleshooting: docs/INSTALL.md.
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/ |
| Hermes | JSONL | ~/.hermes/sessions/ |
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 |
Developer setup
git clone https://github.com/CHATS-lab/VibeLens.git
cd VibeLens
uv sync --extra dev
uv run vibelens serve
Uninstall
Match the command to how you installed:
# Installed with uv (one-liner picked this path, or you ran `uv tool install`)
uv tool uninstall vibelens
# Installed with pip
pip uninstall vibelens
# Installed globally via npm
npm uninstall -g @chats-lab/vibelens
VibeLens stores logs and cached data under ~/.vibelens/ and logs/ in the working directory. Remove them if you want a clean slate:
rm -rf ~/.vibelens
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.6.tar.gz.
File metadata
- Download URL: vibelens-1.0.6.tar.gz
- Upload date:
- Size: 27.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7ffd0224006a5cb429756833217a84c2e2513522bc5bff9a2477d9bb7e8e5d8
|
|
| MD5 |
3223a5ade6af6f89790bedf28854f7c6
|
|
| BLAKE2b-256 |
2ea587eff2f7ab3cc8889645fb4b63d97fca28d6b8284b611979acebfc44a9f6
|
Provenance
The following attestation bundles were made for vibelens-1.0.6.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.6.tar.gz -
Subject digest:
a7ffd0224006a5cb429756833217a84c2e2513522bc5bff9a2477d9bb7e8e5d8 - Sigstore transparency entry: 1374106093
- Sigstore integration time:
-
Permalink:
CHATS-lab/VibeLens@ea53926c41f110466036600d80577025ee20ba68 -
Branch / Tag:
refs/tags/v1.0.6 - Owner: https://github.com/CHATS-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea53926c41f110466036600d80577025ee20ba68 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vibelens-1.0.6-py3-none-any.whl.
File metadata
- Download URL: vibelens-1.0.6-py3-none-any.whl
- Upload date:
- Size: 15.8 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 |
ef851eed7d5f9c9fbd1e52d78a003802b23821daa66e84b20ed49062c5507f83
|
|
| MD5 |
e96b1be69338f4ca633912576a60dbf5
|
|
| BLAKE2b-256 |
bb0edf0ac0a5ee3d66bbc0ce46d55468b9159ff1c0bbe50cfe9eb20e87f6c29d
|
Provenance
The following attestation bundles were made for vibelens-1.0.6-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.6-py3-none-any.whl -
Subject digest:
ef851eed7d5f9c9fbd1e52d78a003802b23821daa66e84b20ed49062c5507f83 - Sigstore transparency entry: 1374106328
- Sigstore integration time:
-
Permalink:
CHATS-lab/VibeLens@ea53926c41f110466036600d80577025ee20ba68 -
Branch / Tag:
refs/tags/v1.0.6 - Owner: https://github.com/CHATS-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea53926c41f110466036600d80577025ee20ba68 -
Trigger Event:
push
-
Statement type: