
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
kitchensink4ppt
Advanced tools
Create and edit PowerPoint (.pptx) files with your AI assistant: diagrams from editable shapes, tables, charts and slide templates. Local MCP server for Claude Code, Codex CLI and other MCP clients.
Landing page · llms.txt (machine-readable capability manifest for agents and LLM crawlers)
Build and revise PowerPoint decks with your AI assistant, with diagrams made of shapes you can still edit.
Create and revise real PowerPoint presentations from Claude Code, Codex CLI, Copilot CLI or any other MCP client that runs local tools. KitchenSink4PPT connects your assistant to .pptx files, and its diagrams are built from native shapes and connectors, so the slide is still yours to change after the AI is done. Files are processed on your computer; the only thing that leaves it is what your AI app sends to its own provider. The Community edition is free under the AGPL. The Business edition adds a Windows installer, a signed update channel, a license your company can approve and support.
Works on: Windows, macOS and Linux for the file tools. Live PowerPoint features need Windows with PowerPoint. PDF and image export need PowerPoint on Windows or a supported LibreOffice.
Pick the route for your AI app. The commands go in PowerShell on Windows or a terminal on macOS and Linux, not into an AI chat. The package routes need Python 3.12 or newer.
Claude Desktop
Install uv, then quit and reopen Claude Desktop. Download the .mcpb file from KitchenSink4PPT releases. In Claude Desktop open Settings, then Extensions, then Advanced settings, then Install extension, and choose the file. The bundle fetches the Python package the first time it starts, so the first launch needs a network connection. Restart your session and check that the tools show as connected.
Claude Code or Codex CLI
Install uv, then run the line for your app and restart your session:
claude mcp add ppt -s user -- uvx kitchensink4ppt
codex mcp add ppt -- uvx kitchensink4ppt
Any other local MCP client
Use uvx as the command and kitchensink4ppt as its argument, or install the package and use kitchensink4ppt as the server command:
pip install kitchensink4ppt
Then follow your client's guide for adding a local MCP server. Installing the package on its own does not connect it to an AI app.
Business edition
Compare the editions on the pricing page. Already purchased? Your Windows installer and download link are in your license portal.
142 tools with every pack enabled; 25 in the lite surface.
What is available depends on the packs you enable and the applications installed. The full tool reference is below.
Need a license your company can approve and a setup someone supports? The Business edition pairs these tools with a Windows installer, a signed update channel and support under the Business terms. Update checks tell you when a covered release is available; nothing installs on its own. Compare the options on the pricing page. The Community edition stays free under the AGPL, including business use that meets its terms.
The tools run on your computer, and KitchenSink4AI receives no documents and no usage data from them. Your AI app may send prompts, file contents and tool results to its own provider under that app's settings and terms. Installing downloads packages, and the Community version check contacts PyPI unless you disable it; those requests carry connection details such as your network address and never your documents. Cloud folders and backups follow their own settings. The Privacy Policy covers the product, purchases and support records.
Not affiliated with, endorsed by, or sponsored by Microsoft Corporation. Microsoft and PowerPoint are trademarks of the Microsoft group of companies. Dual-licensed: AGPL-3.0, or a commercial license for organizations that need to ship it in closed products (details).
Feed svg_to_shapes any SVG and it compiles into a grouped tree of NATIVE
PowerPoint shapes: custom geometry, gradients, strokes, text, nested groups.
No rasterizing, no external APIs, no PowerPoint install needed to build.
Every shape keeps its own id, so afterward you edit the diagram
semantically: recolor node 7, resize the box, rewrite its label.
Connectors are GLUED. Move the node and the arrows follow, exactly as if a person had drawn the diagram by hand in PowerPoint. The human you hand the deck to can nudge any piece in seconds, with no regeneration round trip.
insert_shape (presets and freeform geometry), insert_connector
(straight, elbow, curved, arrowheads), group_shapes, align_shapes,
distribute_shapes, and set_z_order cover from-scratch diagram building;
export_slide_image renders a PNG so the agent can look at what it made and
fix it.
| Pack | Tools | ~Tokens | What is in it |
|---|---|---|---|
| lite core (always on) | 25 | 7.1k | anchored deck view, atomic batch edits, get/find/replace text (live-aware, SmartArt text included), slide insert/delete/duplicate/reorder, placeholder text, hyperlinks (set/remove/list with broken-link detection), info and enumeration, copy, snapshots, backups, diagnose, workflows, enable/disable_tools |
| graphics | 27 | 8.8k | shapes, glued connectors, SVG compiler, one-call diagram generators (timeline, org chart, matrix, cycle, comparison), images, video/audio embed, groups, align/distribute, z-order, text boxes, run formatting, bullets, format painter (copy_format/copy_position), native LaTeX equations |
| tables-charts | 19 | 5.3k | create table, bulk cells, merge/unmerge, row and column insert/delete, borders and fills, widths/heights, 74 built-in styles, CSV/JSON export/import, bar/line/pie/scatter/combo charts with editable data workbooks, chart formatting and data readback |
| design | 25 | 6.8k | create presentation FROM template, apply layouts, theme read AND write (colors, fonts), brand extract/apply, layout guardrail checks, slide size, hide/move slide, autofit report, slide and master/layout backgrounds, full master and layout editing (placeholders, decoration shapes, create_layout), accessibility audit and repair |
| assembly-export | 28 | 7.2k | speaker notes, sections, footers and slide numbers, PDF/PNG/handout export, engine detection, opens-clean validation, text extraction, cross-deck slide copy, deck merge and split, agenda slides, deck statistics, document properties, anonymize, slide-show setup and custom shows, slide transitions (fade/push/wipe/split/cut/random, millisecond durations, auto-advance) and bounded entrance animations (appear/fade/wipe, click builds, by-paragraph) |
| review-sweeps | 13 | 3.3k | modern threaded comments (add, replies, resolve, cascade delete, dual-system listing), whole-deck review report, structural deck-to-deck diff (compare_decks), and the deck-wide sweeps: font inventory/replace (incl. charts and phantom declarations), color remap and literal-to-theme unification, proofing language, whole-deck logo replace, compress/purge |
| com (Windows only) | 5 | 0.9k | PowerPoint status and zombie process check, plus editing the deck while it is OPEN in the user's PowerPoint: explicit save, scroll-to-slide, session status; eleven file tools route here automatically via live='auto' |
Full surface: about 39.4k tokens if you pin KS4P_MODE=full (numbers from
scripts/measure_surface.py, not hand-math).
v1.1 consolidated nine packs into six. The v1.0 names
transitions-animations, review, sweeps, and com-live still resolve
to their new homes in enable_tools, disable_tools, and KS4P_MODE, so
nothing that worked before stops working.
Structural table operations on the file itself (merging, inserting and deleting rows AND columns, per-edge borders) exist in no other PowerPoint MCP server; they were previously COM-or-nothing.
The server starts in lite mode: 25 tools, roughly 7.1k tokens of tool context, covering reading, slide CRUD, text, hyperlinks, batch editing, backups, and diagnostics. The other 117 tools are registered but disabled until asked for:
enable_tools(packs=["graphics"])
The tool list grows in place (the server emits tools/list_changed and the
client re-fetches), and the result reports the approximate token cost added
so the tradeoff is visible. disable_tools shrinks the surface again, and
get_workflows ships recipes that name the right pack for each job.
Environment pins for hosts and power users:
| Variable | Effect |
|---|---|
KS4P_MODE | startup surface: lite (default), full, or a pack list like graphics,com |
KS4P_PACK_POLICY | auto (default) or locked (enable_tools refuses; surface fixed at startup) |
KS4P_ALL_TOOLS | true loads every pack at startup; false or empty keeps lite. KS4P_MODE wins when set |
KS4P_LOCK_TOOLS | true fixes the surface at startup; false or empty leaves it adjustable. KS4P_PACK_POLICY wins when set |
KS4P_ALLOWED_ROOTS | opt-in path sandbox; tools refuse to touch files outside these roots |
KS4P_UPDATE_CHECK | off turns the update check off completely: no network call, no cache file (the older KS4P_NO_UPDATE_CHECK=1 still works) |
Update check. The server looks for a newer release on PyPI only when you
call diagnose, never at startup and never on a timer, at most one request
every seven days, capped at two seconds. The check is a single plain HTTPS
GET to pypi.org that sends nothing but the request itself. A failed check is
reported with its reason rather than hidden. Set KS4P_UPDATE_CHECK=off to turn it off
completely (the older KS4P_NO_UPDATE_CHECK=1 still works). The server never
downloads or installs anything.
The last two are the checkboxes the .mcpb bundle shows in Claude Desktop:
"Load every tool at startup" and "Lock the tool set at startup". Both take
true or false, treat an empty value as off, and refuse to start on
anything else rather than guessing. The server writes one line to stderr at
startup naming what decided the surface.
Tip: in Claude Desktop's Tool permissions, set the Read-only tools group to Always Allow: those tools cannot change anything, and it stops most permission prompts.
The same discipline as KitchenSink4Word, applied from day one:
prev.pptx and anchor.pptx under a hidden .ks4p-backups/
folder. manage_backups lists, restores (undoably), and purges;
create_snapshot makes DTG-stamped permanent keepers.{ok: false, error: {code, message, hint}}) and tell you the exact next call to make.KS4P_ALLOWED_ROOTS and every path in and
out is checked.Beta. The file layer (packages, slides, text, graphics, tables, charts,
comments, animations, themes, links, media, notes, masters, equations,
accessibility, deck assembly, sweeps, export) is covered by a 1,251-test
suite, including validation that generated decks open clean in real
PowerPoint, and the server passes a raw stdio protocol round-trip suite.
Live editing of decks open in PowerPoint runs every call through one
process-wide lock with dialog detection at the window layer and bounded
timeouts, and ships with its own COM gate scripts (tests/com_gates/).
It has not yet had a long field life; treat important decks with the
respect the backup tools make easy, and expect fast point releases.
Before filing:
ask your AI to run diagnose and paste the output here; it is designed
to be safe to share.
KitchenSink4PPT is dual-licensed:
AGPL-3.0 (open source). Free for anyone (individuals, academics, and businesses) for any use that complies with the AGPL's terms. Those terms include sharing source, including your modifications, when you distribute the software or make it available over a network.
Commercial license. For organizations that want to build KitchenSink4PPT into their own products or services without the AGPL's source-sharing obligations. Contact licensing@kitchensink4.ai.
Copyright (c) 2026 Alvut Consulting, LLC. KitchenSink4AI is a product line of Alvut Consulting, LLC.
Not affiliated with, endorsed by, or sponsored by Microsoft Corporation. Microsoft and PowerPoint are trademarks of the Microsoft group of companies.
Sibling of KitchenSink4Word (the same engineering for .docx; site).
FAQs
Create and edit PowerPoint (.pptx) files with your AI assistant: diagrams from editable shapes, tables, charts and slide templates. Local MCP server for Claude Code, Codex CLI and other MCP clients.
We found that kitchensink4ppt demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.