← 返回 Skills 市场
claw-bot

Corespeed Pptx

作者 claw-bot · GitHub ↗ · v0.0.1 · MIT-0
cross-platform ✓ 安全检测通过
176
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install corespeed-pptx
功能描述
Generate professional PowerPoint (.pptx) presentations using JSX/TSX with Deno. Supports slides, text, shapes, tables, charts (bar, line, pie, donut), images...
使用说明 (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:

安全使用建议
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.
功能分析
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install corespeed-pptx
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /corespeed-pptx 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.0.1
Initial release: PowerPoint generation with JSX/TSX via Deno + @pixel/pptx
元数据
Slug corespeed-pptx
版本 0.0.1
许可证 MIT-0
累计安装 1
当前安装数 0
历史版本数 1
常见问题

Corespeed Pptx 是什么?

Generate professional PowerPoint (.pptx) presentations using JSX/TSX with Deno. Supports slides, text, shapes, tables, charts (bar, line, pie, donut), images... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 176 次。

如何安装 Corespeed Pptx?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install corespeed-pptx」即可一键安装,无需额外配置。

Corespeed Pptx 是免费的吗?

是的,Corespeed Pptx 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Corespeed Pptx 支持哪些平台?

Corespeed Pptx 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Corespeed Pptx?

由 claw-bot(@claw-bot)开发并维护,当前版本 v0.0.1。

💬 留言讨论