One Click Ai Ppt logo

One Click Ai Ppt

Community
TianHengZhuang
one-click-ai-ppt

Turn any topic into a complete business presentation — outline plus slide-by-slide speaker notes. Use when the user asks to create, generate, or draft a PPT, PowerPoint, slide deck, pitch deck, or presentation, or says "make me slides" / "give me a deck".

Overview

PublisherTianHengZhuang
RepositoryOne-click-AI-PPT-creation
Skill nameone-click-ai-ppt
Stars
8
Forks
1
Bundled files
48
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 48 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by TianHengZhuang on GitHub. Read the source before you install it.

Installation

Install the One Click Ai Ppt AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/TianHengZhuang/One-click-AI-PPT-creation/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/TianHengZhuang/One-click-AI-PPT-creation.git \
  .claude/skills/one-click-ai-ppt
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable One Click Ai Ppt in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads One Click Ai Ppt on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so One Click Ai Ppt is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

One-Click AI PPT

Build a complete, presentation-ready business deck from a single topic. No external tools, no API keys — just structured thinking.

When to use

  • User asks for a PPT / PowerPoint / slide deck / pitch deck / presentation.
  • User has a topic but no structure.
  • User needs speaker notes or talking points for each slide.
  • User attaches a report, spreadsheet, deck or notes the deck must be built from.

Workflow

Step 0 — Read the source first (only when material is attached)

When the request comes with files — a PDF, a Word document, a spreadsheet, a slide deck, a folder of notes — condense them into one brief before drafting anything:

bash
python tools/source_extract.py <files-or-folders> --out source-brief.json

