Skip to content

Repository files navigation

Chart Revive

Turn chart screenshots into real, editable PowerPoint charts, with data you can audit.

简体中文 · Market research · Demo files

CI Python 3.10+ MIT License

Chart Revive turns a flat chart image into an editable PowerPoint chart

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.

What You Get

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.

Who It Is For

  • 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.

Demo

The committed demo starts with a flat PNG and produces a native PowerPoint chart plus an offline audit report.

Source image Reconstructed preview
Flat source chart Reconstructed chart

Run it locally:

python -m pip install -e .
chart-revive demo --output build/demo

Open 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.

Install

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.

Quick Start

Build from the included manifest:

chart-revive validate examples/chart-manifest.json
chart-revive build examples/chart-manifest.json --output build/from-manifest

Or 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-revive

See validation results and limits.

Example Input

{
  "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.

How It Works

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"]
Loading

The separation is intentional: visual interpretation can be uncertain, while file generation and validation should be deterministic.

Common Use Cases

  • 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.

Accuracy and Privacy

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.

Project Structure

.
├── 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

Roadmap

  • 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.

FAQ

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.

Contributing

Real chart edge cases are more useful than speculative features. Read CONTRIBUTING.md before opening a fixture or pull request.

License

MIT. You are responsible for having permission to reproduce the source chart.

About

Turn chart screenshots into native editable PowerPoint charts with embedded data, CSV export, and honest confidence reports.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages