Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

officecli-pptx

v1.0.2

Use this skill any time a .pptx file is involved -- as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, p...

0· 115·1 current·1 all-time
by瓦砾@iceyliu

Install

OpenClaw Prompt Flow

Install with OpenClaw

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

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "officecli-pptx" (iceyliu/officecli-pptx) from ClawHub.
Skill page: https://clawhub.ai/iceyliu/officecli-pptx
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
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 officecli-pptx

ClawHub CLI

Package manager switcher

npx clawhub@latest install officecli-pptx
Security Scan
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (pptx/slide handling) aligns with the SKILL.md contents: every command shown (view, get, set, add, remove, query, render) operates on .pptx files and local paths, and the included creating.md and editing.md are coherent with the stated purpose.
!
Instruction Scope
SKILL.md explicitly instructs running shell commands that fetch and execute a remote install script (curl https://raw.githubusercontent.com/iOfficeAI/OfficeCli/main/install.sh && bash ...). That step executes arbitrary code from a remote repo at runtime. Aside from installation, the instructions operate on local files (read/modify .pptx, replace images, preview HTML), which is expected, but the installer/upgrade steps expand scope to full network-downloaded code execution.
!
Install Mechanism
Although the registry has no install spec, the runtime instructions implement an install/upgrade path by curling and executing a script from raw.githubusercontent.com. Fetch-and-execute of a remote installer is a high-risk install mechanism (supply-chain risk). Using GitHub raw is better than an unknown IP, but the script contents and their side effects are not included in the skill bundle and are therefore opaque.
Credentials
The skill does not declare or require any environment variables, credentials, or config paths. The commands shown do not request unrelated secrets. However, network access is required at runtime (to GitHub API and raw.githubusercontent.com), which is not declared in registry metadata — this is operational but not a credentials mismatch.
Persistence & Privilege
always:false and normal autonomous invocation apply. The SKILL.md will install a local binary (officecli) when absent, creating a persistent program on the host; this is expected for a CLI-driven skill but increases the attack surface because the skill-guided installer executes arbitrary remote code.
What to consider before installing
This skill's behavior matches its description, but its runtime instructions tell you to download and run an installer script from raw.githubusercontent.com and to auto-upgrade via the GitHub API. That is the primary risk: executing a remote install script can run arbitrary code on your machine. Before installing or allowing the agent to run this skill, consider: - Inspect the installer: open https://raw.githubusercontent.com/iOfficeAI/OfficeCli/main/install.sh (and the repo) and review the script and release artifacts for malicious or unexpected behavior. Do not run it blind. - Prefer manual / vetted install: if you trust the tool, download a release from an authenticated source and verify checksums/signatures; or install officecli yourself in a sandboxed environment and deny the skill permission to auto-install. - Minimize autonomy: if the agent can run shell commands automatically, restrict that capability or require explicit approval before executing installs. - Test in isolation: run the installer in a VM/container to observe what files, services, or network connections it creates. - If you cannot verify the upstream project (iOfficeAI/OfficeCli) or its installer, decline to install and use an alternative tool you trust. In short: the skill itself is coherent for editing .pptx files, but the in-band install/upgrade instruction that fetches and executes a remote script is the reason to proceed cautiously.

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

latestvk972fjhjp2zwzbzdb761103b85841nm3
115downloads
0stars
3versions
Updated 3w ago
v1.0.2
MIT-0

OfficeCLI PPTX Skill

BEFORE YOU START (CRITICAL)

Every time before using officecli, run this check:

if ! command -v officecli &> /dev/null; then
    echo "Installing officecli..."
    curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCli/main/install.sh -o /tmp/officecli_install.sh && bash /tmp/officecli_install.sh && rm -f /tmp/officecli_install.sh
    # Windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCli/main/install.ps1 -OutFile "$env:TEMP\officecli_install.ps1"; & "$env:TEMP\officecli_install.ps1"
else
    CURRENT=$(officecli --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
    LATEST=$(curl -fsSL https://api.github.com/repos/iOfficeAI/OfficeCLI/releases/latest | grep '"tag_name"' | sed -E 's/.*"v?([0-9.]+)".*/\1/')
    if [ "$CURRENT" != "$LATEST" ]; then
        echo "Upgrading officecli $CURRENT → $LATEST..."
        curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCli/main/install.sh -o /tmp/officecli_install.sh && bash /tmp/officecli_install.sh && rm -f /tmp/officecli_install.sh
    else
        echo "officecli $CURRENT is up to date"
    fi
fi
officecli --version

Quick Reference

TaskAction
Read / analyze contentUse view and get commands below
Edit existing presentationRead editing.md
Create from scratchRead creating.md

Reading & Analyzing

Text Extraction

officecli view slides.pptx text
officecli view slides.pptx text --start 1 --end 5

Structure Overview

officecli view slides.pptx outline

Output shows slide titles, shape counts, and picture counts per slide.

Detailed Inspection

officecli view slides.pptx annotated

Shows shape types, fonts, sizes, pictures with alt text status, tables with dimensions.

Statistics

officecli view slides.pptx stats

Slide count, shape count, font usage, missing titles, missing alt text.

Element Inspection

# List all shapes on a slide
officecli get slides.pptx /slide[1] --depth 1

# Get shape details (position, fill, font, animation, etc.)
officecli get slides.pptx /slide[1]/shape[1]

# Get chart data and config
officecli get slides.pptx /slide[1]/chart[1]

# Get table structure
officecli get slides.pptx /slide[1]/table[1] --depth 3

# Get placeholder by type
officecli get slides.pptx "/slide[1]/placeholder[title]"

CSS-like Queries

# Find shapes containing specific text
officecli query slides.pptx 'shape:contains("Revenue")'

# Find pictures without alt text
officecli query slides.pptx "picture:no-alt"

# Find shapes with specific fill color
officecli query slides.pptx 'shape[fill=#4472C4]'

# Find shapes wider than 10cm
officecli query slides.pptx "shape[width>=10cm]"

# Find shapes on a specific slide
officecli query slides.pptx 'slide[2] > shape[font="Arial"]'

Visual Inspection

# SVG rendering (single slide, self-contained, no dependencies)
officecli view slides.pptx svg --start 1 --end 1 --browser

# HTML rendering (all slides, interactive, with charts and 3D -- recommended)
officecli view slides.pptx html --browser

Note: SVG renders only one slide per invocation (the first in the range). Use html --browser for multi-slide preview with full chart/gradient/table rendering.


Design Principles

Don't create boring slides. Plain bullets on a white background won't impress anyone.

Before Starting

  • Pick a bold, content-informed color palette: The palette should feel designed for THIS topic. If swapping your colors into a completely different presentation would still "work," you haven't made specific enough choices.
  • Dominance over equality: One color should dominate (60-70% visual weight), with 1-2 supporting tones and one sharp accent. Never give all colors equal weight.
  • Dark/light contrast: Dark backgrounds for title + conclusion slides, light for content ("sandwich" structure). Or commit to dark throughout for a premium feel.
  • Commit to a visual motif: Pick ONE distinctive element and repeat it -- rounded image frames, icons in colored circles, thick single-side borders. Carry it across every slide.

Color Palettes

Choose colors that match your topic -- don't default to generic blue:

ThemePrimarySecondaryAccentTextMuted/Caption
Coral EnergyF96167 (coral)F9E795 (gold)2F3C7E (navy)333333 (charcoal)8B7E6A (warm gray)
Midnight Executive1E2761 (navy)CADCFC (ice blue)FFFFFF (white)333333 (charcoal)8899BB (slate)
Forest & Moss2C5F2D (forest)97BC62 (moss)F5F5F5 (cream)2D2D2D (near-black)6B8E6B (faded green)
Charcoal Minimal36454F (charcoal)F2F2F2 (off-white)212121 (black)333333 (dark gray)7A8A94 (cool gray)
Warm TerracottaB85042 (terracotta)E7E8D1 (sand)A7BEAE (sage)3D2B2B (brown-black)8C7B75 (dusty brown)
Berry & Cream6D2E46 (berry)A26769 (dusty rose)ECE2D0 (cream)3D2233 (dark berry)8C6B7A (mauve gray)
Ocean Gradient065A82 (deep blue)1C7293 (teal)21295C (midnight)2B3A4E (dark slate)6B8FAA (steel blue)
Teal Trust028090 (teal)00A896 (seafoam)02C39A (mint)2D3B3B (dark teal)5E8C8C (muted teal)
Sage Calm84B59F (sage)69A297 (eucalyptus)50808E (slate)2D3D35 (dark green)7A9488 (faded sage)
Cherry Bold990011 (cherry)FCF6F5 (off-white)2F3C7E (navy)333333 (charcoal)8B6B6B (dusty red)

Use Text for body copy on light backgrounds, Muted for captions, labels, and axis text. On dark backgrounds, use the Secondary or FFFFFF for body text and Muted for captions.

Need a color not in the table? These palettes are starting points. You can add accent colors (e.g., gold D4A843 with Forest & Moss) or blend palettes to match the topic. If a user requests a palette that doesn't exist by name (e.g., "Forest & Gold"), use the closest match and supplement with appropriate accent tones.

Typography

Choose an interesting font pairing -- don't default to Arial.

Header FontBody FontBest For
GeorgiaCalibriFormal business, finance, executive reports
Arial BlackArialBold marketing, product launches
CalibriCalibri LightClean corporate, minimal design
CambriaCalibriTraditional professional, legal, academic
Trebuchet MSCalibriFriendly tech, startups, SaaS
ImpactArialBold headlines, event decks, keynotes
PalatinoGaramondElegant editorial, luxury, nonprofit
ConsolasCalibriDeveloper tools, technical/engineering
ElementSize
Slide title36-44pt bold
Section header20-24pt bold
Body text14-16pt
Captions10-12pt muted

Layout Variety

Every slide needs a visual element -- image, chart, icon, or shape. Text-only slides are forgettable.

Vary across these layout types:

  • Two-column (text left, visual right)
  • Icon + text rows (icon in colored circle, bold header, description)
  • 2x2 or 2x3 grid (content blocks)
  • Half-bleed image (full left/right side) with content overlay
  • Large stat callouts (big numbers 60-72pt with small labels below)
  • Comparison columns (before/after, pros/cons)
  • Timeline or process flow (numbered steps, arrows)

Content-to-Layout Quick Guide

These are starting points. Adapt based on content density and narrative flow.

Content TypeRecommended LayoutWhy
Pricing / plan tiers2-3 column cards (comparison)Side-by-side enables instant comparison
Team / peopleIcon grid or 2x3 cardsFaces/avatars need equal visual weight
Timeline / roadmapProcess flow with arrows or numbered stepsLeft-to-right communicates sequence
Key metrics / KPIsLarge stat callouts (3-4 big numbers)Big numbers grab attention; labels below
Testimonials / quotesFull-width quote with attributionGenerous whitespace signals credibility
Feature comparisonTwo-column before/after or tableParallel structure aids scanning
Architecture / systemShapes + connectors diagramSpatial relationships need visual expression
Financial dataChart + summary table side-by-sideChart shows trend; table provides precision

Spacing

  • 0.5" (1.27cm) minimum margins from slide edges
  • 0.3-0.5" (0.76-1.27cm) between content blocks
  • Leave breathing room -- don't fill every inch

Avoid (Common Mistakes)

  • Don't repeat the same layout -- vary columns, cards, and callouts across slides
  • Don't center body text -- left-align paragraphs and lists; center only titles
  • Don't skimp on size contrast -- titles need 36pt+ to stand out from 14-16pt body
  • Don't default to blue -- pick colors that reflect the specific topic
  • Don't mix spacing randomly -- choose 0.3" or 0.5" gaps and use consistently
  • Don't style one slide and leave the rest plain -- commit fully or keep it simple throughout
  • Don't create text-only slides -- add images, icons, charts, or visual elements
  • Don't forget text box padding -- when aligning shapes with text edges, set margin=0 on the text box or offset to account for default padding
  • Don't use low-contrast elements -- icons AND text need strong contrast against the background
  • NEVER use accent lines under titles -- these are a hallmark of AI-generated slides; use whitespace or background color instead

QA (Required)

Assume there are problems. Your job is to find them.

Your first render is almost never correct. Approach QA as a bug hunt, not a confirmation step. If you found zero issues on first inspection, you weren't looking hard enough.

Content QA

# Extract all text, check for missing content, typos, wrong order
officecli view slides.pptx text

# Check for structural and formatting issues automatically
officecli view slides.pptx issues

Note: view issues reports "Slide has no title" for all blank-layout slides. This is expected when using layout=blank (the recommended approach for custom designs). These warnings can be safely ignored.

When editing templates, check for leftover placeholder text:

officecli query slides.pptx 'shape:contains("lorem")'
officecli query slides.pptx 'shape:contains("xxxx")'
officecli query slides.pptx 'shape:contains("placeholder")'

Visual QA

Use subagents -- even for 2-3 slides. You've been staring at the code and will see what you expect, not what's there. Subagents have fresh eyes.

# Render a single slide as SVG for visual inspection
officecli view slides.pptx svg --start 3 --end 3 --browser

# Loop through slides for multi-slide QA
for i in 1 2 3 4 5; do officecli view slides.pptx svg --start $i --end $i > /tmp/slide-$i.svg; done

SVG limitations: SVG renders only one slide (the first in the --start/--end range). Gradient backgrounds, charts, and tables are not visible in SVG output. For full-fidelity multi-slide preview including charts and gradients, use HTML mode:

officecli view slides.pptx html --browser

Prompt for visual QA subagent:

Visually inspect these slides. Assume there are issues -- find them.

Look for:
- Overlapping elements (text through shapes, lines through words, stacked elements)
- Text overflow or cut off at edges/box boundaries
- Elements too close (< 0.3" gaps) or cards/sections nearly touching
- Uneven gaps (large empty area in one place, cramped in another)
- Insufficient margin from slide edges (< 0.5")
- Columns or similar elements not aligned consistently
- Low-contrast text (e.g., light gray on cream background)
- Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle)
- Text boxes too narrow causing excessive wrapping
- Leftover placeholder content

For each slide, list issues or areas of concern, even if minor.
Report ALL issues found.

Editing-specific QA checklist (in addition to the above):

  • On every template slide (not new blank slides), verify that NO decorative element (!!-prefixed shape) overlaps or obscures content text
  • Verify all hero numbers / key metrics are visible (not hidden by card fills or same-color-as-background)
  • On dark background slides, verify chart bars/lines, axis labels, and gridlines are visible

Validation

# Schema validation -- must pass before delivery
officecli validate slides.pptx

Pre-Delivery Checklist

Before declaring a presentation complete, verify:

  • Speaker notes on all content slides (not just title/closing)
  • At least one transition style applied (fade for title, push or wipe for content)
  • Alt text on all pictures
  • At least 3 different layout types used across slides
  • No two consecutive slides share the same layout pattern

Verification Loop

  1. Generate slides
  2. Run view issues + validate + visual inspection
  3. List issues found (if none found, look again more critically)
  4. Fix issues
  5. Re-verify affected slides -- one fix often creates another problem
  6. Repeat until a full pass reveals no new issues

Do not declare success until you've completed at least one fix-and-verify cycle.


Common Pitfalls

PitfallCorrect Approach
--name "foo"Use --prop name="foo" -- all attributes go through --prop
x=-3cmNegative coordinates not supported. Use x=0cm instead
/shape[myname]Name indexing not supported. Use numeric index: /shape[3]
Guessing property namesRun officecli pptx set shape to see exact names
\n in shell stringsUse \\n for newlines in --prop text="line1\\nline2"
Modifying an open fileClose the file in PowerPoint/WPS first
Hex colors with #Use FF0000 not #FF0000 -- no hash prefix
Theme colorsUse accent1..accent6, dk1, dk2, lt1, lt2 -- not hex
Forgetting alt textAlways set --prop alt="description" on pictures for accessibility
Paths are 1-based/slide[1], /shape[1] -- XPath convention
--index is 0-based--index 0 = first position -- array convention
Unquoted [N] in zsh/bashShell glob-expands /slide[1] -- always quote paths: "/slide[1]"
Z-order (shapes overlapping)Use --prop zorder=back or zorder=front / forward / backward / absolute position number. WARNING: Z-order changes cause shape index renumbering -- re-query with get --depth 1 after any z-order change before referencing shapes by index. Process highest index first when changing multiple shapes.
gap/gapwidth on chart addIgnored during add -- set it after creation: officecli set ... /slide[N]/chart[M] --prop gap=80
$ and ' in batch JSON textUse heredoc: cat <<'EOF' | officecli batch -- single-quoted delimiter prevents shell expansion of $, apostrophes, and backticks
Template text at wrong sizeTemplate shapes have baked-in font sizes. Always include size, font, and color in every set on template shapes. See editing.md "Font Cascade from Template Shapes" section.

Performance: Resident Mode

For multi-step workflows (3+ commands on the same file), use open/close:

officecli open slides.pptx        # Keep in memory -- fast subsequent commands
officecli add slides.pptx ...     # No file I/O overhead per command
officecli set slides.pptx ...
officecli close slides.pptx       # Save and release

Performance: Batch Mode

Execute multiple operations in a single open/save cycle:

echo '[
  {"command":"add","parent":"/slide[1]","type":"shape","props":{"text":"Title","x":"2cm","y":"2cm","width":"20cm","height":"3cm","size":"36","bold":"true"}},
  {"command":"add","parent":"/slide[1]","type":"shape","props":{"text":"Body text","x":"2cm","y":"6cm","width":"20cm","height":"10cm","size":"16"}}
]' | officecli batch slides.pptx

Batch supports: add, set, get, query, remove, move, view, raw, raw-set, validate.

Batch mode works with resident mode. Run officecli open file.pptx first, then pipe batch commands, then officecli close file.pptx. This combines batch efficiency with resident mode's persistent file handle.

Batch fields: command, path, parent, type, from, to, index, props (dict), selector, mode, depth, part, xpath, action, xml.

parent = container to add into (for add, including clone via from field). path = element to modify (for set, get, remove, move).


Known Issues

IssueWorkaround
Chart series cannot be added after creation: set --prop data= and set --prop seriesN= on an existing chart can only update existing series -- they cannot add new series. The series count is fixed at creation time.Include all series in the add command (using series1+series2 props or the data prop). Both forms work reliably in single commands and in batch mode. If you need to add series to an existing chart, delete it and recreate: officecli remove file.pptx "/slide[N]/chart[M]" then officecli add with all series. See creating.md "Multi-Series Column Chart" and editing.md "Update Charts".
Chart schema validation warning: Some modern chart styling combinations produce a ChartShapeProperties schema warning from officecli validate. This does not affect PowerPoint rendering.Ignore the warning if the chart opens correctly in PowerPoint.
Table font cascade overwritten by row set: Setting size/font on the table path and then setting row content with set tr[N] resets font properties on that row to defaults.Set table-level size/font after all row content is populated, or include size/font in each row-level set command.
Shell quoting in batch with echo: echo '...' | officecli batch fails when JSON values contain apostrophes or $ characters (common in English text and currency).Use a heredoc instead: cat <<'EOF' | officecli batch file.pptx ... EOF. The single-quoted heredoc delimiter prevents all shell interpolation.
Batch intermittent failure: Approximately 1-in-15 batch operations may fail with "Failed to send to resident" when using batch mode with resident mode (open/close).Retry the failed batch command. If the error persists, close and re-open the file: officecli close file.pptx && officecli open file.pptx, then retry. For critical workflows, consider splitting large batch arrays into smaller chunks (10-15 operations each).
Table cell solidFill schema warning: Setting color on table cell run properties may produce solidFill schema validation errors. The table renders correctly in PowerPoint.Ignore if the table opens correctly. Alternatively, set text color at the row level (set tr[N] --prop color=HEX) instead of the cell level.
Multi-series chart rendering in SVG/screenshot: SVG and screenshot renders may show fewer series than actually exist in the chart data. The chart data is correct but the rendering engine does not always display all series visually.Verify multi-series charts by opening the .pptx in PowerPoint or by using get /slide[N]/chart[M] to confirm all series are present in the data. Do not rely solely on SVG/screenshot visual QA for multi-series verification.

Help System

When unsure about property names, value formats, or command syntax, run help instead of guessing. One help query is faster than guess-fail-retry loops.

officecli pptx set              # All settable elements and their properties
officecli pptx set shape        # Shape properties in detail
officecli pptx set shape.fill   # Specific property format and examples
officecli pptx add              # All addable element types
officecli pptx view             # All view modes
officecli pptx get              # All navigable paths
officecli pptx query            # Query selector syntax

Comments

Loading comments...