Agent skill · software engineering · aiskillstore

libreoffice-writer

Use when creating, editing, formatting, exporting, or extracting LibreOffice Writer (.odt) documents via UNO, including session-based edits, structured text targets, tables, images, lists, patch workflows, and snapshots.

Why this skill is useful

Adds executable scripts for manipulating LibreOffice Writer documents via UNO that are not available in public documentation.

What it needs

Requires libreoffice installed locally. About 4k tokens when loaded. Last updated 2026-08-07. 405 stars on the source repository.

What this skill does

LibreOffice Writer Use the bundled writer modules for UNO-backed Writer document work. All paths must be absolute. Bundled modules live under scripts/ in this skill directory, so set PYTHONPATH=<skillbasedir>/scripts. If setup or runtime issues appear, check references/troubleshooting.md. API Surface Structured Targets: WriterTarget Target kinds Kind Supported fields Use --- --- --- text text, after, before, occurrence Read, replace, delete, or format matched text insertion text, after, before, occurrence Insert at a resolved boundary or after a matched span table name or index Update/delete a table image name or index Update/delete an image list text, after, before, occurrence Replace/delete one logical list block Resolution rules Omit target to read the full document or append inserted content at the end. Use after and before to constrain a search window. Use occurrence when repeated text is expected; otherwise matching must be unique. Prefer full sentences or distinctive paragraph-sized phrases for text, after, and before anchors; single-word anchors are often too brittle for realistic prose edits. For table/image targets, prefer name; use index only when order is stable. For insertion after inline text, Writer inserts at the boundary after the matched span; paragraph breaks must come from the inserted text or the session helper. Formatting Payload Notes: Character and paragraph formatting can be combined in one call. Paragraph properties such as align apply to the full paragraph containing the match, not just the exact matched span. At least one formatting field must be set. List Items level is zero-based nesting. Nesting cannot skip levels. ordered=True uses a numbering style; ordered=False uses bullets. Patch DSL Use patch() or session.patch() to apply ordered operations. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills aiskillstore/libreoffice-writer

View the source on GitHub

Browse the @skills marketplace