Skip to content

About

๐Ÿ“ธ Screenshot any dataโ†’ instant AI analysis + auto-generated charts. ๐Ÿ–ฅ๏ธ Local-first, open-source app, hotkey capture. ๐Ÿ”‘ BYOK (Anthropic/OpenAI/Gemini) or ๐Ÿค– Local CLI (Claude Code ยท Antigravity).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

ย 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Screenchart

Press a hotkey from anywhere (or click Capture in the app) โ†’ screenshot any data โ†’ get a plain-English answer + the right visualization, from 28 chart & map types.

Local-first ยท model-agnostic ยท open source. The model reads your screen; the app does the math.

Screenchart โ€” screenshot any chart, table, or data and get instant AI analysis

Website ยท Download ยท Discussions ยท Issues

release license platform status


What is Screenchart

๐Ÿ“ธ Screenshot anything on screen โ€” a chart, a table, a dashboard, a PDF, a spreadsheet. ๐Ÿง  A vision model reads it and gives AI analysis in plain English. ๐Ÿ“Š The app draws the right chart (Chart.js) or map (Leaflet) from the data it extracted, choosing from 28 supported visualizations. ๐Ÿ”’ Local-first & private โ€” runs on a local CLI you already have or your own API key; no accounts, no telemetry. ๐Ÿ’พ Export to PDF ยท Word ยท PPT ยท PNG, and keep a capture history on disk.

Core principle: the model extracts and classifies the numbers; the app does the arithmetic โ€” deterministic and auditable. The app computes every metric itself, so the headline is arithmetic on the extracted values, not a figure the model wrote freehand.

Drag a box around on-screen data, and Screenchart turns it into an analysis + a visualization, without leaving what you're doing. Each capture is a conversation โ€” ask follow-ups and it keeps the thread.


See it in action

screenchart-demo.mp4

Product tour

Capture โ†’ analyze โ†’ visualize

Capture flow
Capture โ€” press the hotkey (โŒ˜โŒฅS on macOS, Ctrl+Alt+S on Windows โ€” configurable), the display under your cursor dims with a frozen snapshot, and you drag a box around the data.
Chart result
Analysis + chart โ€” a number-accurate headline, plain-English analysis, and the recommended chart. Switch chart types, tweak values/periods, and drill in.
Follow-up conversation
Follow-ups โ€” each capture is a thread. Ask "what's the trend?" or "flag the risks" and it answers against the same screenshot.
Export
Export โ€” send the result (charts and maps included) to PDF, Word, PowerPoint, or PNG.

Visualizations

Screenchart picks the visual that fits the data it extracted โ€” and you can switch to any of 28 chart & map types from the โ‹ฏ menu (Recommended / Selected / + More). Grouped data supports Values/Periods toggles and small multiples where they fit.

Group Types
Bar & column Column ยท Clustered column ยท Stacked column ยท 100% stacked column ยท Bar ยท Clustered bar ยท Stacked bar ยท 100% stacked bar
Line & area Line ยท Line with markers ยท Area ยท Stacked area ยท Line + column (combo)
Part-to-whole Pie ยท Donut ยท Treemap ยท Funnel
Distribution & relationship Scatter ยท Bubble ยท Histogram ยท Box plot ยท Heatmap
Flow & finance Sankey ยท Candlestick
Single value / tabular Gauge ยท Table
Maps Region map (choropleth) ยท Bubble map

Charts render with Chart.js 4 (+ treemap, sankey, matrix, financial, and boxplot plugins); maps with Leaflet (OpenStreetMap tiles).


Two ways to run it

Screenchart never ships or installs a model. It runs a local CLI you already have, or calls a cloud API with your own key. Pick per your privacy/latency needs in Settings โ†’ Execution.

Execution settings
Execution settings โ€” choose a detected Local CLI, or bring your own key for a cloud provider.

