TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Rebuild slide screenshots as native editable PowerPoint. Shapes, fonts, and colors gated before delivery.
Translation pending
ProductivityPythonGitHub @cliffkwokOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Screenshot → native editable PowerPoint. Measure-first Cursor/Claude skill with layout.json, Layer A/B/C, gates before delivery.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Paste a slide screenshot. Get a native editable .pptx — real shapes, real text, grouped icons. Not a pasted picture.
Left: original screenshot · Right: PowerPoint slideshow raster of the rebuilt editable deck
Most “screenshot to PPT” tools embed the image. That looks fine until you need to edit a word, recolor a card, or move an icon.
This skill rebuilds the slide with object-level PowerPoint shapes and refuses to deliver until automated gates say the rebuild matches the photo.Read the full README ↗Paste a slide screenshot. Get a native editable
.pptx— real shapes, real text, grouped icons. Not a pasted picture.
Most “screenshot to PPT” tools embed the image. That looks fine until you need to edit a word, recolor a card, or move an icon.
This skill rebuilds the slide with object-level PowerPoint shapes and refuses to deliver until automated gates say the rebuild matches the photo.
| Area | What you get |
|---|---|
| Layout vs component | Same skill, two modes — full-page composition principles or nest/internals only (07-layout.md) |
| Layers A / B / C | Complex art → measured PNG crops (+ optional vectorize); structure → native shapes; text → editable runs (08-layers.md) |
| Contact sheet | Review every Layer A crop before build (scripts/contact_sheet.py) |
| png-fallback | Visible PPT image is PNG; SVG kept on disk when vectorize runs |
| layout.json assemble | Declarative build: scripts/build_pptx_from_layout.py (layout-json.md) |
| Optional OCR | Fill strings only onto already measured boxes (ocr_fill_text.py) |
| Job + local repair | Per-page dirs (init_job.py); fix one element, don’t rebuild the world (09-job-workflow.md) |
| Text↔text gaps | Always measure title→sub, label→body, sentence→link; one-liners stay wrap=False |
| No full-slide white backing | Page color via set_background only — no selectable full-slide rect |
| Progress = track + fill | Grey track (back) + black/accent fill (front) — two overlapping layers |
| Pre-delivery checklist | Category HARD gates before the three automated scripts (pre-delivery-checklist.md) |
| Text fidelity gate | check_text_fidelity.py — gaps, line-count, bold/regular vs photo |
| ROI compare | compare_rois.py — per-region MAE (header / title / cards / footer) |
| Progress detector | detect_progress_bar.py — track (back) + fill (front) |
Law in one line: measure every element against its neighbors — including text↔text and layers inside a shape. Never guess. Never copy pads from another screenshot.
pad_frac, not a guessed ptwrap=False) vs caption placeholders (wrap=True) only when the photo wrapsstCxn / endCxn when lines should stick to shapes; straight / elbow / curve from photo| Gate | Script | What it checks |
|---|---|---|
| Source | source_audit.py | Spec text boxes sit on real ink in the original photo; glyph height matches declared pt |
| Structure | verify_pptx.py | Shape type/size/position, font name/size/weight/color, sampled fill colors (slide_background = real slide fill, not a fake rect) |
| Visual | compare_render.py | Real PowerPoint slideshow raster vs original (card IoU / pixel MAE, no origin-stacked groups) |
XML that “looks right” is not enough. PowerPoint must draw it correctly.
git clone https://github.com/cliffkwok/screenshot-to-editable-pptx.git
mkdir -p ~/.cursor/skills
ln -s "$(pwd)/screenshot-to-editable-pptx" ~/.cursor/skills/screenshot-to-editable-ppt
pip3 install -r requirements.txt
Optional project rule (always-on reminder): copy .cursor/rules/screenshot-to-editable-ppt.mdc into your project’s .cursor/rules/.
/plugin marketplace add https://github.com/cliffkwok/screenshot-to-editable-pptx
/plugin install screenshot-to-editable-pptx@screenshot-to-editable-pptx
Then invoke the skill when you paste a screenshot and ask for an editable PowerPoint.
Clone this repo and point your agent’s skills folder at it (same layout as Cursor above).
pip3 install -r requirements.txt (python-pptx, Pillow, lxml)eng+chi_tra) for ocr_fill_text.py / line hintsexport_slide_png.py / visual compare (Quick Look is not a valid render)Paste a slide screenshot and ask:
Rebuild this as an editable PowerPoint — shapes, fonts, and colors must match.
The agent will:
layout.json / native helpers (page color = set_background, no full-slide white shape).pptx only if checklist + all three reports passAfter any edit: local repair when possible, then rebuild and re-run gates.
python3 scripts/init_job.py --job work/my-deck --image shot.png
# …measure → write pages/page_001/layout.json + assets…
python3 scripts/contact_sheet.py --assets pages/page_001/assets --out pages/page_001/assets/_contact_sheet.png
python3 scripts/ocr_fill_text.py --image pages/page_001/source.png --layout pages/page_001/layout.json --out pages/page_001/layout.json
python3 scripts/build_pptx_from_layout.py --layout pages/page_001/layout.json --assets-root pages/page_001 --out pages/page_001/page.pptx
python3 scripts/text_hints.py --image screenshot.png --out text_hints.json --overlay text_hints.png
python3 scripts/source_audit.py --spec spec.json --original screenshot.png --hints text_hints.json --out source_audit.json
python3 scripts/verify_pptx.py --pptx slide.pptx --spec spec.json --original screenshot.png --out verify_report.json
python3 scripts/export_slide_png.py --pptx slide.pptx --out render.png
python3 scripts/compare_render.py --original screenshot.png --render render.png --out compare
Exit 0 = pass. Exit 1 = do not deliver.
The main SKILL.md is a workflow map. Supporting files load only when needed:
| File | Purpose | Loaded when |
|---|---|---|
SKILL.md | Core workflow + hard gates | Always |
references/universal-measure-rule.md | Measure law + pipeline | Every rebuild |
references/pre-delivery-checklist.md | Category HARD checks | Before delivery |
references/rules/07–09 + layout-json | Layout mode, layers, jobs | Multi-region / multi-page / Layer A |
scripts/build_pptx_from_layout.py | Assemble from layout.json | Universal path |
scripts/contact_sheet.py / ocr_fill_text.py / init_job.py | Ops enrichments | When using layers / OCR / jobs |
scripts/text_hints.py | Ink boxes + glyph→pt | Before locking text into the spec |
scripts/source_audit.py | Spec vs original photo | Before claiming the layout is locked |
scripts/verify_pptx.py | Shape / font / color | Before visual compare |
scripts/export_slide_png.py + compare_render.py | Real PPT raster vs photo | Before delivery |
examples/walkthrough.md | End-to-end walkthrough | Onboarding |
frontend-slides is an HTML deck authoring skill — different product. What transfers for accuracy:
What does not transfer: style presets, CSS animation packs, Vercel deploy, PPT→HTML extraction. Those solve authoring/sharing, not photo→native-PPT reconstruction.
screenshot-to-editable-pptx/
├── SKILL.md
├── README.md
├── LICENSE
├── requirements.txt
├── .claude-plugin/marketplace.json
├── plugins/screenshot-to-editable-pptx/ # Claude Code plugin wrapper
├── scripts/ # measure · build · audit · verify · compare
├── references/
│ ├── universal-measure-rule.md
│ ├── pre-delivery-checklist.md
│ └── rules/ # 01–09 + LEARNINGS + layout-json
├── examples/
└── docs/ # GitHub Pages gallery
source_audit.Built for Cursor / Claude agent workflows. Packaging patterns inspired by @zarazhangrui/frontend-slides.
MIT — use it, modify it, share it.