PPTX Design Studio
Generate executive-grade, fully editable PowerPoint (.pptx) decks from a prompt, an outline or a document —
100% offline, driven by a real design system: palettes, design tokens, templates, native charts, tables and
diagrams, automatic quality checks and encrypted private asset packs.
Version française plus bas — Français.
Why PPTX Design Studio
- Works offline, installs nothing else. Everything ships inside the extension: the planner, the design
engine, the PowerPoint writer, templates, icons and the cryptography. No internet access, no telemetry, no
update check, no online AI, no PowerPoint, Python or Node.js required. The only thing you install is this
extension.
- Real PowerPoint objects. Titles, text boxes, shapes, native charts and tables stay editable — slides are
never flattened into pictures.
- A design system, not a color swap. Palettes are mapped to semantic roles (primary, surfaces, text, status,
charts, diagrams…), turned into design tokens (typography, spacing, 16:9 grid, chart and table styles) and
applied consistently to every slide. The accent color stays rare (60/30/10 rule) so it keeps its focusing power.
- Quality built in. Every generated deck goes through automatic QA (layout, overflow, contrast, accent
overuse, missing sources, consistency) with a PASS / WARN / FAIL report per slide.
- Encrypted private asset packs. Distribute logos, icons, templates, PDFs or PPTX elements to authorized people
as one encrypted
.pptpack file, separate from the extension.
Quick start
- Click the PPTX Design Studio icon in the Activity Bar, then Create Presentation
(or run PPTX Design Studio: New Presentation from the Command Palette).
- Describe the topic (or attach a Markdown, text, JSON or CSV document), pick a palette, a template and a number
of slides, then Generate.
- Review the QA report, Save .pptx…, then Open file — the deck opens in PowerPoint.
Prefer the keyboard? PPTX Design Studio: Generate Presentation asks for a prompt and a palette, then saves the
file. Editing a Markdown file? Right-click it and choose Generate Presentation from Current File.
Commands
All commands are in the Command Palette under the PPTX Design Studio category.
| Command |
What it does |
| New Presentation |
Opens the wizard (Simple and Advanced modes, QA report, save). |
| Generate Presentation |
Quick keyboard flow: prompt → palette → generate → save. |
| Generate Presentation from Current File |
Turns the open Markdown / text / JSON / CSV file into a deck. A JSON presentation spec is rendered as is. |
| Open Designer |
Palette editor with contrast checks and a live preview of 7 reference slides. |
| Manage Palettes |
Open, set as default, duplicate, rename, export or delete palettes. |
| Create Palette |
Name + primary color (+ optional secondary and accent) → complete palette. |
| Generate Palette from Color |
One color → complete palette, previewed in the Designer. |
| Extract Palette from Image |
Samples a local image and builds a palette from its dominant colors. |
| Import Palette / Export Palette |
JSON, CSS variables, HEX list or ASE (Adobe Swatch Exchange). |
| Open Template Gallery |
Browse the templates with thumbnails; use one as is or regenerate it with another palette. |
| Create Presentation from Template |
Pick a template and save it as a new deck. |
| Manage Asset Packs |
Public, system and private packs with their status. |
| Install / Unlock / Lock / Validate / Remove Private Pack |
Private pack lifecycle (see below). |
| Export Asset from Private Pack |
Saves one decrypted asset (e.g. a PDF or a PPTX) where you choose. |
| Open Asset from Private Pack |
Opens one document of an unlocked pack from a temporary decrypted copy (deleted on lock, on remove and when VS Code closes). |
| Open Bundled Pack |
Unlocks the encrypted study pack shipped inside the extension (password provided separately by its owner), then opens or exports one of its documents. |
| Create Private Asset Pack |
Owner workflow: builds an encrypted .pptpack from a folder. |
| Run Presentation QA |
Checks the last generated deck or a JSON presentation spec. |
| Check Palette Accessibility |
Contrast report of the default palette (WCAG 2.x). |
| Open Settings |
Opens the extension settings. |
Palettes
Default palette — Corporate Red Executive
| Role |
Color |
| Primary Red |
#E6001E |
| Deep Black |
#1C1C1C |
| White |
#FFFFFF |
| Light Gray |
#F3F4F5 |
| Medium Gray |
#666B70 |
| Pale Red |
#FBE8EB |
| Success Green |
#327A5A |
| Warning Amber |
#A56800 |
White and grays are the base, black gives the structure, red is a rare strategic accent, green is for positive
results only and amber for warnings only.
Note: the red #E6001E is a working approximation, not an official brand value. Using this palette
does not imply any affiliation with any brand.
Your own palettes
- From one color (e.g.
#0055AA): the engine derives primary dark / light / soft, secondary, accent,
background, surfaces, borders, text colors and status colors with real color science (OKLCH), never at random.
- From several colors (primary, secondary, accent, background): your colors are kept as given; everything else
is generated around them. If a combination is hard to read you get a color accessibility warning with a
proposed correction — nothing is replaced silently.
- From an image: the Designer samples the image locally and proposes a palette.
- Import / export: JSON (versioned palette format), CSS custom properties, HEX list, ASE.
Designer and live preview
The Designer shows the Primary / Secondary / Accent / Background editors, every semantic role (Advanced tab),
typography (Arial or Aptos), the contrast results (PASS / WARNING / FAIL, always with an icon and a label, never
color alone), a color-vision simulation, and a live preview of 7 slides — Title, KPI, Chart, Table,
Architecture, Timeline and Conclusion — updated instantly from the design tokens. Open the 7 slides in
PowerPoint renders the same slides with the real PowerPoint engine.
Templates
The Template Gallery lists ready-made storylines (executive, banking, technical, consulting, financial, board,
project, product, strategy…) with thumbnails. Use template saves the pre-generated deck; choosing another
palette regenerates it with that palette. Customize… opens the wizard with the template preselected.
Presentation QA
After each generation, the deck is checked for text overflow, overlaps, objects outside the slide, contrast,
accent overuse, inconsistent status colors, missing titles or sources and typography consistency. Problems are
fixed automatically when possible (restructuring or splitting, never shrinking text to unreadable sizes); the rest
is reported per slide with PASS / WARN / FAIL. Save the report as Markdown from the QA panel.
Private asset packs
A private pack is an encrypted .pptpack file distributed separately from the extension (one encrypted study pack
is also bundled inside the extension, see below). The same extension can be shared with everyone while only
authorized people receive a pack's password.
Bundled encrypted pack
One encrypted pack ships inside the extension itself: Étude APIM bancaire CEMAC et OCI (a PDF study and a
PPTX deck, in bundled-packs/). Nothing else has to be downloaded or installed.
- Where to find it. Activity Bar → PPTX Design Studio: the hint Bundled study pack available — Unlock, or
Assets → Private Packs where it reads Bundled — locked; also Manage Asset Packs and the Command Palette
entry PPTX Design Studio: Open Bundled Pack.
- How to unlock it. Choose Unlock, type the password in the masked box and decide whether this computer should
remember access. The password is provided separately by the owner of the pack — it is not written anywhere in
the extension, its settings, its logs or its files, and there is no default password. A wrong password only shows
the usual "Private Pack could not be unlocked" message.
- Using the documents. Once unlocked, the pack lists its documents. Open decrypts one of them into a private
temporary folder and opens it, read-only, with the default application (PDF viewer, PowerPoint); that copy is
deleted when you Lock or Remove the pack and when VS Code closes. Export… saves a copy you can keep or
edit, where you choose (an existing file is never replaced without confirmation).
- Good to know. The encrypted file can be downloaded by anyone who has the extension: what protects it is
AES-256-GCM, an Argon2id-derived key and the strength of its password (see the security model below). Remove
deletes the installed copy; the bundled file stays and can be unlocked again.
For pack users
- Install Private Pack → choose the
.pptpack file → type the password received from the owner (masked) →
choose whether to remember access on this computer.
- The pack is verified (integrity, signature, manifest, compatibility, expiry) and appears under
Assets → Private Packs with its version and status (Unlocked / Locked). The password is never
displayed.
- Lock drops decrypted content from memory; Unlock asks for the password again (or uses the remembered
access). Validate shows
Integrity / Signature / Manifest / Compatibility. Remove deletes the installed
copy and any remembered access.
- Export Asset from Private Pack saves one decrypted file (for example a PDF or a PPTX) to a folder you
choose — outside your workspace is recommended so it is never committed by mistake. Open Asset from Private
Pack opens a document from a temporary decrypted copy instead (deleted when the pack is locked or removed).
- In the wizard's Advanced mode, pick an unlocked pack to use its assets (and optionally its logo). If a private
asset is unavailable, generation falls back to public assets instead of failing.
For pack owners — Create Private Asset Pack
Works on the offline machine, entirely inside VS Code (no Node.js, no command line):
Prepare a folder, for example:
my-pack/
├── assets/ (optional wrapper)
│ ├── logos/ icons/ illustrations/ backgrounds/ templates/ documents/
└── theme/
└── palette.json (optional: a palette exported from the Designer)
Allowed files: SVG, PNG, JPG, WebP, PPTX, PPT, JSON and PDF. SVG files are sanitized; nothing in a pack is ever
executed.
Run Create Private Asset Pack (or right-click the folder → Create Private Asset Pack), then enter the pack
id, name, version and description.
Type a strong password twice (at least 12 characters). It is never stored anywhere: share it with authorized
people through another channel than the file.
Optionally sign the pack with an Ed25519 key (existing PEM file, or a new key pair generated for you). Recipients
add your public key (or its fingerprint) to powerpointGenerator.trustedPackSigners and then see
Signature: VALID.
Save the .pptpack. A summary shows the number of assets, the size, the SHA-256 and the signature status.
Security model
- AES-256-GCM authenticated encryption with a key derived from the password by Argon2id (unique salt and nonce per
pack), SHA-256 integrity of every asset, optional Ed25519 signature.
- Secure extraction: path traversal, absolute paths, links, archive bombs, oversized or unexpected files are
refused; limits are enforced before decompression.
- Passwords are typed in VS Code's masked input box, never written to settings, files, logs or webviews; "remember
access" uses VS Code SecretStorage (the operating system's secure storage). There is no password setting and no
default password.
- Decrypted content stays in memory and is dropped on lock; nothing decrypted is written unless you explicitly
export an asset or use Open — that writes one temporary copy in a private folder of the extension's storage
(never in your workspace), deleted on lock, on remove and when VS Code closes.
- A pack bundled with the extension is public by construction (the .vsix can be downloaded): only the strength of its
password protects it. The password is never part of the extension.
Fundamental limitation. If someone has the extension and the secret needed to decrypt a pack, a person with full
control of the computer can inspect the process and extract decrypted assets. Local encryption protects against
accidental sharing, unauthorized access and tampering — it is not unbreakable DRM. Stronger protection would require
an online authentication / licensing service, which this offline product deliberately does not depend on.
Settings
| Setting |
Default |
Description |
powerpointGenerator.defaultPalette |
corporate-red-executive |
Palette used by default. |
powerpointGenerator.defaultTemplate |
(empty = automatic) |
Template used by default. |
powerpointGenerator.outputDirectory |
(empty = workspace or home) |
Folder proposed when saving; supports ${workspaceFolder} and ~. |
powerpointGenerator.language |
en |
Default deck language (en or fr). |
powerpointGenerator.typography.font |
Arial |
Arial (everywhere) or Aptos. |
powerpointGenerator.defaultSlideCount |
12 |
Slides proposed for prompt-based generation. |
powerpointGenerator.validateContrast |
true |
WCAG contrast checks in palettes and QA. |
powerpointGenerator.accent.* |
0.08 / 0.1 / 0.3 / 4 |
Accent policy: max accent area per slide, primary and secondary ratios, max accent objects per slide. |
powerpointGenerator.enablePrivatePacks |
true |
Enables private packs. |
powerpointGenerator.maxPrivatePackSize |
200 |
Maximum pack size in MB. |
powerpointGenerator.trustedPackSigners |
[] |
Public keys or fingerprints of trusted pack owners. |
Pack-related settings can only be set in your user settings (not by a workspace).
Troubleshooting
- "Private Pack could not be unlocked" — check the password, ask the owner whether the pack was rebuilt, run
Validate Private Pack to see which check fails (integrity, signature, compatibility, expiry).
- "…could not be written" — the file is probably open in PowerPoint: close it or save under another name.
- Aptos looks different on another computer — Aptos is only displayed where it is installed; choose Arial for
decks that travel.
- The bundled pack is not listed — check that
powerpointGenerator.enablePrivatePacks is on, then open
Assets → Private Packs. If it reads Corrupted or Incompatible, reinstall the .vsix.
- A document is still there after Lock — on Windows a file that is still open in PowerPoint or a PDF viewer cannot
be deleted: close it, then lock the pack again (leftovers are also removed at the next start).
- Signature: UNTRUSTED — the pack is signed with a key you have not added to
powerpointGenerator.trustedPackSigners.
- Nothing happens / an error appears — run PPTX Design Studio: Show Log. The log never contains passwords
or keys.
Privacy
No network access at all: no telemetry, no analytics, no remote fonts or images, no update checks. Your content and
your packs never leave your computer.
Français
PPTX Design Studio génère des présentations PowerPoint (.pptx) entièrement modifiables, de niveau comité
exécutif, à partir d'un sujet, d'un plan ou d'un document — 100 % hors ligne, sans rien installer d'autre que
l'extension.
Points clés
- Hors ligne, sans installation : planificateur, moteur de design, génération PowerPoint, modèles, icônes et
chiffrement sont embarqués. Aucun accès réseau, aucune télémétrie, ni PowerPoint, ni Python, ni Node.js requis.
- Vrais objets PowerPoint : textes, formes, graphiques et tableaux natifs restent modifiables.
- Un vrai design system : rôles sémantiques, design tokens (typographie, espacements, grille 16:9, styles de
graphiques et de tableaux), accent rare (règle 60/30/10).
- Contrôle qualité automatique : rapport PASS / WARN / FAIL par slide.
- Packs privés chiffrés
.pptpack, distribués séparément de l'extension (un pack d'étude chiffré est aussi
inclus dans l'extension : mot de passe communiqué séparément).
Démarrage rapide
- Icône PPTX Design Studio dans la barre d'activité → Create Presentation.
- Décrivez le sujet (ou joignez un fichier Markdown, texte, JSON ou CSV), choisissez palette, modèle, nombre de
slides et langue (français ou anglais), puis Generate.
- Consultez le rapport QA, Save .pptx…, puis Open file.
Palette par défaut
Corporate Red Executive : #E6001E, #1C1C1C, #FFFFFF, #F3F4F5, #666B70, #FBE8EB, #327A5A, #A56800.
Le rouge #E6001E est une approximation de travail, pas une valeur officielle de marque ; aucune affiliation à
une marque n'est revendiquée. Vous pouvez aussi générer une palette depuis une couleur, plusieurs couleurs ou une
image, l'importer ou l'exporter (JSON, CSS, liste HEX, ASE) et la vérifier (contraste WCAG PASS / WARNING / FAIL).
Le Designer affiche un aperçu en direct de 7 slides (titre, KPI, graphique, tableau, architecture, frise,
conclusion).
Packs privés
- Utilisateur : Install Private Pack → fichier
.pptpack → mot de passe (saisie masquée) → vérification
(intégrité, signature, manifeste, compatibilité). Le pack apparaît dans Assets → Private Packs avec sa version
et son état (déverrouillé / verrouillé). Export Asset from Private Pack enregistre un fichier déchiffré (par
exemple un PDF ou un PPTX) à l'endroit choisi.
- Pack chiffré inclus dans l'extension : Étude APIM bancaire CEMAC et OCI (un PDF et un PPTX) est embarqué dans
le .vsix sous forme de pack chiffré (AES-256-GCM, dérivation Argon2id). Il apparaît verrouillé (Bundled — locked)
dans Assets → Private Packs, avec l'indication « Bundled study pack available — Unlock » dans la barre
d'activité, ou via la commande Open Bundled Pack. Unlock → mot de passe (saisie masquée) → les documents
s'affichent : Open ouvre une copie temporaire en lecture seule avec l'application par défaut (supprimée au verrouillage, à la
suppression du pack et à la fermeture de VS Code), Export… l'enregistre où vous voulez (jamais d'écrasement sans
confirmation). Le mot de passe est communiqué séparément par le propriétaire et n'est jamais stocké dans
l'extension (ni paramètres, ni fichiers, ni journaux). Le fichier chiffré est téléchargeable avec l'extension :
seule la force du mot de passe le protège.
- Propriétaire : Create Private Asset Pack → dossier source → identifiant, nom, version → mot de passe saisi
deux fois (12 caractères minimum, jamais enregistré) → signature Ed25519 facultative → fichier
.pptpack.
Transmettez le mot de passe par un autre canal que le fichier.
- Sécurité : AES-256-GCM, dérivation Argon2id, intégrité SHA-256, signature Ed25519 facultative, extraction
sécurisée, mot de passe jamais écrit dans les paramètres, fichiers, journaux ou webviews (SecretStorage du système
si vous choisissez de mémoriser l'accès).
- Limite fondamentale : une personne qui possède l'extension et le secret de déchiffrement, avec un contrôle
total de la machine, peut extraire les assets déchiffrés. Le chiffrement local protège contre le partage
accidentel, l'accès non autorisé et la modification — ce n'est pas une protection inviolable.
Assistance
Écrivez à extensionuseful@gmail.com.
Support
Questions, problems or suggestions: extensionuseful@gmail.com.
License
MIT — Copyright (c) 2026 Useful Extensions.
| |