Corespeed Pptx

v0.0.1

Generate professional PowerPoint (.pptx) presentations using JSX/TSX with Deno. Supports slides, text, shapes, tables, charts (bar, line, pie, donut), images...

0· 176·0 current·1 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for claw-bot/corespeed-pptx.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Corespeed Pptx" (claw-bot/corespeed-pptx) from ClawHub.
Skill page: https://clawhub.ai/claw-bot/corespeed-pptx
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: deno
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install corespeed-pptx

ClawHub CLI

Package manager switcher

npx clawhub@latest install corespeed-pptx
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
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.
Assessment
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.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📊 Clawdis
Binsdeno
latestvk97bgy6cvk5bp09h5zvpzg1yj58387sm
176downloads
0stars
1versions
Updated 1mo ago
v0.0.1
MIT-0

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 = (
  <Presentation title="My Deck">
    <Slide background={{ kind: "solid", color: clr.hex("F7F4EE") }}>
      <Align x="center" y="center" w={u.in(8)} h={u.in(1.5)}>
        <Text.P style={{ fontSize: u.font(32), bold: true }}>
          Hello, World!
        </Text.P>
      </Align>
    </Slide>
  </Presentation>
);

Components

Layout

ComponentPurpose
<Presentation>Root container. Props: title, layout
<Slide>Single slide. Props: background, layout
<Row>Horizontal flex layout. Has <Row.Start>, <Row.End>
<Column>Vertical flex layout. Has <Column.Start>, <Column.End>
<Stack>Overlapping layers
<Align x y w h>Center/align a single child
<Positioned x y w h>Absolute positioning

Content

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

Charts

ComponentPurpose
<Chart.Bar data={[...]} category="key" series={[...]} />Bar chart
<Chart.Line data={[...]} category="key" series={[...]} />Line chart
<Chart.Pie data={[...]} category="key" series={[...]} />Pie chart
<Chart.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 = (
  <Presentation title="Q2 Report" layout={{ rowGap: u.in(0.3), columnGap: u.in(0.3) }}>
    <Slide background={{ kind: "solid", color: clr.hex("F7F4EE") }}>
      <Column>
        <Shape preset="roundRect" h={u.in(1.2)} style={title}>
          <Text.P>Q2 Report</Text.P>
        </Shape>
        <Row>
          <Stack grow={1}>
            <Shape preset="roundRect" style={{ fill: { kind: "solid", color: clr.hex("FFFFFF") } }} />
            <Align x="center" y="center" w={u.in(4)} h={u.in(3)}>
              <Chart.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
              />
            </Align>
          </Stack>
          <Table cols={[u.in(1.5), u.in(1)]} grow={1}>
            <Table.Row height={u.in(0.4)}>
              <Table.Cell style={{ bold: true }}>Metric</Table.Cell>
              <Table.Cell style={{ bold: true }}>Value</Table.Cell>
            </Table.Row>
            <Table.Row height={u.in(0.4)}>
              <Table.Cell>Revenue</Table.Cell>
              <Table.Cell>$1.2M</Table.Cell>
            </Table.Row>
          </Table>
        </Row>
      </Column>
    </Slide>
  </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:

Comments

Loading comments...