๐Ÿ–ฅ๏ธ Local CLI (default) โ€” detect & run only, never install

Screenchart detects agent CLIs already on your PATH and runs them in read-only mode. It never runs npm/brew/curl install โ€” the "Install" button only opens the vendor's page.

Local CLI Vendor
Claude Code Anthropic
Antigravity Google
Codex CLI OpenAI
Grok CLI xAI (community)
OpenCode opencode.ai (BYOK)
Cursor Agent Cursor (Anysphere)

๐Ÿ”‘ BYOK โ€” bring your own key

Stored per-provider on your machine โ€” plaintext in userData/config.json (gitignored; see PRIVACY.md), never logged and never sent to a renderer.

Family Endpoints
Anthropic Claude API
OpenAI OpenAI API
Gemini Google Gemini API
Gateway Any OpenAI-compatible endpoint โ€” OpenRouter, Ollama, LM Studio, or a custom URL

Supported agents and providers


Why Screenchart

Your data is trapped in a picture โ€” a chart in a slide, a table in a PDF, a dashboard you can't export. The usual options are all bad: squint and eyeball it, re-type it into a spreadsheet, or upload the screenshot to a cloud chatbot that may invent the numbers.

Screenchart is the local-first, number-honest alternative:

  • ๐Ÿ”’ Local & private. Runs on a local CLI or your own key. No accounts, no telemetry, no surprise network calls. The only declared external fetch is OpenStreetMap tiles โ€” and only when a map is shown.
  • ๐Ÿงฎ Number-accurate by design. The model extracts raw values and classifies the data; the app computes every metric and writes the headline. The model is forbidden from writing computed numbers, so the figure you read is the figure that was there.
  • ๐Ÿค– Model-agnostic. The claude / codex / cursor-agent / โ€ฆ already on your PATH are the engine โ€” or any cloud API via BYOK. Swap freely.
  • ๐Ÿ“Š Charts and maps, not just text. Chart.js (bars, lines, treemap, sankey, matrix, boxplot, financial) and Leaflet maps, picked to fit the data.
  • ๐Ÿ’ฌ Conversational. Every capture is a thread โ€” follow-ups replay the full context.
  • ๐Ÿ“ฆ Yours to keep. History persists on disk; export to PDF / Word / PPT / PNG.

Comparison

Eyeball + calculator Re-type into a spreadsheet Cloud AI chatbot Screenchart
No manual re-typing โŒ โŒ โœ… โœ…
Numbers computed by the app (not guessed) you do it you do it โŒ (model may invent) โœ…
Charts + maps generated โŒ manual sometimes โœ…
Runs locally / private โœ… โœ… โŒ โœ… (local CLI)
Bring your own model/key โ€” โ€” rarely โœ…
Export PDF / Word / PPT / PNG โŒ manual โŒ โœ…
Open source โ€” โ€” โŒ โœ… MIT

Quick start

Why does my OS warn about this app? Screenchart is free and open source and isn't signed with a paid code-signing certificate, so macOS and Windows show a one-time security prompt on first launch. This reflects the missing certificate, not the app's safety. The full source and build pipeline are public, and checksums are published with every release. See the first-launch steps below, or skip the prompt entirely by running from source.

๐Ÿง‘โ€๐Ÿ’ป Run from source

Recommended if you have git: no installer and no first-launch security prompt.

git clone https://github.com/AshishB2000/screenchart.git
cd screenchart
npm install          # postinstall fetches map GeoJSON
npm start

Requirements: Node.js 20+ and npm. npm start compiles the TypeScript (npm run build:ts, run automatically) and launches Electron โ€” no bundler. Packaging installers uses electron-builder (npm run dist:mac / npm run dist:win).

๐Ÿ–ฅ๏ธ Download the app

  • macOS (Apple Silicon + Intel, universal) โ†’ Download
  • Windows (x64) โ†’ Download
  • Linux โ€” planned.