Draft from source-brief.json, not from a skim of the attachments. The brief holds sections, addressable chunks (report.pdf#3), tables, and deduplicated numbers with the sentence around each one; every field is described in references/source-brief.md. Add --recursive for folders, --max-chars to trim long documents.

If the extractor cannot run — no Python, or a binary format whose parser is missing — say so in one line, read the files directly, and keep the same discipline by hand: note the section each number came from. A single unreadable file is not a reason to stop; skip it and name it in the hand-off.

No attachments? Skip this step and go to Step 1.

Step 1 — Clarify (ask only if truly missing)

Ask for: target audience, time limit (5/10/20 min), desired number of slides (default 10), and purpose (inform / persuade / pitch / report). If the user just says "make me a deck about X", proceed with sensible defaults: 10 slides, business audience, persuasive-informative mix. Do not block on questions the user already answered.

Step 2 — Pick a structure

Choose from the 21 structures in references/slide-structures.md, or use its "Choosing a structure" table. Default: the 10-slide Business Pitch. Match the structure to the purpose:

  • Pitch / proposal → Problem → Solution → Market → Traction → Ask
  • Status report → Wins → Metrics → Issues → Next steps
  • Training / explainer → Concept → Why it matters → How it works → Examples → Practice

Once the story is chosen, pick the slide roles from the layout library — assets/layouts.json, fourteen roles in 31 variants, each with a when line and a copy budget. Choose the role by the job the slide does (a chart slide with no chart is a bullet slide in the wrong role), and take its limits as the budget for the copy in Step 4. Geometry, roles and the bands are described in references/layout-library.md.

Step 3 — Draft the outline

Produce a numbered slide list. Each slide gets a working title (a full sentence, not a noun phrase) and a one-line purpose.

When a source-brief.json exists, close each purpose line with the chunks the slide draws on: (evidence: report.pdf#3, report.pdf#5). A slide with no chunk behind it is a slide with no source — keep it only as a transition or a section break. If the brief has no chunk that supports a slide you wanted, that is a gap in the source: drop the slide or ask the user for the missing material.

Step 4 — Write each slide

For every slide output:

  • Headline: a claim or takeaway, not a label ("Q3 revenue grew 18% on enterprise renewals", not "Revenue").
  • 3–5 bullet points max, each under 12 words — or the tighter budget of the slide's role in assets/layouts.json when it has one. Copy that overflows its band is flagged by tools/deck_qa.py, not silently shrunk.
  • Numbers you can point at: every figure in a headline or bullet must appear in source-brief.json or in the user's own message. If it is in neither, drop the number or mark the gap — never round it into something plausible.
  • One visual suggestion per slide (chart, diagram, screenshot, icon). When the point is a number comparison the audience should read at a glance, ship it as a structured chart or table block in the payload too (schema 1.1, limits in references/output-contract.md) — the renderer turns it into a native object; keep the visual line regardless, it is the Markdown fallback.
  • Speaker note: 2–3 sentences the presenter can say out loud.

Step 5 — Format the output

Use this Markdown template:

# <Deck title> (<N> slides, ~<M> min)

## Slide 1 — <Headline>
- ...
- ...
Visual: ...
Notes: ...

## Slide 2 — <Headline>
...

If the user wants a different format (table, plain text), follow their request.

If the user asks for JSON, YAML, a machine-readable outline, or a payload for a rendering script, emit the structured contract in references/output-contract.md. Keep the same slide content as the Markdown form; add est_seconds per slide using that file's timing model, and put the roll-up in meta.est_minutes. A worked sample is examples/status-report.json.

If the user asks for an offline presentable file, emit a single-file HTML deck per references/html-export.md. Before any export, run references/export-checklist.md and report hard-gate failures.

When the same talk must ship at 3 / 8 / 15 minutes, follow references/duration-scaling.md: cut or add slides, keep one message per slide, and name exports {slug}_{version}_{slot}min_{date}. Run tools/deck_lint.py on each scaled pack.

If the user asks for a rehearsal script, speaker-only notes, or a talk track, emit references/rehearsal-notes.md (expand JSON notes into speakable paragraphs; do not invent a second storyline). Worked sample: examples/status-report-notes.md.

If the pack ships as more than one artifact (Markdown plus JSON, notes and/or HTML), run python tools/deck_lint.py <deck-path> before hand-off. It cross-checks slide counts, headlines, timing and numbered claims across the copies and reports hard-gate failures and soft warnings. Worked sample: python tools/deck_lint.py examples/status-report.

If a deck already exists — the user brings one to review, or you just wrote one — audit it before touching the copy: python tools/deck_review.py <deck-path> reports the hard gates that block a hand-off, the warnings worth a look, a 0-100 score across structure / copy / evidence / delivery and a READY / REVISE / REWRITE verdict. Add --slot <minutes> to check the deck against a time slot, --json for a machine-readable report, and --min-score / --strict to make the run fail when it should. Rules and finding codes: references/deck-review.md. Worked sample: examples/deck-review.example.md.

Before a decision meeting, stress-test the deck against the room using the seat-by-seat pass in references/audience-simulation.md: pick two or three seats, ask each seat's questions against the slides, mark every answer answered / partial / gap, then recommend the smallest set of additions. Worked sample: examples/audience-simulation.example.md.

Before hand-off, ask whether the slides will work in a room: python tools/deck_qa.py <payload>.json checks density, headlines, notes pace, table and chart load, and — with --theme — whether the palette is readable; --strict makes warnings fail, --json and --report <file>.md write a report. Rules and scoring: references/visual-qa.md; worked report: examples/qa-report.example.md. Fix errors first, then over-long copy, then density; do not shrink type to win a point.

If the user asks for a real .pptx file, follow references/rendering-handoff.md: emit the structured payload first, lint the pack, then run python tools/render_pptx.py <payload>.json. Add --template <corporate>.potx --master-map <map>.json to land the deck in a corporate slide master (see references/master-mapping.md), and --check to resolve every layout without writing a file. The renderer needs python-pptx; if it cannot be installed, hand over the Markdown deck plus the payload instead.

Copywriting rules

  • Write in active voice. "We cut onboarding time by 40%", not "Onboarding time was reduced".
  • Numbers first: lead with the metric, then the context.
  • One idea per bullet. No nested bullets.
  • Keep every sentence under ~15 words.
  • No jargon the audience wouldn't use themselves.
  • See references/copywriting-guide.md for before/after examples.

Design guidance (pass along to the user)

  • One message per slide; if a slide needs more than 5 bullets, split it.
  • High-contrast text on a light background; avoid dark gradients.
  • 24pt+ body text, 36pt+ headlines.
  • Use one accent color for calls-to-action and key numbers.
  • Charts beat tables; tables beat paragraphs.
  • See references/design-guide.md for layout, type scale, colour and chart selection.

Language

Write in the language the user asks for. When the output is Chinese, also apply references/zh-cn-adaptation.md: larger type, full-width punctuation, conclusion-first headlines, no four-character filler.

Edge cases

  • Topic is vague ("something about marketing"): propose 3 concrete angles and let the user pick.
  • User wants another language: write in that language, keep the same structure. For Chinese, apply references/zh-cn-adaptation.md.
  • User attaches a report, data file or notes: run Step 0 first, then draft from the brief; quote no figure the brief does not contain.
  • User brings an existing deck to fix: run tools/deck_review.py on it, fix the hard gates and the flagged copy, and return a corrected outline, keeping their own content and message.
  • User has a finished deck that looks off: theme it before redesigning it — python tools/theme_apply.py deck.pptx --theme consulting|swiss|editorial, then re-run tools/deck_qa.py on the payload; a palette will not fix six bullets.
  • User wants a real .pptx file: provide the full outline plus slide text in a format they can paste into PowerPoint/Keynote/Google Slides, and offer the structure for a rendering script.

Examples

Worked decks live in examples/: examples/status-report.md, examples/investor-update.md, examples/training.md, examples/crisis-comms.md. Structured payload sample: examples/status-report.json. Offline HTML sample: examples/status-report.html. Rehearsal talk track sample: examples/status-report-notes.md. Pack checker: tools/deck_lint.py (optional, standard library only). Deck review: tools/deck_review.py (optional, standard library only); worked report: examples/deck-review.example.md. Audience simulation: references/audience-simulation.md; worked pass: examples/audience-simulation.example.md. Renderer (optional, needs python-pptx): tools/render_pptx.py — payload to .pptx, with corporate master mapping. Source extract: tools/source_extract.py (optional, standard library only; PDF / Word / PowerPoint / Excel need pypdf, python-docx, python-pptx or openpyxl) — attached material to one source-brief.json; what the brief holds: references/source-brief.md. Master map sample: examples/master-map.example.json. Layout library: assets/layouts.json (14 roles, 31 variants, copy budgets); reference: references/layout-library.md. Themes: assets/themes/{consulting,swiss,editorial}.json; python tools/theme_apply.py <deck>.pptx --theme swiss restyles an existing file (needs python-pptx); reference: references/themes.md. Visual QA: tools/deck_qa.py (optional, standard library only) — will these slides work in a room; rules: references/visual-qa.md; worked report: examples/qa-report.example.md.


Optional Step 6 — Executive One-Pager

When the user asks for a leave-behind, email summary, or one-pager after the deck is stable, follow references/executive-one-pager.md.

  • Do not invent numbers that are not in the deck
  • Keep a single ask
  • Match deck language

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the One Click Ai Ppt AI skill do?

Turn any topic into a complete business presentation — outline plus slide-by-slide speaker notes. Use when the user asks to create, generate, or draft a PPT, PowerPoint, slide deck, pitch deck, or presentation, or says "make me slides" / "give me a deck".

Why use One Click Ai Ppt on TypingMind?

Because you install it once and use it with any model. One Click Ai Ppt is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install One Click Ai Ppt in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/TianHengZhuang/One-click-AI-PPT-creation/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use One Click Ai Ppt?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with One Click Ai Ppt?

As many as you like. As long as a model supports skills, you can use One Click Ai Ppt with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the One Click Ai Ppt AI skill free?

Yes. It is published on GitHub by TianHengZhuang under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