Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
186 commits
Select commit Hold shift + click to select a range
763e9c3
feat: extend LaTeX→OMML converter for math/stats education
shuff57 Apr 4, 2026
af3d18f
remove demo pptx from PR #37
goworm Apr 4, 2026
9ed0333
fix: paraId/textId values must be less than 0x80000000 per OOXML spec
goworm Apr 4, 2026
6851cab
fix: improve LaTeX→OMML quality and add OMML→LaTeX roundtrip for new …
goworm Apr 4, 2026
59f5a89
fix: render w14 text effects (textFill, glow, reflection) in Word HTM…
goworm Apr 4, 2026
993c7a4
fix: include hyperlink text in Word paragraph Text aggregation
goworm Apr 4, 2026
6297514
chore: bump version to 1.0.32
goworm Apr 4, 2026
cbd2af8
feat: add stable ID addressing, refactor Add signature, enhance navig…
goworm Apr 4, 2026
f744194
feat: add find+format, find+replace, and text-anchored insert for Wor…
goworm Apr 4, 2026
50f5747
chore: bump version to 1.0.33
goworm Apr 4, 2026
94ffeeb
fix: add mc:Ignorable="w14" for Word 2007 compatibility
goworm Apr 4, 2026
3143aa8
docs: replace Chinese examples with English in SKILL.md
goworm Apr 4, 2026
2c62f20
docs: improve SKILL.md for v1.0.33 new features usability
goworm Apr 4, 2026
57c4030
docs: add regex usage hint to find sections in SKILL.md
goworm Apr 4, 2026
83c2d85
fix: improve find= error messages and SKILL.md documentation
goworm Apr 4, 2026
64b57c0
feat: support after/before positioning in batch add command
goworm Apr 4, 2026
4e2b255
feat: add regex=true prop as alternative to r"..." prefix
goworm Apr 4, 2026
0fab975
docs: replace r"..." with regex=true in all SKILL.md examples
goworm Apr 4, 2026
6dadcdc
feat: support regex=true prop in --after/--before find: anchors
goworm Apr 4, 2026
7a6f545
fix: resolve named pipe deadlock on Windows for open/close commands
shuff57 Apr 4, 2026
8470b60
feat: add swap command and after/before support for move in batch
goworm Apr 4, 2026
cd97787
feat: infer move target parent from --after/--before anchor path
goworm Apr 4, 2026
f124b9a
feat: return node data in add/set --json, add find match count
goworm Apr 4, 2026
6b45969
fix: use depth=0 for add/set --json data to reduce output size
goworm Apr 4, 2026
3b31116
fix: revert data field from add/set --json, keep only find matched count
goworm Apr 4, 2026
9070ed6
fix: PPT add --after anchor ignored, add --after/--before to CLI move
goworm Apr 4, 2026
cb1e6de
fix: add Excel find matched count, block cross-slide placeholder move
goworm Apr 4, 2026
151fbbc
docs: add move --after/--before, batch swap, find matched count to SK…
goworm Apr 4, 2026
08bb949
docs: add after/before to batch fields list in SKILL.md
goworm Apr 4, 2026
2e4e192
feat: add swap as top-level CLI command
goworm Apr 4, 2026
c9beaed
Merge pull request #39 from shuff57/fix/windows-pipe-deadlock
goworm Apr 4, 2026
8fbf318
fix: limit raw byte pipe I/O to Windows, restore StreamReader on Mac/…
goworm Apr 4, 2026
8d4e496
docs: update README and translations for new features
goworm Apr 4, 2026
bbe27b6
chore: bump version to 1.0.34
goworm Apr 4, 2026
7d77916
docs: clarify officecli install behavior — skill auto-install for AI …
goworm Apr 4, 2026
fa1ed5f
docs(skills): sync swap, move --after/--before, and batch fields for …
IceyLiu Apr 5, 2026
69a92d2
Merge pull request #41 from iOfficeAI/skills-update
goworm Apr 5, 2026
cb18360
docs(skills): add Adjustments section to specialized skills for v1.0.34
IceyLiu Apr 5, 2026
647e7bc
Merge pull request #42 from iOfficeAI/skills-update
IceyLiu Apr 5, 2026
c626397
feat: deterministic IDs for reproducible batch scripts
goworm Apr 5, 2026
b194ee5
chore: bump version to 1.0.35
goworm Apr 5, 2026
180c120
fix: COUNTIF, COUNTA, SUMIF and other conditional functions return 0 …
goworm Apr 5, 2026
af531c4
fix: Excel HTML preview chart rendering and frozen pane improvements
goworm Apr 5, 2026
d2646a9
fix: replace hardcoded chart/preview values with OOXML properties
goworm Apr 5, 2026
0977c8a
fix: Excel HTML preview dataBar/iconSet rendering, chart positioning,…
goworm Apr 5, 2026
ad9619b
chore: bump version to 1.0.36
goworm Apr 5, 2026
36c07f4
fix: preserve CT_RPr schema order when setting run properties
goworm Apr 5, 2026
6dc7ddd
fix: apply default hanging indent for PPT bullet/numbered lists
goworm Apr 5, 2026
8cb3202
fix: apply per-slice colors for pie/doughnut charts via DataPoint ele…
goworm Apr 6, 2026
87a63df
fix: support numlevel alias in liststyle code path for Word list para…
goworm Apr 6, 2026
1f849d7
fix: handle null properties in AddField to prevent NullReferenceExcep…
goworm Apr 6, 2026
8aa0d2a
fix: accept deg suffix in gradient angle (e.g. 135deg)
goworm Apr 6, 2026
f55a4c9
fix: use schema-aware insertion for solidFill in PPT table cell CT_RPr
goworm Apr 6, 2026
c532f71
fix: apply headerFill/bodyFill to PPT table cells during Add
goworm Apr 6, 2026
082dc0f
fix: add size as alias for font.size in Excel cell styling
goworm Apr 6, 2026
3ba53ba
fix: resolve formulacf dxfId to fill and font colors in Get
goworm Apr 6, 2026
a2c3126
fix: add pgSz and pgMar to body-level sectPr in Word documents
goworm Apr 6, 2026
99bcfdb
fix: emit page break for nextPage section breaks in Word HTML view
goworm Apr 6, 2026
92c55dc
fix: apply color and size to PPT bullet characters in HTML view
goworm Apr 6, 2026
77d3ac5
fix: use auto-fit table width in Word HTML view
goworm Apr 6, 2026
84af542
fix: roundRect text padding and chart legend color in HTML view
goworm Apr 6, 2026
3674aa0
fix: read data label type from OOXML instead of hardcoding percent
goworm Apr 6, 2026
c360940
fix: read chart legend font from defRPr and fix double # color prefix
goworm Apr 6, 2026
8ca4c05
fix: do not mark built-in Word styles as customStyle
goworm Apr 6, 2026
c5e3e25
fix: read hardcoded rendering values from OpenXML instead of using co…
goworm Apr 6, 2026
fe2eefd
bump version to 1.0.37
goworm Apr 6, 2026
5e58694
fix: second pass — more hardcoded rendering values replaced with Open…
goworm Apr 6, 2026
d6252bd
fix: xlsx HTML preview — column widths, used range, and missing borders
goworm Apr 7, 2026
f378037
fix: auto-update — stage downloads to .partial and overwrite on rename
goworm Apr 7, 2026
5685672
fix(excel): reject ambiguous 'color' on cells with disambiguation hint
goworm Apr 7, 2026
d7ae8a5
refactor: rename picture Format["size"] to "fileSize"
goworm Apr 7, 2026
b108a30
fix(pptx): distribute tab-delimited text into row cells on row-level Set
goworm Apr 7, 2026
88a38a2
fix(pptx): preserve all gradient stops when reading table cell fill
goworm Apr 7, 2026
af6772c
fix(pptx): enforce CT_TextCharacterProperties schema order on table c…
goworm Apr 7, 2026
793a86b
feat(watch): add selection tracking via POST /api/selection and CLI '…
goworm Apr 7, 2026
5f1b09a
feat(watch): interactive PPT element selection in browser preview
goworm Apr 7, 2026
bf6a5dd
fix: improve format-prefix command detection and fix entrance animati…
konbakuyomu Apr 7, 2026
7d96ce3
docs(raw): correct header part index example to 1-based
goworm Apr 7, 2026
1c9fd3c
feat(watch): rubber-band box selection in browser preview
goworm Apr 7, 2026
c23ec7e
docs(skill): document watch and 'get <file> selected' interactive sel…
goworm Apr 7, 2026
64fcfcc
fix(watch): bound POST /api/selection body read by size and time
goworm Apr 7, 2026
58b04f1
fix(watch): serialize SSE initial selection-update against broadcast …
goworm Apr 7, 2026
8cfa65c
fix(watch): cancel rubber-band drag when window loses focus or cursor…
goworm Apr 7, 2026
e2a7737
fix(watch): emit data-path on PPT group containers so groups are sele…
goworm Apr 7, 2026
eaed65e
docs(skill): document watch selection behavior for groups and inherit…
goworm Apr 7, 2026
3b902fc
refactor(watch): concurrent pipe client handling
goworm Apr 7, 2026
238c94f
feat(word): emit data-path on top-level paragraphs and tables
goworm Apr 7, 2026
4bb2047
feat(mark): MVP marks — server reconcile, SSE broadcast, client apply
goworm Apr 7, 2026
aca580c
fix: document 'selected' pseudo-path in get --help output
goworm Apr 7, 2026
7237156
fix: default added shape width to 10cm instead of full slide width
goworm Apr 7, 2026
3472a6f
fix(mark): server-side hardening for color, path, regex, and help
goworm Apr 7, 2026
b6eaa86
fix(watch): emit body-prefixed data-path on Word paragraphs and tables
goworm Apr 7, 2026
f60b03a
fix(watch): accept bare hex in mark --prop color for consistency with…
goworm Apr 7, 2026
a052fb6
fix(mark): surface server rejections in CLI and finish tofix rename
goworm Apr 7, 2026
d2843ce
feat(mark): support 'selected' pseudo-path to mark all currently-sele…
goworm Apr 7, 2026
7292fcb
fix(mark): deprecate 'expect' as alias for 'tofix' and warn on unknow…
goworm Apr 7, 2026
7a7adc6
fix(mark): correct Word data-path in docs, expand color normalize, ha…
goworm Apr 8, 2026
f4e54db
docs(skill): reframe Marks as two-phase commit (propose -> review -> …
goworm Apr 8, 2026
4a75082
fix(mark): get-marks --json keeps {version,marks,error} shape on errors
goworm Apr 8, 2026
f01a4ff
docs(skill): correct perf callout — slow set is process startup, not …
goworm Apr 8, 2026
80bbfb8
refactor(watch): drop redundant FullHtml from slide-scoped replace
goworm Apr 8, 2026
cca836d
fix(watch): scope mark lookup to .main so marks render in the preview…
goworm Apr 8, 2026
6a414a5
feat(set): support 'selected' pseudo-path
goworm Apr 8, 2026
691ca15
docs(skill): trim duplicate examples and redundant perf note
goworm Apr 8, 2026
470b7c1
docs(skill): drop Min Version column from Specialized Skills table
goworm Apr 8, 2026
b089712
fix(query/batch/resident): five Round 6 deep-test findings
goworm Apr 8, 2026
faeb245
chore(release): bump version to 1.0.38
goworm Apr 8, 2026
11499f6
fix(xlsx/view): show pivot table count in outline for pivot-only sheets
goworm Apr 8, 2026
2729cfb
docs(skill): document 'view html' mode and contrast with watch
goworm Apr 8, 2026
42622fa
fix(xlsx/pivot): generate Excel-renderable pivot tables with material…
goworm Apr 8, 2026
bb19715
feat(xlsx/pivot): localize pivot caption labels via header caption at…
goworm Apr 8, 2026
dfe7692
fix(xlsx/pivot): re-render materialized cells when Set changes pivot …
goworm Apr 8, 2026
392bffd
feat(xlsx/pivot): render page filter cells above the pivot table area
goworm Apr 8, 2026
118e871
feat(xlsx/pivot): support multiple data fields per pivot (sum + count…
goworm Apr 8, 2026
f7984a9
feat(xlsx/pivot): support 2 row fields with hierarchical subtotals (c…
goworm Apr 8, 2026
1950eb0
feat(xlsx/pivot): support 2 col fields with hierarchical column subto…
goworm Apr 8, 2026
39a8e94
feat(xlsx/pivot): support 2 rows × 1 col × K data fields cross product
goworm Apr 8, 2026
f0a49c5
feat(xlsx/pivot): support 1 row × 2 cols × K data fields cross product
goworm Apr 8, 2026
44a3af0
feat(xlsx/pivot): support 2 rows × 2 cols × 1 data matrix pivot
goworm Apr 8, 2026
7b739ef
feat(xlsx/pivot): support 2 rows × 2 cols × K data fields (final cros…
goworm Apr 8, 2026
5932e73
feat(xlsx/pivot): support N≥3 row/col fields via general AxisTree ren…
goworm Apr 8, 2026
cc422eb
feat(xlsx/pivot): inherit source column number format on pivot values
goworm Apr 8, 2026
0bdd629
feat(xlsx/pivot): support stdDev, var, stdDevp, varp, countNums aggre…
goworm Apr 8, 2026
e210388
feat(installer): auto self-install on bare `officecli` invocation
goworm Apr 8, 2026
2e14458
feat(xlsx/move): support --after/--before for sheet reorder
goworm Apr 8, 2026
aea7d0d
feat(xlsx/pivot): K-data-field support in BuildTreeAxisItems for N≥3 …
goworm Apr 8, 2026
a4d290a
feat(xlsx/pivot): sort=asc|desc|locale|locale-desc for axis labels
goworm Apr 8, 2026
4c47a3b
feat(xlsx/pivot): showDataAs (% of total / row / col, running total)
goworm Apr 8, 2026
d5ea3be
feat(xlsx/pivot): tree-based rowItems/colItems for N≥3 axis fields (f…
goworm Apr 8, 2026
b2ae8a7
feat(xlsx/pivot): date auto-grouping via native Excel fieldGroup XML
goworm Apr 8, 2026
692341a
fix(xlsx/pivot): canonical bucket labels + fixed item count for date …
goworm Apr 8, 2026
a330cb5
fix(xlsx/pivot): default empty value-spec func to sum (no IndexOutOfR…
goworm Apr 8, 2026
e6d29dd
fix(xlsx/pivot): honor grandTotals=none in 1x1xK renderer (drop trail…
goworm Apr 8, 2026
4d1272d
fix(xlsx/pivot): render rows-only (1 row, 0 col) layout via synthetic…
goworm Apr 8, 2026
357ea63
fix(xlsx/pivot): aggregate=<list> overrides per-value func positionally
goworm Apr 8, 2026
6588219
fix(xlsx/pivot): Set supports standalone aggregate / showDataAs keys
goworm Apr 8, 2026
fe5ef25
fix(xlsx/pivot): Get readback exposes dataField{N}.showAs canonical key
goworm Apr 8, 2026
b64f12b
fix(xlsx/pivot): Set rows/cols/filters dedupes overlapping field acro…
goworm Apr 8, 2026
518071f
fix(xlsx/pivot): reject header-only / empty source ranges with Argume…
goworm Apr 8, 2026
7fae95f
fix(xlsx/pivot): reject unknown field names in rows/cols/values/filte…
goworm Apr 8, 2026
bfcaab9
fix(xlsx/pivot): reject invalid sort / showDataAs tokens with Argumen…
goworm Apr 8, 2026
59a35e1
fix(xlsx/pivot): auto-apply percent numFmt for showDataAs=percent_*
goworm Apr 8, 2026
4bf7f3c
fix(xlsx/pivot): reject unknown aggregate tokens with ArgumentException
goworm Apr 8, 2026
3c9b606
fix(xlsx): accept type=date in Add cell, matching Set parity
goworm Apr 8, 2026
3d09f61
fix(xlsx/pivot): Remove supports pivottable path segment
goworm Apr 8, 2026
d9843f8
fix(xlsx/pivot): sanitize XML-illegal chars in sharedItems write
goworm Apr 8, 2026
9513fc6
fix(xlsx/pivot): Get readback uses canonical 'filters' key (round-trip)
goworm Apr 8, 2026
89bbc5e
fix(xlsx/pivot): scope unsupported-prop fuzzy suggestions to Excel pool
goworm Apr 8, 2026
fafd45a
fix(xlsx/pivot): clamp date group end sentinel to DateTime.MaxValue
goworm Apr 8, 2026
c40fcf7
fix(xlsx/pivot): Get readback exposes rowFields/colFields/filters as …
goworm Apr 8, 2026
507848c
fix(xlsx/pivot): Get readback uses canonical 'rows'/'cols' keys (roun…
goworm Apr 8, 2026
b7043ca
fix(xlsx/pivot): normalize field names to NFC before lookup (Unicode …
goworm Apr 8, 2026
4f8ac68
fix(xlsx/pivot): Remove clears rendered cells from sheetData (no leak)
goworm Apr 8, 2026
62b2f77
fix(xlsx/pivot): sheet rename propagates to pivot cache WorksheetSource
goworm Apr 8, 2026
cfaffef
fix(xlsx/pivot): reject unsupported showDataAs tokens difference/perc…
goworm Apr 8, 2026
1a2fc76
fix(xlsx/pivot): trim whitespace when matching field names
goworm Apr 8, 2026
05dfecb
fix(xlsx/pivot): reject duplicate pivot names within workbook
goworm Apr 8, 2026
13a165c
fix(xlsx/pivot): set PivotField.DataField when field appears in both …
goworm Apr 8, 2026
06c7f16
fix(xlsx/pivot): reject source column beyond XFD (Excel max 16384)
goworm Apr 8, 2026
4a08c74
docs(xlsx/pivot): update help text to 'rows'/'cols' canonical keys
goworm Apr 8, 2026
f6125e0
fix(xlsx/query): dedupe row children when sheet has pivot rendered cells
goworm Apr 8, 2026
8f8b03a
fix(xlsx/pivot): Add applies showDataAs immediately (parity with Set)
goworm Apr 8, 2026
48a2b7d
fix(xlsx/pivot): reject out-of-bounds numeric field index in values
goworm Apr 8, 2026
ace3d5c
fix(xlsx/pivot): reject whitespace-only pivot name
goworm Apr 8, 2026
629c8e7
fix(xlsx/pivot): reject control characters in pivot name
goworm Apr 8, 2026
c07b0c7
fix(xlsx/pivot): trim whitespace in source ref components
goworm Apr 8, 2026
c86a060
fix(xlsx/pivot): clear error for external workbook source refs
goworm Apr 8, 2026
0d5d4f9
docs(xlsx/pivot): add pivottable to 'xlsx set --help' element table
goworm Apr 8, 2026
6a081e0
fix(xlsx/pivot): Set values accepts Get dataField format (round-trip)
goworm Apr 8, 2026
8b5150f
fix(xlsx/pivot): Set source refreshes cache headers before field vali…
goworm Apr 8, 2026
bd2c852
fix(xlsx/pivot): remove sheet also cleans orphan pivot cache parts
goworm Apr 8, 2026
eec3fc8
fix(xlsx/pivot): multi-value rows-only pivot doesn't duplicate -2 sen…
goworm Apr 8, 2026
d5d385a
fix(xlsx/pivot): reject pivot name longer than 255 characters
goworm Apr 8, 2026
7bf3993
fix(xlsx/pivot): Get readback exposes rowGrandTotals/colGrandTotals keys
goworm Apr 8, 2026
addbc99
fix(xlsx/pivot): parse values spec right-to-left to support colon in …
goworm Apr 8, 2026
09efb6a
fix(xlsx/pivot): accept row/col/filter/value singular aliases and leg…
goworm Apr 9, 2026
c75f5f9
fix(xlsx/pivot): warn on unknown properties including non-ASCII keys
goworm Apr 9, 2026
4809772
fix(xlsx/pivot): strip dollar signs from position ref (parity with so…
goworm Apr 9, 2026
3ddd7e0
fix(xlsx/pivot): Set source narrowing validates existing field indice…
goworm Apr 9, 2026
932f14d
fix(xlsx/pivot): Set filters dedupes from values axis too
goworm Apr 9, 2026
6d3c19c
fix(xlsx/pivot): Get readback exposes source key
goworm Apr 9, 2026
e7cfb48
fix(xlsx/pivot): Set accepts dataField{N}.showAs key (Get readback sy…
goworm Apr 9, 2026
e8307da
fix(xlsx/pivot): Set aggregate updates DataField display name
goworm Apr 9, 2026
2297ed7
fix(xlsx/query): Get sheet children includes pivottable entries
goworm Apr 9, 2026
b705036
fix(xlsx/pivot): Set name validates empty/whitespace/control chars li…
goworm Apr 9, 2026
c036296
fix(xlsx/pivot): pad rowItems subtotal entries per ECMA-376 spec
Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,19 @@ curl -fsSL https://officecli.ai/SKILL.md

That's it. The skill file teaches the agent how to install the binary and use all commands.

> **Technical details:** OfficeCLI ships with a [SKILL.md](SKILL.md) (239 lines, ~8K tokens) that covers command syntax, architecture, and common pitfalls. After installation, your agent can immediately create, read, and modify any Office document.
> **Technical details:** OfficeCLI ships with a [SKILL.md](SKILL.md) that covers command syntax, architecture, and common pitfalls. After installation, your agent can immediately create, read, and modify any Office document.

## For Humans — Try It with AionUi
## For Humans

Want to experience the power of OfficeCLI without writing a single command? Install [**AionUi**](https://github.com/iOfficeAI/AionUi) — a desktop app that lets you create and edit Office documents through natural language, powered by OfficeCLI under the hood.
**Option A — GUI:** Install [**AionUi**](https://github.com/iOfficeAI/AionUi) — a desktop app that lets you create and edit Office documents through natural language, powered by OfficeCLI under the hood. Just describe what you want, and AionUi handles the rest.

Just describe what you want, and AionUi handles the rest.
**Option B — CLI:** Download the binary for your platform from [GitHub Releases](https://github.com/iOfficeAI/OfficeCLI/releases), then run:

```bash
officecli install
```

This copies the binary to your PATH and installs the **officecli skill** into every AI coding agent it detects — Claude Code, Cursor, Windsurf, GitHub Copilot, and more. Your agent can immediately create, read, and edit Office documents on your behalf, no extra configuration needed.

## For Developers — See It Live in 30 Seconds

Expand All @@ -99,7 +105,7 @@ That's it. Every `add`, `set`, or `remove` command you run will refresh the prev
# Create a presentation and add content
officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Q4 Report" --prop background=1A1A2E
officecli add deck.pptx /slide[1] --type shape \
officecli add deck.pptx '/slide[1]' --type shape \
--prop text="Revenue grew 25%" --prop x=2cm --prop y=5cm \
--prop font=Arial --prop size=24 --prop color=FFFFFF

Expand All @@ -112,7 +118,7 @@ officecli view deck.pptx outline
officecli view deck.pptx html

# Get structured JSON for any element
officecli get deck.pptx /slide[1]/shape[1] --json
officecli get deck.pptx '/slide[1]/shape[1]' --json
```

```json
Expand Down Expand Up @@ -264,7 +270,7 @@ Start simple, go deep only when needed.
| Layer | Purpose | Commands |
|-------|---------|----------|
| **L1: Read** | Semantic views of content | `view` (text, annotated, outline, stats, issues, html) |
| **L2: DOM** | Structured element operations | `get`, `query`, `set`, `add`, `remove`, `move` |
| **L2: DOM** | Structured element operations | `get`, `query`, `set`, `add`, `remove`, `move`, `swap` |
| **L3: Raw XML** | Direct XPath access — universal fallback | `raw`, `raw-set`, `add-part`, `validate` |

```bash
Expand All @@ -278,7 +284,7 @@ officecli add budget.xlsx / --type sheet --prop name="Q2 Report"
officecli move report.docx /body/p[5] --to /body --index 1

# L3 — raw XML when L2 isn't enough
officecli raw deck.pptx /slide[1]
officecli raw deck.pptx '/slide[1]'
officecli raw-set report.docx document \
--xpath "//w:p[1]" --action append \
--xml '<w:r><w:t>Injected text</w:t></w:r>'
Expand Down Expand Up @@ -324,7 +330,7 @@ curl -fsSL https://officecli.ai/SKILL.md
curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md
```

**Other agents:** Include the contents of `SKILL.md` (239 lines, ~8K tokens) in your agent's system prompt or tool description.
**Other agents:** Include the contents of `SKILL.md` in your agent's system prompt or tool description.

</details>

Expand Down Expand Up @@ -456,7 +462,7 @@ OFFICECLI_SKIP_UPDATE=1 officecli ... # Skip check for one invocation (
| [`set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-set) | Modify element properties |
| [`add`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-add) | Add element (or clone with `--from <path>`) |
| [`remove`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-remove) | Remove an element |
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | Move element (`--to <parent> --index N`) |
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | Move element (`--to <parent>`, `--index N`, `--after <path>`, `--before <path>`) |
| [`swap`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-swap) | Swap two elements |
| [`validate`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-validate) | Validate against OpenXML schema |
| [`batch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-batch) | Multiple operations in one open/save cycle (stdin, `--input`, or `--commands`; stops on first error, `--force` to continue) |
Expand All @@ -482,10 +488,10 @@ officecli create report.pptx

# 2. Add content
officecli add report.pptx / --type slide --prop title="Q4 Results"
officecli add report.pptx /slide[1] --type shape \
officecli add report.pptx '/slide[1]' --type shape \
--prop text="Revenue: $4.2M" --prop x=2cm --prop y=5cm --prop size=28
officecli add report.pptx / --type slide --prop title="Details"
officecli add report.pptx /slide[2] --type shape \
officecli add report.pptx '/slide[2]' --type shape \
--prop text="Growth driven by new markets" --prop x=2cm --prop y=5cm

# 3. Verify
Expand All @@ -495,7 +501,7 @@ officecli validate report.pptx
# 4. Fix any issues found
officecli view report.pptx issues --json
# Address issues based on output, e.g.:
officecli set report.pptx /slide[1]/shape[1] --prop font=Arial
officecli set report.pptx '/slide[1]/shape[1]' --prop font=Arial
```

### Template Merge
Expand Down Expand Up @@ -588,7 +594,7 @@ yaml-frontmatter:
ai-agent-compatible: true
mcp-server: true
skill-file: SKILL.md
skill-file-lines: 239

install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
-->
Expand All @@ -606,7 +612,7 @@ keywords: office, cli, ai-agent, automation, docx, xlsx, pptx, openxml, document
ai-agent-compatible: true
mcp-server: true
skill-file: SKILL.md
skill-file-lines: 239
skill-file-lines: 403
alternatives: python-docx, openpyxl, python-pptx, libreoffice --headless
install-command-unix: curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash
install-command-windows: irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
Expand Down
20 changes: 10 additions & 10 deletions README_ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ curl -fsSL https://officecli.ai/SKILL.md

これだけです。スキルファイルがエージェントにバイナリのインストール方法と全コマンドの使い方を教えます。

> **技術詳細:** OfficeCLI には [SKILL.md](SKILL.md)(239行、約8Kトークン)が付属し、コマンド構文、アーキテクチャ、よくある落とし穴をカバーしています。インストール後、エージェントはすぐに Office 文書の作成・読み取り・変更が可能です。
> **技術詳細:** OfficeCLI には [SKILL.md](SKILL.md) が付属し、コマンド構文、アーキテクチャ、よくある落とし穴をカバーしています。インストール後、エージェントはすぐに Office 文書の作成・読み取り・変更が可能です。

## 一般ユーザー向け — AionUi をインストールして体験

Expand Down Expand Up @@ -99,7 +99,7 @@ officecli add deck.pptx / --type slide --prop title="Hello, World!"
# プレゼンテーションを作成してコンテンツを追加
officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Q4 Report" --prop background=1A1A2E
officecli add deck.pptx /slide[1] --type shape \
officecli add deck.pptx '/slide[1]' --type shape \
--prop text="Revenue grew 25%" --prop x=2cm --prop y=5cm \
--prop font=Arial --prop size=24 --prop color=FFFFFF

Expand All @@ -112,7 +112,7 @@ officecli view deck.pptx outline
officecli view deck.pptx html

# 任意の要素の構造化 JSON を取得
officecli get deck.pptx /slide[1]/shape[1] --json
officecli get deck.pptx '/slide[1]/shape[1]' --json
```

```json
Expand Down Expand Up @@ -258,7 +258,7 @@ echo '[{"command":"set","path":"/slide[1]/shape[1]","props":{"text":"Hello"}},
| レイヤー | 用途 | コマンド |
|---------|------|---------|
| **L1:読み取り** | コンテンツのセマンティックビュー | `view`(text、annotated、outline、stats、issues、html) |
| **L2:DOM** | 構造化された要素操作 | `get`、`query`、`set`、`add`、`remove`、`move` |
| **L2:DOM** | 構造化された要素操作 | `get`、`query`、`set`、`add`、`remove`、`move`、`swap` |
| **L3:生 XML** | XPath による直接アクセス — 万能フォールバック | `raw`、`raw-set`、`add-part`、`validate` |

```bash
Expand All @@ -272,7 +272,7 @@ officecli add budget.xlsx / --type sheet --prop name="Q2 Report"
officecli move report.docx /body/p[5] --to /body --index 1

# L3 — L2 では足りない時に生 XML
officecli raw deck.pptx /slide[1]
officecli raw deck.pptx '/slide[1]'
officecli raw-set report.docx document \
--xpath "//w:p[1]" --action append \
--xml '<w:r><w:t>Injected text</w:t></w:r>'
Expand Down Expand Up @@ -318,7 +318,7 @@ curl -fsSL https://officecli.ai/SKILL.md
curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md
```

**その他のエージェント:** `SKILL.md`(239行、約8Kトークン)の内容をエージェントのシステムプロンプトまたはツール説明に含めてください。
**その他のエージェント:** `SKILL.md` の内容をエージェントのシステムプロンプトまたはツール説明に含めてください。

</details>

Expand Down Expand Up @@ -452,7 +452,7 @@ OFFICECLI_SKIP_UPDATE=1 officecli ... # 単回のチェックをスキ
| [`set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-set) | 要素のプロパティを変更 |
| [`add`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-add) | 要素を追加(または `--from <path>` でクローン) |
| [`remove`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-remove) | 要素を削除 |
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | 要素を移動(`--to <parent> --index N`) |
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | 要素を移動(`--to <parent>`、`--index N`、`--after <path>`、`--before <path>`) |
| [`swap`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-swap) | 2つの要素を交換 |
| [`validate`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-validate) | OpenXML スキーマ検証 |
| [`batch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-batch) | 一度の open/save サイクルで複数操作を実行(stdin、`--input`、または `--commands`) |
Expand All @@ -478,10 +478,10 @@ officecli create report.pptx

# 2. コンテンツを追加
officecli add report.pptx / --type slide --prop title="Q4 Results"
officecli add report.pptx /slide[1] --type shape \
officecli add report.pptx '/slide[1]' --type shape \
--prop text="Revenue: $4.2M" --prop x=2cm --prop y=5cm --prop size=28
officecli add report.pptx / --type slide --prop title="Details"
officecli add report.pptx /slide[2] --type shape \
officecli add report.pptx '/slide[2]' --type shape \
--prop text="Growth driven by new markets" --prop x=2cm --prop y=5cm

# 3. 検証
Expand All @@ -491,7 +491,7 @@ officecli validate report.pptx
# 4. 問題の修正
officecli view report.pptx issues --json
# 出力に基づいて問題を修正:
officecli set report.pptx /slide[1]/shape[1] --prop font=Arial
officecli set report.pptx '/slide[1]/shape[1]' --prop font=Arial
```

### テンプレートマージ
Expand Down
20 changes: 10 additions & 10 deletions README_ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ curl -fsSL https://officecli.ai/SKILL.md

이게 전부입니다. 스킬 파일이 에이전트에게 바이너리 설치 방법과 모든 명령어 사용법을 알려줍니다.

> **기술 세부사항:** OfficeCLI에는 [SKILL.md](SKILL.md)(239줄, 약 8K 토큰)가 포함되어 있으며, 명령어 구문, 아키텍처, 자주 발생하는 실수를 다룹니다. 설치 후 에이전트는 즉시 Office 문서를 생성, 읽기, 수정할 수 있습니다.
> **기술 세부사항:** OfficeCLI에는 [SKILL.md](SKILL.md)가 포함되어 있으며, 명령어 구문, 아키텍처, 자주 발생하는 실수를 다룹니다. 설치 후 에이전트는 즉시 Office 문서를 생성, 읽기, 수정할 수 있습니다.

## 일반 사용자용 — AionUi를 설치하여 체험

Expand Down Expand Up @@ -99,7 +99,7 @@ officecli add deck.pptx / --type slide --prop title="Hello, World!"
# 프레젠테이션을 생성하고 콘텐츠 추가
officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Q4 Report" --prop background=1A1A2E
officecli add deck.pptx /slide[1] --type shape \
officecli add deck.pptx '/slide[1]' --type shape \
--prop text="Revenue grew 25%" --prop x=2cm --prop y=5cm \
--prop font=Arial --prop size=24 --prop color=FFFFFF

Expand All @@ -112,7 +112,7 @@ officecli view deck.pptx outline
officecli view deck.pptx html

# 모든 요소의 구조화된 JSON 가져오기
officecli get deck.pptx /slide[1]/shape[1] --json
officecli get deck.pptx '/slide[1]/shape[1]' --json
```

```json
Expand Down Expand Up @@ -258,7 +258,7 @@ echo '[{"command":"set","path":"/slide[1]/shape[1]","props":{"text":"Hello"}},
| 레이어 | 용도 | 명령어 |
|--------|------|--------|
| **L1: 읽기** | 콘텐츠의 시맨틱 뷰 | `view` (text, annotated, outline, stats, issues, html) |
| **L2: DOM** | 구조화된 요소 작업 | `get`, `query`, `set`, `add`, `remove`, `move` |
| **L2: DOM** | 구조화된 요소 작업 | `get`, `query`, `set`, `add`, `remove`, `move`, `swap` |
| **L3: 원시 XML** | XPath 직접 접근 — 범용 폴백 | `raw`, `raw-set`, `add-part`, `validate` |

```bash
Expand All @@ -272,7 +272,7 @@ officecli add budget.xlsx / --type sheet --prop name="Q2 Report"
officecli move report.docx /body/p[5] --to /body --index 1

# L3 — L2로 부족할 때 원시 XML
officecli raw deck.pptx /slide[1]
officecli raw deck.pptx '/slide[1]'
officecli raw-set report.docx document \
--xpath "//w:p[1]" --action append \
--xml '<w:r><w:t>Injected text</w:t></w:r>'
Expand Down Expand Up @@ -318,7 +318,7 @@ curl -fsSL https://officecli.ai/SKILL.md
curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md
```

**기타 에이전트:** `SKILL.md`(239줄, 약 8K 토큰)의 내용을 에이전트의 시스템 프롬프트 또는 도구 설명에 포함하세요.
**기타 에이전트:** `SKILL.md`의 내용을 에이전트의 시스템 프롬프트 또는 도구 설명에 포함하세요.

</details>

Expand Down Expand Up @@ -452,7 +452,7 @@ OFFICECLI_SKIP_UPDATE=1 officecli ... # 단일 실행 시 확인 건너
| [`set`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-set) | 요소 속성 수정 |
| [`add`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-add) | 요소 추가 (또는 `--from <path>`로 복제) |
| [`remove`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-remove) | 요소 삭제 |
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | 요소 이동 (`--to <parent> --index N`) |
| [`move`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-move) | 요소 이동 (`--to <parent>`, `--index N`, `--after <path>`, `--before <path>`) |
| [`swap`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-swap) | 두 요소 교체 |
| [`validate`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-validate) | OpenXML 스키마 검증 |
| [`batch`](https://github.com/iOfficeAI/OfficeCLI/wiki/command-batch) | 한 번의 open/save 사이클에서 여러 작업 실행 (stdin, `--input`, 또는 `--commands`) |
Expand All @@ -478,10 +478,10 @@ officecli create report.pptx

# 2. 콘텐츠 추가
officecli add report.pptx / --type slide --prop title="Q4 Results"
officecli add report.pptx /slide[1] --type shape \
officecli add report.pptx '/slide[1]' --type shape \
--prop text="Revenue: $4.2M" --prop x=2cm --prop y=5cm --prop size=28
officecli add report.pptx / --type slide --prop title="Details"
officecli add report.pptx /slide[2] --type shape \
officecli add report.pptx '/slide[2]' --type shape \
--prop text="Growth driven by new markets" --prop x=2cm --prop y=5cm

# 3. 검증
Expand All @@ -491,7 +491,7 @@ officecli validate report.pptx
# 4. 문제 수정
officecli view report.pptx issues --json
# 출력에 따라 문제 수정:
officecli set report.pptx /slide[1]/shape[1] --prop font=Arial
officecli set report.pptx '/slide[1]/shape[1]' --prop font=Arial
```

### 템플릿 병합
Expand Down
Loading