--- name: marpione description: >- (๐Ÿ’›) Interactive Marp Inline Slide Deck Widget () and UI Sidecar (codename "marpione" / "marpi1") for Google Antigravity. Renders any Marp markdown deck (single-file or @import manifest) inline in chat with left/right slide cursors, color-coded chapter scrubber, speaker notes drawer, 1-click Copy PNG to clipboard, and Paste to Conversation via the Antigravity Sidecar bridge. Use when the user invokes /marpione or /marpi1, or asks to view, scrub, or paste Marp slides inline. compatibility: Antigravity, Gemini CLI, Claude metadata: version: "0.1.0" author: "Riccardo Carlesso" tags: "marpione, marpi1, marp, slides, presentation, antigravity_sidecar, generative_ui" --- # ๐ŸŽญ Marpione (`/marpione` & `/marpi1`) โ€” Inline Marp Slide Viewer & Sidecar **Marpione** (`marpi1`) turns any Marp presentation (single `.md` file or multi-file `@import "..."` manifest deck) into a rich, interactive **Generative UI inline widget (``)** and dockable **Antigravity Aux Pane Sidecar**. --- ## Bundled Files (`$SKILL_DIR/scripts/`) All code is 100% self-contained inside `$SKILL_DIR/scripts/`: - `$SKILL_DIR/scripts/marpione.py`: Zero-dependency Python 3 CLI & `` HTML builder (resolves `@import` manifests, renders high-DPI PNGs via `@marp-team/marp-cli` with SHA-256 caching in `/tmp/marpione_cache/`, encodes inline WebP/PNG data URLs, and injects the live Sidecar bridge config). - `$SKILL_DIR/scripts/main.mjs`: Node.js `sidecar_sdk` server providing both the Aux Pane UI (`/view.html`) and the local CORS bridge (`/api/bridge-config`, `/_sidecar/send-message`) so **๐Ÿ’ฌ Paste to Conversation** works on every machine (`derek`, macOS, Linux). - `$SKILL_DIR/scripts/sidecar.json`: Antigravity UI Sidecar manifest (`SIDECAR_UI_ENTRYPOINT_AUX_PANE`). - `$SKILL_DIR/scripts/install_marpione.sh`: One-command installer for any workstation (`derek`, macOS, Linux) that hardlinks the sidecar into `~/.gemini/config/sidecars/marpione/`, symlinks `marpione` and `marpi1` into `~/.local/bin/`, and links the skills into `~/.gemini/config/skills/`. --- ## Execution Runbook (When `/marpione` or `/marpi1` is Invoked) When the user asks to view a Marp presentation inline in chat (or invokes `/marpione` / `/marpi1`): ### Step 1: Register the HTML Artifact in the Conversation Brain Directory Use `write_file` (or `write_to_file`) to create the placeholder artifact `/brain//marpione-.html` with `ArtifactMetadata` (`UserFacing: true`, `RequestFeedback: false`). ### Step 2: Run `marpione.py` to Compile & Populate the Widget Run `$SKILL_DIR/scripts/marpione.py` against the target `.md` deck (passing `--session-id ` and `-o /brain//marpione-.html`): ```bash UV_INDEX_URL="https://pypi.org/simple" uv run --with pillow python3 "$SKILL_DIR/scripts/marpione.py" \ /path/to/slides.md \ --session-id "" \ -o "/brain//marpione-.html" ``` *(Note: If `uv` or `Pillow` is unavailable, plain `python3 "$SKILL_DIR/scripts/marpione.py" ...` works automatically using `cwebp` or PNG fallback.)* ### Step 3: Embed Inline in Chat (``) Include the `` tag (and optional Aux Pane sidecar pill) in your response: ```markdown [Marpione Slides ๐ŸŽญ](sidecar://marpione/view.html?file=/path/to/slides.md) ``` --- ## Widget Controls & Capabilities - **Left / Right Cursors (`โ—€` / `โ–ถ`)**: Floating overlay cursors on the slide stage + bottom bar (`โฎ`, `โ—€ Prev`, `1 / N`, `Next โ–ถ`, `โญ`) + keyboard shortcuts (`โ†` / `โ†’`, `Space`, `J` / `K`, `Home` / `End`). - **Chapter Scrubber & Slide Selector**: Color-coded interactive progress bar (`Part 1` Sky, `Part 2` Indigo, `Part 3` Amber, `Part 4` Emerald) and grouped `