Turn chart screenshots into real, editable PowerPoint charts, with data you can audit.
简体中文 · Market research · Demo files
A chart copied from a PDF or screenshot is easy to view and painful to update. Chart Revive is an Agent Skill plus local CLI that rebuilds common 2D chart images as native PowerPoint charts with embedded Excel data, then exports the recovered data and its confidence trail.
No server. No account. No paid API. The CLI never pretends an estimate is exact.
With the Skill installed, the shortest useful request is:
Turn this chart screenshot into an editable PowerPoint chart.
Give me the CSV and flag every uncertain value.
| Artifact | Purpose |
|---|---|
revived-chart.pptx |
Native chart with an embedded workbook and editable series |
revived-chart.csv |
Long-form values with per-point confidence |
chart-manifest.json |
Reproducible source of truth |
report.html |
Self-contained source/rebuild comparison and confidence audit |
preview.png |
Fast visual check without opening PowerPoint |
summary.json |
Machine-readable proof that chart XML and workbook are embedded |
Supported in v0.1.0: non-negative clustered column, stacked column, horizontal bar, line, pie, and doughnut charts.
- Consultants updating charts copied from reports or client PDFs.
- Researchers recovering an editable figure when the original data file is unavailable.
- Analysts rebuilding a dashboard screenshot for a presentation.
- Students and educators translating or restyling chart visuals.
- Codex, Claude Code, Cursor, and other Agent Skill users who need a deterministic PPTX builder.
The committed demo starts with a flat PNG and produces a native PowerPoint chart plus an offline audit report.
| Source image | Reconstructed preview |
|---|---|
![]() |
![]() |
Run it locally:
python -m pip install -e .
chart-revive demo --output build/demoOpen build/demo/revived-chart.pptx, select the chart, and use Chart Design → Edit Data. The generated deck contains ppt/charts/chart1.xml and an embedded .xlsx workbook; the test suite verifies both.
Requirements: Python 3.10 or newer.
git clone https://github.com/yoursmilestar-ctrl/chart-revive.git
cd chart-revive
python -m pip install -e .To install only the Agent Skill, point your skill installer at:
https://github.com/yoursmilestar-ctrl/chart-revive/tree/main/skills/chart-revive
The active multimodal agent reads the chart image and creates a manifest. The local CLI validates that manifest and builds the files; it does not call an OCR service or image API.
Build from the included manifest:
chart-revive validate examples/chart-manifest.json
chart-revive build examples/chart-manifest.json --output build/from-manifestOr ask an Agent with the Skill installed:
Use chart-revive to turn this chart screenshot into an editable PowerPoint chart.
Keep uncertain values visible and give me the CSV and audit report too.
Run the local quality gate:
python -m unittest discover -s tests -v
python ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py skills/chart-reviveSee validation results and limits.
{
"schema_version": "1.0",
"title": "Subscription revenue by quarter",
"chart_type": "column",
"categories": ["Q1", "Q2", "Q3", "Q4"],
"series": [
{
"name": "2026",
"values": [25, 31, 38, 46],
"confidence": [1.0, 0.96, 0.91, 0.82]
}
],
"units": "USD millions",
"axis": {"min": 0, "max": 50, "major_unit": 10},
"style": {
"background": "#F7F3EA",
"plot_background": "#FFFDF8",
"colors": ["#E4572E", "#2A9D8F"],
"font_family": "Aptos",
"show_legend": false,
"show_data_labels": false
},
"source": {
"image": "source-chart.png",
"method": "mixed",
"notes": "Q4 was interpolated between axis ticks."
}
}Every value has its own confidence. Values below 0.90 remain visible as review items in the CSV and HTML report.
flowchart LR
I["Chart image"] --> A["Multimodal Agent extracts structure"]
A --> M["Auditable JSON manifest"]
M --> V["Deterministic validation"]
V --> P["Native PPTX + embedded workbook"]
V --> C["CSV + confidence"]
V --> R["Offline HTML report"]
The separation is intentional: visual interpretation can be uncertain, while file generation and validation should be deterministic.
- Recreate a chart from an annual report, paper, or PDF without redrawing it by hand.
- Translate labels while preserving editable data.
- Apply a new color palette to a chart recovered from a screenshot.
- Extract a reviewable CSV before rebuilding the presentation chart.
- Compare a pixel source with an editable reconstruction in one offline report.
Chart Revive does not claim scientific or numeric certainty. Pixel-derived values may be estimates. Confidence is a review aid, not a guarantee, and low-confidence points should be checked against the source.
The CLI works locally, makes no network requests, includes no remote fonts or scripts, adds no macros or external workbook links, limits source images to 25 MB, and neutralizes spreadsheet-formula prefixes in CSV and embedded-workbook labels.
.
├── skills/chart-revive/ # Installable Agent Skill and deterministic runtime
├── examples/ # Input manifest and complete generated demo
├── tests/ # Unit, security, structure, and end-to-end tests
├── docs/ # Research, product decisions, launch pack, QA logs
├── assets/ # README visual assets
└── pyproject.toml # Python package and chart-revive CLI
- v0.1: six common 2D chart families, PPTX/CSV/report output, confidence audit.
- v0.2: calibrated scatter plots and error bars, only with test fixtures and explicit uncertainty.
- v0.3: optional existing-deck insertion and theme matching.
- Later: benchmark corpus with known ground truth and community-contributed edge cases.
See the detailed roadmap. Unsupported types will not be added until they can be tested without hiding uncertainty.
Does it automatically read every chart perfectly? No. The Agent interprets pixels and records confidence; the CLI validates and builds files. Ambiguous values stay ambiguous.
Is the output really editable? Yes. The generated PPTX contains native chart XML and an embedded Excel workbook. Automated tests inspect the archive for both.
Does it upload my chart? The CLI does not. Your Agent's own image-handling policy still applies, so check the Agent environment you use.
Why not use WebPlotDigitizer? Use it when precise scientific digitization is the main job. Chart Revive focuses on producing a presentation-ready native PowerPoint chart plus a confidence audit.
Why not rebuild the whole slide? Chart-only scope is faster, easier to verify, and avoids expensive full-slide reconstruction when the actual need is editable data.
Real chart edge cases are more useful than speculative features. Read CONTRIBUTING.md before opening a fixture or pull request.
MIT. You are responsible for having permission to reproduce the source chart.


