Install
$ agentstack add skill-officecli-officecli-openclaw-officecli ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
OpenClaw OfficeCLI Skill
Purpose
This skill lets an OpenClaw agent generate local pptx, docx, xlsx, report, and standalone img files through officecli agent-bridge, then send the generated file back to the current channel as an attachment.
Trigger Rules
Trigger when the user clearly wants a file artifact, for example:
generate a five-slide PPT about an enterprise collaboration platformwrite a customer-facing docx for mecreate a budget excel sheetgenerate a launch imageturn this into slideswrite a docx for customers
Do not trigger for:
- pure explanation
- brainstorming
- outline-only requests
- analysis without a file deliverable
Runtime Contract
The skill must use officecli agent-bridge as the local execution protocol.
Do not treat officecli new ... stdout as a protocol.
Always prefer the structured bridge:
- transport:
stdio - framing:
Content-Length - protocol:
JSON-RPC 2.0 - tool:
office.generate
Required bridge methods:
initializecapabilities/getsession/opentask/invoketask/respondtask/statustask/cancel
Primary event types:
task.startedtask.progresstask.questiontask.outputtask.completedtask.failedtask.cancelled
Agent Behavior
- Run
fix-officecli-env.shbefore starting any bridge session so the skill bundle is refreshed and any missingofficeclisetup is repaired. - Run
check-officecli-env.shafter the repair step. - Ensure
officecliis installed, configured, and reachable. - Ensure
officecli agent-bridgecan be started locally. - Read
initializeorcapabilities/getbefore invoking generation, and cachedocument_generation.pptx.image_supportand top-levelimage_generation. - Also cache
update; ifavailable=true, useupdate_commandor your own repair flow instead of parsing human CLI update prompts. - Convert the user's natural-language request into:
document_typetopicprompt- optional
mode - optional
lang - optional
style - optional
audience - optional
ratioforimg
- If the user explicitly wants no images for
pptx, setenable_images=false; otherwise follow the bridge capability default instead of hard-coding a client default. - For standalone
img, calloffice.generatewithdocument_type=img; do not calloffice.render, do not setmode=best, and do not use local image provider config. - Use
interactive=trueby default so the chat can handle follow-up questions. - Use
mode=fastby default unless the user explicitly asks for a higher-quality, more iterative workflow and the document type is notimg. - On
task.question, present the question naturally in the channel and forward the answer viatask/respond. - On
task.output, readresult.file_pathand send the file as an attachment in the current channel. - On
task.failed, convert the error into a user-friendly message. - On user cancel, send
task/cancel.
Runtime Mode Rules
- use
officecli config runtimeto inspect the local default runtime mode when the host asks how OfficeCLI is configured - use
officecli config set-runtime hostedwhen the host explicitly wants platform-managed hosted generation by default - use
officecli config set-runtime externalwhen the host wants local/external generation by default - hosted mode requires a platform OfficeCLI API key with hosted credits; do not ask users for aigateway keys because those are created and stored by the platform
- OfficeCLI should be installed through one channel at a time; if the host already has a Homebrew-installed
officecli, do not suggest or runnpm install -g officeclion top of it
PPT Image Rules
For all OpenClaw agents using this skill:
- inspect
document_generation.pptx.image_support.default_enabledduring capability discovery - inspect
update.availableduring capability discovery - use
document_generation.pptx.image_support.disable_flagwhen explaining how to produce a text-only deck - if
update.available=true, prefer a structured repair/refresh path and showupdate_commandwhen the host asks how to update - use
document_generation.pptx.image_support.config_commandandconfig_fieldswhen the user reports missing images - if
task.output,task.completed, ortask/statusincludesresult_meta.image_support.attention_required=true, surface that immediately in the chat - if
result_meta.image_support.reason=image_generation_degraded, tell the user the deck was downgraded to a no-image version and they should checkimage_base_url,image_api_key, andimage_model - do not rely only on free-form warning strings for client decisions; prefer
result_meta - do not parse human update prompts from
officeclistdout; use bridge capability fields
Standalone Image Rules
For standalone img requests:
- inspect top-level
image_generationduring capability discovery - use
office.generatewithdocument_type=img - pass
ratio=square|landscape|portraitwhen the user asks for a shape; default tosquare - pass one
reference_imagelocal path orhttp/httpsURL when the user provides a reference image - require platform/license config and let the OfficeCLI server control the image provider
- treat quota by runtime: in
externalmode one successful standalone image consumes one generation count, while inhostedmode it consumes hosted credits; free image usage has a separate 3-per-day bucket from free document generation - keep preview publishing enabled by default when publishing is configured; pass
publish=falseonly for local-only output - do not use
office.render, localconfig set-generationimage settings,mode=best, source files, or local preview - include returned quota or credit balance metadata in the chat message when present
Environment Repair Rules
- refresh the OpenClaw skill bundle and repair any missing
officeclisetup on every task by runningfix-officecli-env.sh - do not refresh an already installed
officeclibinary unless the host explicitly opts in, for example withOFFICECLI_REFRESH_BINARY=1 - when the user explicitly asks to uninstall
officecli, rununinstall-officecli.sh - if the host previously installed with Homebrew and wants to switch to npm, tell them to run
brew uninstall officecli/homebrew-officecli/officeclifirst; if their formula uses the short name, usebrew uninstall officecli, then runnpm install -g officecli - use
check-officecli-env.shas the single readiness probe for binary, config, and bridge - use
fix-officecli-env.shas the single repair entrypoint - when config is missing, ask only for the missing generation/license values and let the fix script write local config
- online preview config is required by default so generated files can return publish URLs
- if the current request is intentionally local-only, set
OFFICECLI_SKIP_PUBLISH_SETUP=1before running the fix script - do not try to start
agent-bridgeuntil the check script returns ready - if refresh or check fails, stop and report the
officeclienvironment error; when repair fails, use the fix script's final structured status as the source of truth, and do not fall back to any other PPT/DOC/XLS generation tool without explicit user approval
Attachment Delivery
When generation succeeds:
- read
task.output.payload.result.file_path - upload that file to the current channel
- include a short note with:
- document type
- document name
- any warnings returned by bridge
- when present,
result_meta.image_support.message
Do not only send a local file path unless attachment upload is impossible on the current channel.
Conversation Policy
- If document type is missing, ask which file type the user wants.
- If topic or goal is missing, ask a concise clarifying question.
- If the bridge emits
task.question, relay it instead of inventing your own replacement question. - Keep progress updates short and stage-based.
- do not trigger
office.review/office.scoreautomatically after generation unless the user explicitly asks for scoring, review, validation, or quality checking
Local Requirements
Expected local setup:
officecliavailable inPATH, or repairable byfix-officecli-env.sh- generation and license config already completed, or repairable by the fix script
- standalone
imgrequires license config; document/PPT image assets also require generation config - OpenClaw agent has permission to:
- spawn local commands
- read generated files
- upload attachments to the active channel
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: officecli
- Source: officecli/officecli
- License: MIT
- Homepage: https://officecli.io
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.