Lens
Instant dashboards from Claude Code. One prompt. Under a minute. Done.
Point Claude at your data -- PostgreSQL, CSV, Excel, Parquet -- and get a production-ready analytics dashboard. No frontend code. No setup. No cleanup needed.
pip install mindcase-lens
claude mcp add lens -- uvx mindcase-lens-mcp
Then tell Claude:
"Build me a dashboard from my database at postgresql://localhost:5432/mydb"
That's it. Claude introspects your schema, generates the config, and serves a full dashboard with KPIs, charts, tables, filters, and theming.
See It in Action
You: "I have a folder of CSV files in ./data/ — build me a dashboard"
Claude: Introspecting ./data/...
Found 3 tables: sales (10K rows), customers (500 rows), products (200 rows)
Generating dashboard config...
Dashboard running at http://localhost:8080
Under a minute. Every time.
What You Get
- KPIs with trend indicators and % change
- Charts -- bar, line, area, pie, donut, horizontal bar (with pagination for dense data)
- Data tables -- sortable, paginated, conditional formatting, CSV export
- Filters -- dropdowns (single/multi with search), date range, text, number range, toggle
- Theming -- light/dark mode, color themes, fonts, corner radius. All live-preview.
- Sidebar navigation -- auto-generated, with logo support
Any Data Source
| Source | Just point to it |
|---|---|
| PostgreSQL | postgresql://user:pass@host:5432/db |
| CSV / TSV | data.csv or ./folder/ |
| Excel | report.xlsx |
| Parquet | data.parquet |
| Mix them | A list of any of the above |
# One file
connection: "sales.csv"
# A whole folder — each file becomes a table
connection: "./data/"
# Multiple sources together
connection:
- "sales.csv"
- "customers.xlsx"
- "postgresql://localhost:5432/mydb"
Why Lens?
| Lens | Grafana | Metabase | Streamlit | |
|---|---|---|---|---|
| Time to dashboard | < 1 minute | 10+ minutes | 10+ minutes | Hours |
| Works with Claude | Native MCP | No | No | No |
| Frontend code | None | None | None | Yes |
| CSV/Excel | Built-in | Plugin | Upload | Code |
| Setup | pip install |
Docker | Docker/JAR | pip + code |
Lens exists because every other dashboarding tool requires you to either build a frontend, learn a UI, or write code. With Lens, you describe what you want to Claude, and it's done.
For Power Users
Everything Claude generates is a YAML config file. You can edit it directly:
app:
title: "Sales Dashboard"
database:
connection: "postgresql://localhost:5432/mydb"
pages:
- id: sales
name: Sales
icon: bar-chart
filters:
- id: region
type: dropdown
label: Region
query: "SELECT DISTINCT region FROM sales"
all: true
rows:
- height: small
items:
- type: kpi
title: Revenue
query: "SELECT SUM(amount) as current_value FROM sales WHERE (:region = 'ALL' OR region = :region)"
prefix: "$"
compact: true
- height: medium
items:
- type: chart
chart_type: bar
title: Revenue by Month
query: "SELECT month, SUM(amount) as revenue FROM sales GROUP BY month"
x: month
y: revenue
y_format: currency
Full YAML reference: llms-full.txt
CLI
lens serve dashboard.yaml # start dashboard
lens serve dashboard.yaml --port 3000 # custom port
lens validate dashboard.yaml # validate config
Python API
from lens import Lens
app = Lens("dashboard.yaml")
app.serve(port=8080)
Privacy & Security
- All database connections are read-only by default
- SQL queries are parameterized -- no injection risk
- Raw SQL never reaches the browser
- No telemetry, no external calls, no data leaves your machine
Also Available
- Lens MCP Server -- the Claude integration (
pip install mindcase-lens-mcp)
License
MIT -- Built by Mindcase
Metadata
Release files for mindcase-lens 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mindcase_lens-0.2.2.tar.gz | 718.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mindcase_lens-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / mindcase_lens-0.2.2.tar.gz
| Download URL | mindcase_lens-0.2.2.tar.gz |
|---|---|
| Size | 718.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1170c2bf17eb1523360d7eae08ccfd44969f0c39a983c7db0aaf9ba3809052aa
|
|
BLAKE2b-256 checksum How to use checksums |
8a59602862b91d2d98afde43570b582cdae1477b2fcc0d6d298b0adf5821f8ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 14, 2026.
Transparency logRelease files / mindcase_lens-0.2.2-py3-none-any.whl
| Download URL | mindcase_lens-0.2.2-py3-none-any.whl |
|---|---|
| Size | 494.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0773827efd93fa3992069ddd135fd3c8e92617a8fdbd0ba327f487be525f66ac
|
|
BLAKE2b-256 checksum How to use checksums |
62e0591c35cc24de7abf50b20b7fcde773aee0a838da16811ffff2a08d21cb05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 14, 2026.
Transparency log