macOS โ€” first launch (unsigned build)

Screenchart is a free, open-source build not signed with a paid Apple certificate, so macOS blocks it on first open. To allow it (you only do this once):

  1. Double-click Screenchart โ€” you'll see "could not verify." Click Done.
  2. Open System Settings โ†’ Privacy & Security.
  3. Scroll down to the message about Screenchart and click Open Anyway.
  4. When it prompts again, click Open Anyway, then authenticate with your password or Touch ID.

It opens normally afterward. Screen Recording setup is in QUICKSTART.md.

Windows โ€” first launch (unsigned build)

The installer isn't signed with a paid certificate, so Windows SmartScreen warns about the download. Click More info โ†’ Run anyway to continue.

First capture

  1. In Settings โ†’ Execution, pick a detected Local CLI or add an API key.
  2. Press the capture hotkey from any app: โŒ˜โŒฅS on macOS, Ctrl+Alt+S on Windows (configurable).
  3. Drag a box around a chart, table, or any data.
  4. Read the plain-English analysis + chart; ask a follow-up; export if you want.

How the capture loop works

The full display under your cursor is captured first (a "frozen frame"), painted into a dimming overlay, and your selected region is cropped from that still image โ€” so the overlay never appears in the result. The crop goes to your configured model (inline over HTTPS for BYOK, or a temp file handed to the local CLI), which returns a strict JSON envelope: raw extracted table + data shape + suggested calculations + a number-free headline angle. The app validates it, does the arithmetic, composes a number-accurate headline, and renders the chart or map.

Architecture and internals โ†’ CLAUDE.md.


Platform notes

macOS โ€” Screen Recording permission

macOS requires Screen Recording permission, or captures come back black. On first capture, grant it in System Settings โ†’ Privacy & Security โ†’ Screen Recording, then relaunch. In dev you grant it to whatever launches Electron (your terminal / Electron.app), not "Screenchart" โ€” that applies once packaged.

Windows

The default hotkey is Ctrl+Alt+S (configurable). Captures are cropped from the actual returned bitmap resolution, so selections stay accurate under display scaling (125โ€“150%). The installer is unsigned, so SmartScreen warns on first run โ€” see the download steps above.


Privacy

Local-first is a core promise. Captures, history, and settings stay on your machine. Analysis sends the cropped image (plus your prompt) to the model you chose โ€” a local CLI process, or your BYOK cloud endpoint over HTTPS โ€” and nowhere else. No telemetry, no analytics, no crash-reporting, no auto-updater. OpenStreetMap tiles are the one declared external fetch, only when a map renders. Full details โ†’ PRIVACY.md.

API keys are stored in userData/config.json (gitignored). See PRIVACY.md for the exact storage details before adding a key.


Contributing

Issues and PRs welcome. New work goes on a branch off main and merges via PR โ€” see CLAUDE.md for conventions. File bugs and feature requests through the issue templates; ask questions in Discussions.

Developer scripts

Helper scripts live in the screenchart-dev skill at .claude/skills/screenchart-dev/scripts/ (POSIX bash):

Script What it does
check-prereqs.sh Verify the build env: Node 18+, npm, authenticated gh, electron-builder.
setup-workspace.sh Bootstrap a fresh clone (prereqs + npm install).
create-pr.sh Push the current branch and open a PR into main (refuses on main).
create-issue.sh Open a GitHub issue in AshishB2000/screenchart.
bash .claude/skills/screenchart-dev/scripts/setup-workspace.sh

License

MIT ยฉ Screenchart contributors.

About

๐Ÿ“ธ Screenshot any dataโ†’ instant AI analysis + auto-generated charts. ๐Ÿ–ฅ๏ธ Local-first, open-source app, hotkey capture. ๐Ÿ”‘ BYOK (Anthropic/OpenAI/Gemini) or ๐Ÿค– Local CLI (Claude Code ยท Antigravity).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages