← Back to Skills Marketplace
claw-bot

Corespeed Pptx

by claw-bot · GitHub ↗ · v0.0.1 · MIT-0
cross-platform ✓ Security Clean
176
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install corespeed-pptx
Description
Generate professional PowerPoint (.pptx) presentations using JSX/TSX with Deno. Supports slides, text, shapes, tables, charts (bar, line, pie, donut), images...
README (SKILL.md)

Corespeed PPTX — PowerPoint Generation with JSX

Generate professional .pptx files using TypeScript JSX via @pixel/pptx.

Workflow

  1. Write a .tsx file that exports a deck variable
  2. Run the generator to produce the .pptx

Usage

deno run --allow-read --allow-write --config {baseDir}/scripts/deno.json {baseDir}/scripts/generate.ts slides.tsx output.pptx [--json]
  • First arg: path to your .tsx slide file (must export const deck = ...)
  • Second arg: output .pptx filename
  • --json — structured JSON output for agent consumption

Writing Slides

Create a .tsx file. It must export a deck variable:

/** @jsxImportSource @pixel/pptx */
import { Align, clr, Presentation, Slide, Text, u } from "@pixel/pptx";

export const deck = (
  \x3CPresentation title="My Deck">
    \x3CSlide background={{ kind: "solid", color: clr.hex("F7F4EE") }}>
      \x3CAlign x="center" y="center" w={u.in(8)} h={u.in(1.5)}>
        \x3CText.P style={{ fontSize: u.font(32), bold: true }}>
          Hello, World!
        \x3C/Text.P>
      \x3C/Align>
    \x3C/Slide>
  \x3C/Presentation>
);

Components

Layout

Component Purpose
\x3CPresentation> Root container. Props: title, layout
\x3CSlide> Single slide. Props: background, layout
\x3CRow> Horizontal flex layout. Has \x3CRow.Start>, \x3CRow.End>
\x3CColumn> Vertical flex layout. Has \x3CColumn.Start>, \x3CColumn.End>
\x3CStack> Overlapping layers
\x3CAlign x y w h> Center/align a single child
\x3CPositioned x y w h> Absolute positioning

Content

Component Purpose
\x3CText> Multi-paragraph text body. Props: gap, style
\x3CText.P> Single paragraph
\x3CText.Span> Inline text run
\x3CText.Bold>, \x3CText.Italic>, \x3CText.Underline> Inline formatting
\x3CText.Link href="..."> Hyperlink
\x3CShape preset="..."> Shape: rect, roundRect, ellipse, etc.
\x3CImage src={bytes} w={...} h={...} /> Embed image (Uint8Array)
\x3CTable cols=[...]> Table with \x3CTable.Row> and \x3CTable.Cell>

Charts

Component Purpose
\x3CChart.Bar data={[...]} category="key" series={[...]} /> Bar chart
\x3CChart.Line data={[...]} category="key" series={[...]} /> Line chart
\x3CChart.Pie data={[...]} category="key" series={[...]} /> Pie chart
\x3CChart.Donut data={[...]} category="key" series={[...]} /> Donut chart

Units & Colors

import { u, clr } from "@pixel/pptx";

u.in(1)       // inches
u.cm(2.5)     // centimeters
u.pt(12)      // points
u.pct(50)     // percentage
u.font(24)    // font size (hundredths of a point)

clr.hex("1F4E79")  // hex color (no #)

Styling

Style props are plain objects. Use style on any component:

const style = {
  fill: { kind: "solid", color: clr.hex("1F4E79") },
  fontSize: u.font(24),
  fontColor: clr.hex("FFFFFF"),
  bold: true,
  italic: false,
  align: "center",
  verticalAlign: "middle",
  padding: u.in(0.2),
  shadow: {
    color: clr.hex("000000"),
    blur: u.emu(12000),
    distance: u.emu(4000),
    angle: 50,
    alpha: u.pct(18),
  },
  bullet: { kind: "char", char: "•" },
};

Backgrounds support solid, linear-gradient, and image.

Example: Multi-Slide Deck

/** @jsxImportSource @pixel/pptx */
import {
  Align, Chart, clr, Column, Presentation, Row, Shape, Slide,
  Stack, Table, Text, u, type Style,
} from "@pixel/pptx";

const title: Style = {
  fill: { kind: "solid", color: clr.hex("1F4E79") },
  fontSize: u.font(28), fontColor: clr.hex("FFFFFF"), bold: true,
  verticalAlign: "middle", padding: u.in(0.2),
};

export const deck = (
  \x3CPresentation title="Q2 Report" layout={{ rowGap: u.in(0.3), columnGap: u.in(0.3) }}>
    \x3CSlide background={{ kind: "solid", color: clr.hex("F7F4EE") }}>
      \x3CColumn>
        \x3CShape preset="roundRect" h={u.in(1.2)} style={title}>
          \x3CText.P>Q2 Report\x3C/Text.P>
        \x3C/Shape>
        \x3CRow>
          \x3CStack grow={1}>
            \x3CShape preset="roundRect" style={{ fill: { kind: "solid", color: clr.hex("FFFFFF") } }} />
            \x3CAlign x="center" y="center" w={u.in(4)} h={u.in(3)}>
              \x3CChart.Bar
                data={[
                  { q: "Q1", rev: 8 }, { q: "Q2", rev: 12 },
                  { q: "Q3", rev: 10 }, { q: "Q4", rev: 15 },
                ]}
                category="q"
                series={[{ name: "Revenue", value: "rev", color: clr.hex("2678B4") }]}
                labels
              />
            \x3C/Align>
          \x3C/Stack>
          \x3CTable cols={[u.in(1.5), u.in(1)]} grow={1}>
            \x3CTable.Row height={u.in(0.4)}>
              \x3CTable.Cell style={{ bold: true }}>Metric\x3C/Table.Cell>
              \x3CTable.Cell style={{ bold: true }}>Value\x3C/Table.Cell>
            \x3C/Table.Row>
            \x3CTable.Row height={u.in(0.4)}>
              \x3CTable.Cell>Revenue\x3C/Table.Cell>
              \x3CTable.Cell>$1.2M\x3C/Table.Cell>
            \x3C/Table.Row>
          \x3C/Table>
        \x3C/Row>
      \x3C/Column>
    \x3C/Slide>
  \x3C/Presentation>
);

Notes

  • No manual setup required. Deno auto-downloads @pixel/pptx from JSR on first run.
  • The .tsx file must export const deck = ... (the JSX Presentation element).
  • Use --json for structured output: {"ok": true, "file": "...", "size": 1234}
  • Output opens in PowerPoint, Google Slides, LibreOffice Impress, and Keynote.
  • Use timestamps in filenames: yyyy-mm-dd-hh-mm-ss-name.pptx.

Support

Built by Corespeed. If you need help or run into issues:

Usage Guidance
This skill appears to do what it says, but it runs user-supplied .tsx code under Deno with filesystem permissions and may fetch remote dependencies. Before installing/use: (1) Do not run untrusted .tsx files — inspect slide files for unexpected code. (2) Prefer installing Deno manually from https://deno.land rather than piping remote scripts, or at least review the install script. (3) Run the generator with least-privilege flags (e.g., --allow-read=/path/to/slides --allow-write=/path/to/output.pptx) rather than broad --allow-read/--allow-write, and avoid enabling network unless necessary or run in an isolated environment. (4) If you will allow autonomous agent invocation, be aware the agent could invoke the skill and thereby execute code that reads files — restrict agent scope or require user confirmation when running this skill if that is a concern.
Capability Analysis
Type: OpenClaw Skill Name: corespeed-pptx Version: 0.0.1 The bundle provides a legitimate utility for generating PowerPoint presentations from JSX/TSX templates using Deno and the @pixel/pptx library. It includes a standard Deno installation command (curl|sh) and a generation script (scripts/generate.ts) that requires file system access to read slide definitions and write the output. No evidence of malicious intent, data exfiltration, or harmful prompt injection was found; the requested permissions and execution patterns are consistent with the tool's stated purpose.
Capability Assessment
Purpose & Capability
The name/description (Generate .pptx from JSX/TSX using Deno) matches the actual artifacts: a Deno wrapper (scripts/generate.ts), a deno.json mapping @pixel/pptx, and SKILL.md usage. Requiring the deno binary is appropriate.
Instruction Scope
The runtime instructions and generate.ts dynamically import a user-provided file via file:// and run it under Deno with --allow-read and --allow-write. That is necessary to evaluate JSX/TSX slides, but it means arbitrary code in the slide file will execute with filesystem permissions (can read/write local files). Also Deno will auto-download remote deps (jsr:@pixel/pptx), so remote packages can be fetched and executed.
Install Mechanism
There is no separate install manifest, but SKILL.md includes an install step that pipes https://deno.land/install.sh to sh. The URL is the official Deno domain (well-known), but curl | sh is higher-risk than a manual install — it downloads and executes remote shell script. Deno itself may fetch @pixel/pptx from the JSR registry at runtime.
Credentials
The skill only requires the deno binary and requests no credentials, config paths, or secrets. This is proportional to its stated purpose.
Persistence & Privilege
always is false (no forced persistence). The default autonomous invocation is allowed; combined with the fact the skill runs Deno to execute arbitrary local modules with read/write, an agent invoking it could run code that reads local files. Autonomous invocation alone is normal, but be aware of the increased blast radius because of the execute-read/write behavior.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install corespeed-pptx
  3. After installation, invoke the skill by name or use /corespeed-pptx
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.0.1
Initial release: PowerPoint generation with JSX/TSX via Deno + @pixel/pptx
Metadata
Slug corespeed-pptx
Version 0.0.1
License MIT-0
All-time Installs 1
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Corespeed Pptx?

Generate professional PowerPoint (.pptx) presentations using JSX/TSX with Deno. Supports slides, text, shapes, tables, charts (bar, line, pie, donut), images... It is an AI Agent Skill for Claude Code / OpenClaw, with 176 downloads so far.

How do I install Corespeed Pptx?

Run "/install corespeed-pptx" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Corespeed Pptx free?

Yes, Corespeed Pptx is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Corespeed Pptx support?

Corespeed Pptx is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Corespeed Pptx?

It is built and maintained by claw-bot (@claw-bot); the current version is v0.0.1.

💬 Comments