Codumentor logo Codumentor

PPTX Editor Plugin

The PPTX Editor plugin provides PowerPoint presentation editing (.pptx / .pptm) through the same dynamic tool-injection pattern as the Document Editor. The agent always has a pptx_open tool; opening a presentation injects the editing tools, which are removed again on close. Editing happens in an isolated python-pptx worker subprocess designed to run inside the Workspace Isolation sandbox.

Configuration

plugins:
  - module: codumentor.plugins.pptx_editor
    class: PptxEditorPlugin
    args:
      enabled: true
      target_agents: "main"  # "main", "subagent", or "all" (default: "main")

Parameters

Tool Reference

Always Available

ToolDescription
pptx_openOpen a .pptx/.pptm presentation (in place or as a copy); macros in .pptm files are preserved. Triggers injection of the editing tools.

Injected When a Presentation Is Open

ToolDescription
pptx_read_outlinePer-slide outline: index, title, layout, shape count, notes flag
pptx_read_slideRead one slide: shapes (id, type, position, text, tables) and notes
pptx_searchRegex search across slide text and notes (up to 200 matches)
pptx_write_textReplace a shape's text (preserves run formatting by default)
pptx_write_notesWrite/replace a slide's speaker notes
pptx_replace_textFind/replace across slide text and (optionally) notes
pptx_list_layoutsList slide layouts on the active master
pptx_add_slide / pptx_delete_slideAdd or remove a slide
pptx_move_slide / pptx_duplicate_slideReorder or deep-copy a slide
pptx_add_textboxAdd a textbox at a given position/size
pptx_add_imageEmbed an image from a repo path or base64 blob
pptx_set_shape_positionUpdate a shape's left/top/width/height
pptx_delete_shapeRemove a shape by id
pptx_pythonSandboxed python-pptx access for advanced edits
pptx_saveSave the presentation (emits a UI download card)
pptx_closeClose the presentation (optionally saving first)

How It Works

An onPromptAssemble hook (priority 10) tracks which sessions have an open presentation. Only pptx_open is visible until a presentation is opened; the editing tools are injected on the next turn and removed again after pptx_close — the same pattern documented for the Document Editor.

Saved presentations are downloadable through the UI (a plugin.pptx_editor.file_saved event renders a download card); the download endpoint is provided by the File Links plugin.

Notes