Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>RTL PowerPoint GeneratorNew to Visual Studio Code? Get it now.
RTL PowerPoint Generator

RTL PowerPoint Generator

NGPowerToys

|
15 installs
| (0) | Free
Generate Hebrew and right-to-left PowerPoint decks from GitHub Copilot Chat. Correct RTL text direction, mirrored bullets and tables, and the bidi fixes PowerPoint actually needs.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

RTL PowerPoint Generator

Build Hebrew and right-to-left PowerPoint decks from GitHub Copilot Chat.

python-pptx cannot produce a correct RTL deck on its own — it has no API for the paragraph rtl attribute, the complex-script font, or the presentation-level RTL flag. This extension ships a skill that supplies all of them, installs it into your workspace so Copilot can find it, and removes it again when the extension goes away.

Getting started

There are two ways in, and the agent is the one you have to pick deliberately.

1. Select the agent (recommended)

Open Copilot Chat and choose RTL PowerPoint Generator from the agent dropdown — the picker at the bottom-left of the chat input, next to the model selector, that normally reads Agent or Ask. Selecting it is what loads the RTL rules; if you leave the default agent selected, Copilot answers as usual and may hand-roll python-pptx, which produces a deck with the text on the wrong side.

Once selected, just describe the deck:

סקירה רבעונית לצוות הפיתוח, 8 שקפים

The agent stays selected for the rest of the conversation. Switch back to the default agent the same way.

If it is not in the dropdown, see Troubleshooting.

2. Use the chat participant

@hebrew-deck works from any agent without switching — type it at the start of your message. It runs the build itself using the extension's own interpreter discovery, so it is the more reliable of the two.

Chat

@hebrew-deck in Copilot Chat:

/build Describe a deck; get a spec, a built .pptx, and a validation report
/spec Draft the JSON spec without building
/validate Check that a .pptx is genuinely right-to-left
/setup Check Python and python-pptx are ready
@hebrew-deck /build סקירה רבעונית לצוות הפיתוח, 8 שקפים

Styling and brand assets

Every /build starts by asking which brand assets you have. Select any combination, or press Esc for none:

Brand template A .pptx/.potx. The deck inherits its masters, layouts, fonts, colours and slide size — a 4:3 corporate template produces a 4:3 deck
Background image Full-bleed behind every slide
Logo Top-left on every slide, the one corner that cannot collide with a right-aligned RTL heading
Reference image for colours Palette sampled from a screenshot, brand slide or artwork
Written style guidelines Tone and density, in your own words

It asks every time, deliberately. An earlier version skipped the question when your prompt mentioned styling, but "in dark theme" says nothing about whether there is a corporate template or a logo that belongs on every slide — and a deck that ignores those has to be built again from scratch. Turn it off with hebrewPptx.askForStyling.

Section dividers keep their flat accent colour rather than the background image: a photo behind one buries the text it exists to carry. A missing asset file fails the build instead of being silently dropped.

Colours from a reference image are sampled, but background and text are pinned to whatever keeps text readable — a deck that matches the reference and cannot be read is worthless.

Commands

All under RTL PowerPoint in the palette: New Deck Spec, Build Deck from Spec, Validate Presentation, Check Python Setup, Open Skill Documentation. Build and Validate also appear on the right-click menu for .json and .pptx files.

Requirements

Python 3.9+ with python-pptx:

python3 -m pip install python-pptx      # macOS / Linux
py -3 -m pip install python-pptx        # Windows

The extension finds interpreters by absolute path as well as by name — a VS Code launched from Finder or the Dock does not inherit your shell's PATH, so a bare python3 there is often Apple's /usr/bin/python3, which has no third-party packages. Homebrew, /usr/local/bin, python.org framework builds, pyenv and the Python extension's selected interpreter are all checked. On Windows py -3 is preferred, because a bare python3 hits an app-execution alias that opens the Microsoft Store.

If it still cannot find yours, set hebrewPptx.pythonPath to the full path. RTL PowerPoint: Check Python Setup lists everything that was tried.

PowerPoint itself is not required to generate or validate decks.

Where the skill lives

Nowhere on your disk. The skill and the agent ship inside the extension and are registered declaratively through contributes.chatSkills and contributes.chatAgents. VS Code hands the model the skill's absolute path when it loads it.

That means:

  • Your repositories are never touched. No .github/skills/, no .github/prompts/, and copilot-instructions.md is never written or appended to.
  • Uninstalling is clean by construction. The registration disappears with the extension; there is nothing left to delete. Earlier versions relied on the vscode:uninstall hook, which VS Code declares in its package.json schema but no runtime code actually reads or spawns — so uninstall genuinely left files behind.
  • You are always on the current version. A copy written into a workspace or a user folder would be discovered at a higher priority than the shipped one and would silently override it, pinning you to whatever version wrote it.

Trade-off: because nothing is written to ~/.copilot/skills, the skill is visible to VS Code only — not to Copilot CLI or Claude Code.

Upgrading from 1.0.0

1.0.0 wrote the skill into every workspace it saw. On first run 2.0.0 removes those copies, using the install manifest as proof of authorship, and tells you what it removed. A repository that committed its own copy has no manifest entry and is never touched — but it will override the shipped skill, so /setup warns when it sees one. RTL PowerPoint: Clean Up Files from Earlier Versions… removes it after a modal confirmation.

Requires chat.useAgentSkills

If that setting is off, VS Code loads no agent skills at all, including contributed ones. /setup reports it.

Troubleshooting

"RTL PowerPoint Generator" is not in the agent dropdown. Reload the window first (Developer: Reload Window) — a newly installed extension's contributions do not appear until the window reloads. Then run RTL PowerPoint: Check Python Setup, which asks VS Code what it actually registered and prints the resolved paths.

Copilot ignores the RTL rules. Check the agent dropdown actually says RTL PowerPoint Generator. Selecting a different agent, or the default one, does not load the skill.

The deck builds but Hebrew renders left-aligned. A copy of the skill left in your workspace by version 1.0.0 overrides the one shipped with the extension, so you are running old scripts. /setup warns when it sees one; RTL PowerPoint: Clean Up Files from Earlier Versions… removes it.

Settings## Settings

Setting Default
hebrewPptx.deckFolder "" Where decks go when no folder is open
hebrewPptx.pythonPath "" Interpreter override
hebrewPptx.askForStyling true Ask about styling before building
hebrewPptx.defaultTheme navy light, dark, navy, warm
hebrewPptx.deckOutputFolder out Where .pptx files land

Building from source

cd extension
npm install
npm run compile      # syncs the skill from the repo, then compiles
npx @vscode/vsce package --no-dependencies

The skill has one source of truth: .github/skills/hebrew-rtl-pptx/ at the repository root. npm run compile copies it into assets/, so the extension payload cannot drift from the skill the repo tests.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft