slidemind
v0.1.5
Published
Connect Claude Code, Codex & opencode to the slidemind PowerPoint add-in — let your coding agent build and edit native, on-brand PowerPoint decks against your active corporate design, from the terminal.
Maintainers
Readme
slidemind
Connect Claude Code, Codex, and opencode to the slidemind PowerPoint add-in — so your coding agent (or you, from the terminal) can build and edit native, on-brand PowerPoint decks against your active corporate design, without leaving the editor.
Preview. slidemind is in early access while the PowerPoint add-in makes its way to the Microsoft Office Store. The CLI is functional and published, but expect rough edges and breaking changes between releases. You need access to the slidemind add-in to use it.
slidemind is a thin client. The corporate design, the layout palette, and the native .pptx render all live in the slidemind PowerPoint add-in — this package is the bridge that lets a coding agent drive it. It ships two things:
- A CLI + MCP server that talks to a running PowerPoint over the add-in's cloud bridge — render native
.pptx, push slides straight into an open window, and search the active design's brand engine for imagery. - An installable skill for Claude Code, Codex, and opencode — so the agent in your editor knows how to plan, compose, and review slides on-brand from the design bundle the add-in serves.
Both drive the same add-in bridge, so an agent and a human end up producing the same artefact: native PowerPoint slides on the active corporate design.
Contents
- Requirements
- Install
- Connect to PowerPoint
- Quick start
- Using it with a coding agent
- Command reference
- Pushing slides into an open PowerPoint
- Multiple environments (for slidemind developers)
- Updating
- Troubleshooting
- Uninstall
- How it works
Requirements
| | |
|---|---|
| Node.js | 18 or newer (node --version). Ships with npm. |
| slidemind PowerPoint add-in | Installed in PowerPoint, with a presentation open and a corporate design active. The design and the .pptx render live here — the CLI cannot work without it. |
| PowerPoint | Microsoft 365, PowerPoint 2021/2019/2016, or PowerPoint on the web — anything that loads Office Add-ins. |
| OS | Windows, macOS, or Linux. See per-OS notes below. |
The CLI reaches PowerPoint through the add-in's cloud relay (no localhost, no certificates). Because of that, the machine running the CLI does not have to be the same machine running PowerPoint — pair once and commands route to wherever your add-in is registered.
Commands that read the design, render, push, or reach an engine (download-bundle, build-pptx, push, ls engines, search, insert-slide, add-slide) require an open PowerPoint host with the add-in and an active corporate design. Only new, build, and review (HTML preview) work fully offline.
Install
The package is published to public npm as slidemind. The same two commands work on every platform:
npm install -g slidemind
slidemind init --for all # register the MCP server + skill into Claude Code / Codex / opencodeThen confirm it's on your PATH:
slidemind --versionslidemind init --for <claude|codex|opencode|all|none> scopes the harness deployment. Use none to install the CLI only.
Heads-up — first install downloads a headless Chrome. slidemind renders decks by capturing slides with a local headless browser (then assembling the
.pptxserver-side), sonpm install -g slidemindpulls a pinned Chromium (~150–300 MB) viapuppeteer's postinstall. Behind a corporate proxy/firewall this download can fail; setHTTPS_PROXY(and, if needed,PUPPETEER_DOWNLOAD_BASE_URL) so npm can reach it, or pointPUPPETEER_EXECUTABLE_PATHat an existing Chrome/Edge. The browser lives in puppeteer's own cache, not the slidemind package.
Windows
slidemind runs on native Windows (PowerShell, Windows Terminal, or cmd) — no WSL or Git Bash required.
Install Node 18+ from nodejs.org (the LTS installer adds Node + npm to your
PATHand ticks the right boxes by default).Open Windows Terminal or PowerShell and run:
npm install -g slidemind slidemind init --for all slidemind --version
The global install lands in %APPDATA%\npm, which the Node installer puts on your PATH. Your pairing credentials are stored under %APPDATA%\slidemind\.
If PowerShell blocks the command with an execution-policy error, that's the
.ps1shim npm generates — runslidemind.cmd <command>instead, or use a cmd.exe tab in Windows Terminal. (To permanently allow local scripts — downloaded ones still need a signature:Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.)
macOS
Install Node 18+ — the nodejs.org installer, or
brew install node.In Terminal (or iTerm):
npm install -g slidemind slidemind init --for all slidemind --version
If npm install -g fails with EACCES, you've hit a permissions issue with a system-owned npm prefix — the cleanest fix is a user-owned Node from Homebrew or nvm (avoid sudo npm). Credentials are stored under ~/.config/slidemind/.
Linux
The CLI runs fine on Linux. There's no PowerPoint desktop on Linux, so you'll connect to a PowerPoint host elsewhere — a Windows/Mac desktop, or PowerPoint on the web — over the cloud relay.
npm install -g slidemind
slidemind init --for all
slidemind --versionIf a system Node gives you EACCES on global installs, use nvm or set a user-writable npm prefix rather than sudo. Credentials honor XDG_CONFIG_HOME (default ~/.config/slidemind/).
Without a global install (npx)
Run any command without installing globally:
npx slidemind <command>Connect to PowerPoint
The CLI talks to PowerPoint through the add-in's cloud relay, so you pair once per machine.
In PowerPoint, open the slidemind add-in task pane and click "Connect CLI".
It shows a one-time command. Copy and run it:
slidemind pair <code>Verify the link:
slidemind whoami # lists the paired environment(s) slidemind presentations # lists open PowerPoint windows the add-in sees
If slidemind presentations is empty, the add-in isn't reachable — open PowerPoint with the slidemind add-in and an active corporate design, then retry.
slidemind logout # unpair this machineQuick start
slidemind new my-deck # scaffold ./decks/my-deck/
slidemind build my-deck # build a self-contained HTML preview (offline)
slidemind review my-deck # spatial preview review: leave comments / approve in the browser (offline)
slidemind build-pptx my-deck # render a native .pptx via the add-in (host required)
slidemind push my-deck # stream slides straight into an open PowerPoint (host required)
slidemind ls engines # list the active design's image + slide engines (host required)
slidemind search "shield" # search an engine for imagery or slides (host required)
slidemind insert-slide ... # reuse a found slide live into an open PowerPoint (host required)
slidemind add-slide ... # fold a found slide into a deck as a native .pptx (host required)Decks live under ./decks/ in your current working directory — one folder per deck: decks/<name>/slides/*.jsx. Override the location with SLIDEMIND_DECKS=/abs/path.
You don't hand-write OOXML or hardcode brand colors — slides are small .jsx files that compose the layouts and tokens the add-in serves. The render happens server-side in PowerPoint; slidemind build gives you a quick HTML preview while you iterate.
Using it with a coding agent
slidemind init installs a skill into your coding agent. After that, just ask:
"Make me a 5-slide deck introducing our Q3 roadmap."
Your agent (Claude Code, Codex, or opencode) auto-discovers the slidemind-create-slides skill, reads the active corporate design's rules from the add-in, writes the slide files, and renders + pushes them into PowerPoint for you. The skill owns the whole plan → create → edit → render workflow — there are no slash commands to memorize.
A second skill, slidemind-search, owns engine discovery and slide reuse: ask "is there a slide on X in our library?" or "drop in our pricing slide" and the agent searches the brand's image/slide engines, then either inserts a found slide live into PowerPoint or folds it into a deck as a native .pptx.
The MCP server registered by slidemind init gives the agent direct tools to list open presentations, push decks, list engines, search for imagery or slides, view a result, insert a slide live, fold a slide into a deck, and download brand imagery.
Command reference
slidemind new <name> Scaffold ./decks/<name>/
slidemind build <deck> Build a self-contained HTML preview (offline)
slidemind review <deck> Spatial preview review; blocks for approve/comments (offline)
slidemind build-pptx <deck> Render a native .pptx via the add-in (host required)
slidemind push <deck> Build + push slides into an open PowerPoint (host required)
slidemind ls engines List the live engine catalog (image + slide) (host required)
slidemind search "<query>" Search an engine for imagery or slides (host required)
--engine <id> --intent auto|content|visual --top <N>
slidemind insert-slide [opts] Insert reused slide results live into a window (host required)
--search <id> --pick <n[,n,...]> --to <presId> [--at <N>]
slidemind add-slide [opts] Fold reused slide results into a deck as native .pptx (host required)
--search <id> --pick <n[,n,...]> --deck <deck> [--to <presId>] [--at <N>]
slidemind download-bundle [deck] Materialize the active corporate design locally (host required)
slidemind presentations List PowerPoint windows registered with the add-in
slidemind pair <code> Pair with an add-in (copy the code from "Connect CLI")
slidemind whoami Show paired environment(s)
slidemind use <url|env> Set the default environment
slidemind logout [url|env] Unpair an environment (--all unpairs every one)
slidemind init --for <target> Install the skill + MCP server into a harness (clears the bundle cache)
slidemind uninstall --for <t> Remove a previously-installed skill (clears the bundle cache)
slidemind update [--for <t>] Fetch the latest release and redeploy
slidemind --help Full usage
slidemind --version Print version<target> is claude | codex | opencode | all | none. <deck> resolves as: absolute path → ./<arg> if it exists → ./decks/<arg>.
Export formats at a glance
| Command | Output | When to use |
|---|---|---|
| slidemind build <deck> | decks/<deck>/presentation.html | Self-contained HTML preview in a browser (offline) |
| slidemind build-pptx <deck> | decks/<deck>/<deck>.pptx | An editable native PowerPoint file |
| slidemind push <deck> | (streamed via the add-in) | Live insertion into an open PowerPoint window |
Reviewing before you export
slidemind review <deck> opens the HTML preview in your browser with a comment overlay and waits until you decide:
- Click any element on a slide to leave a comment pinned to that spot. Each comment is anchored to the exact slide source (
slides/<file>.jsx:line:col), so your agent knows precisely what to change. - Approve & continue when it looks right — the command unblocks and your agent proceeds to the export you asked for (
push/build-pptx). - Send comments to hand your notes back to the agent; it edits the cited files and re-runs
review, where your previous notes appear as faded "ghost" pins so you can confirm each was addressed.
It runs entirely offline (no open PowerPoint needed) — review happens before the native render. There's no copy-paste: the moment you approve or send comments in the browser, your coding agent picks up where it left off.
Pushing slides into an open PowerPoint
With PowerPoint open and the slidemind add-in loaded, stream a deck's slides straight into the running window — no .pptx written to disk:
slidemind presentations # list windows (presId, env, title)
slidemind push my-deck # append after the current slides
slidemind push my-deck --to <presId> # required if more than one window is open
slidemind push my-deck --at 0 # insert after slide 1 (0-based index)
slidemind push my-deck --replace # delete every existing slide first (destructive — confirm!)
slidemind push my-deck --slides 02,05,07 # push only a subset of source slidesMultiple environments (for slidemind developers)
If you run the add-in against more than one backend (local / dev / prod), the CLI is multi-environment: pair once per backend and every command automatically discovers your open PowerPoint across all of them, tags each window with its environment, and routes to the right one — no manual switching.
slidemind pair <local-code> --label local
slidemind pair <dev-code> --label dev
slidemind whoami # lists every paired environment (* = default)
slidemind presentations # windows from all environments, each tagged [env]
slidemind push my-deck --to <presId> # routed to whichever environment owns that window
slidemind use dev # set the default environment
slidemind logout dev # unpair one (or --all to unpair every one)
slidemind --backend local presentations # scope a single command to one environmentEach "Connect CLI" code carries its own backend and session token, so pairing is per-environment and routing is automatic. A normal user just pairs one.
Updating
slidemind update # = npm install -g slidemind@latest, then redeploy the skill
slidemind update --ref 0.1.0 # pin a specific version
slidemind update --for codex # redeploy into one harness (--for none to skip)Equivalently: npm install -g slidemind@latest && slidemind init --for all.
Troubleshooting
| Symptom | Fix |
|---|---|
| slidemind: command not found (or not recognized) | The npm global bin isn't on your PATH. Run npm prefix -g and add its bin (Windows: %APPDATA%\npm) to PATH, or use npx slidemind. |
| PowerShell: running scripts is disabled | npm's .ps1 shim hit the execution policy. Use slidemind.cmd <command>, or Set-ExecutionPolicy -Scope CurrentUser RemoteSigned. |
| slidemind presentations is empty | The add-in isn't reachable. Open PowerPoint with the slidemind add-in and an active corporate design; click the task pane once to re-register, then retry. |
| Not paired | Run slidemind pair <code> using the code from the add-in's "Connect CLI". Codes are one-time and expire — generate a fresh one if it's stale. |
| build-pptx / push / search error about no host | These require an open PowerPoint host with an active corporate design. slidemind build (HTML) is the only fully-offline preview. |
| EACCES on npm install -g (macOS/Linux) | Don't sudo npm. Use a user-owned Node via nvm or Homebrew, or set a user-writable npm prefix. |
Uninstall
slidemind uninstall --for all # remove the skill + MCP registration from each harness
npm uninstall -g slidemind # remove the CLIHow it works
The design truth lives in the add-in, not the CLI:
- The
.pptxis rendered server-side over the bridge — there's no local exporter. - The corporate design is fetched as a bundle (
slidemind download-bundle) — tokens, layout palette, brand rules, assets — keyed to the active presentation. - Brand imagery comes from the add-in's engine (
slidemind search→ the agent downloads a result into the deck'sassets/).
So an open PowerPoint host with the slidemind add-in and an active corporate design is required for everything except the offline HTML preview. The CLI ships no brand and no exporter of its own — it's deliberately brand-agnostic, working against whatever corporate design the add-in has loaded.
slidemind is published by statworx. Source lives in a private repository; the npm tarball is the install artifact. License: UNLICENSED (publicly installable, proprietary).
