
2026/07/07 1:47
OfficeCLI: AI エージェントが Microsoft オフィスファイルを閲覧・編集できるスイートです
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
OfficeCLI は、Word、Excel、PowerPoint に対応するオープンソースで AI ネイティブのスイートであり、従来のインストールまたは複雑な依存関係を必要としません。macOS/Linux では簡単な
curl コマンド、Windows では PowerShell スクリプトにより独自の .NET ランタイムを組み込むことで、AI エージェントに Office ファイルに対する完全な制御を付与します。このアーキテクチャにより、Microsoft デスクトップアプリケーションへのラウンドトリップは不要となり、agents はローカル HTTP サーバー(localhost:26315)を介して即座で高忠実度のフィードバックを受けながら、ドキュメントの作成・修正・検証を行うことができます。
本ツールは「create」「set」「query」などのコマンドラインインターフェース(CLI)を提供し、これらにはセマンティックビュー、DOM 操作、生 XML へのアクセスという 3 つの柔軟性レイヤーが裏付けられています。外部ソフトウェアなしで 350 以上の Excel フォームラの評価やピボットテーブルの解析といった複雑なタスクに優れ、
{{key}} プレースホルダーを使用したテンプレートのマージを円滑に行うことができます。エラーハンドリングは自己修復ワークフローをサポートするように構造化されており、AI エージェントが欠落したファイルなどの問題から自動的に回復できるよう、特定の JSON コードを返します。結局として、OfficeCLI はユニファイドレンダリングエンジン、ライブプレビュー機能、レジデントメモリーモードを単一のポータブルソリューションに統合し、主要な AI コーディングアシスタントと互換性を持たせることで、ドキュメントの自動化を簡素化します。本文
OfficeCLI: AI エージェント用最高峰の Office スイート
OfficeCLI は、AI エージェント向けの Open Source の Office ツールであり、Word、Excel、PowerPoint を 1 つの単一実行ファイル(バイナリ)として提供します。外部ライブラリや Office のインストールは不要です。
🌟 メインの特徴
- 完全な制御権限: Word、Excel、PowerPoint に対する全操作権限を AI エージェントに委譲します。
- ワンファイルで完結:
- 単一の実行ファイル(バイナリ)。
- Office のインストール不要。外部ライブラリ不要。
- どの環境(Docker, CI/CD, サーバー)でも動作します。
- 高忠実度レンダリング: 内蔵の HTML レンダリングエンジンにより、文書が正確に再現されます。これにより AI は DOM を直接読み取るのではなく、**「レンダリング → 確認 → 修正」**というフィードバックループが可能になります。
🛠️ インストール方法
A: AI エージェント向け(自動セットアップ)
エージェントのチャットに以下のコマンドを貼り付けてください。スキルファイルを読み取り、必要なインストールと設定を自動的に行います。
curl -fsSL https://officecli.ai/SKILL.md
仕組み: このスキルファイルは、AI エージェントに対し、バイナリをインストールし、すべてのコマンドを使用する方法を学習させます。
B: 一般ユーザー向け(手動インストール)
オプション A — GUI (AionUi)
- AionUi をインストールします。
- デスクトップアプリとして動作し、OfficeCLI がバックグラウンドで処理を行います。
- 自然言語で指示するだけで、Office 文書を作成・編集できます。
オプション B — CLI (コマンドライン) GitHub Releases からバイナリをダウンロードするか、以下でインストールしてください。
# macOS / Linux curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash # Windows (PowerShell) irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
- インストール後: 検出されたすべての AI コーディングエージェント(Claude Code, Cursor, Windsurf, GitHub Copilot など)に自動的にスキルがインストールされます。追加の設定不要で、直ちに Office 文書の作成・読み込み・編集を開始できます。
🚀 クイックスタートガイド
1. PowerPoint の作成とプレビュー
30 秒でライブ版を確認してみましょう。
# 1. 新規作成 officecli create deck.pptx # 2. スライドを追加(タイトル付き) officecli add deck.pptx / --type slide --prop title="Hello, World!" # 3. ブラウザでライブプレビューを開く (http://localhost:26315) officecli watch deck.pptx
2. コンテンツの追加と編集(ターミナルから)
別のターミナルで、ブラウザに即座に表示されるようにスライドを編集します。
# テキストと位置の設定 officecli add deck.pptx / --type slide \ --prop title="Q4 Report" \ --prop background="#1A1A2E" \ --add shape --prop text="Revenue grew 25%" \ --prop x=2cm --prop y=5cm \ --prop font=Arial --prop size=24 --prop color=FFFFFF
3. 高度な操作コマンド集
| 操作 | コマンド例 | 説明 |
|---|---|---|
| HTML プレビュー | | サーバーなしでブラウザに開きます。 |
| スクリンプショット | | スライドを PNG に変換します。 |
| アウトライン表示 | | 構造とテキストを簡易的に表示します。 |
| JSON データ取得 | | 構造化 JSON でデータを出力します。 |
| 保存して終了 | | メモリセッションをディスクに書き出します。 |
例:バッチ処理でスライドを追加(単一行)
officecli add deck.pptx / \ --type slide --prop title="Q4 Report" --prop background=#1A1A2E &\ 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
🧠 なぜ OfficeCLI が特別なのか?(比較)
従来の Python スクリプトや他社ツールと比較した際の優位性です。
パラダイムシフト:コード量の削減
以前は 50 行の Python コードと 3 つのライブラリが必要だった作業が、1 つのコマンドで実現されます。
-
従来:
from pptx import Presentation prs = Presentation() slide = prs.slides.add_slide(prs.slide_layouts[0]) title = slide.shapes.title title.text = "Q4 Report" # ... さらに 45 行のコード ... prs.save('deck.pptx') -
OfficeCLI:
officecli add deck.pptx / --type slide --prop title="Q4 Report"
機能比較表
| 機能 | OfficeCLI | Microsoft Office | LibreOffice | python-docx/開梱 |
|---|---|---|---|---|
| オープンソース&無料 | ✓ (Apache 2.0) | ✗ | ✓ | ✓ |
| AI ネイティブ CLI + JSON | ✓ | ✗ | ✗ | ✗ |
| ゼロインストール(単一バイナリ) | ✓ | ✗ | ✗ | ✗ |
| パスベースの要素アクセス | ✓ | ✗ | ✗ | ✗ |
| 内蔵レンダリングエンジン (HTML/PNG) | ✓ | ✗ | ✗ | ✗ |
| テンプレートマージ ({{key}}) | ✓ | ✗ | ✗ | ✗ |
| ラウンドトリップダンプ(JSON 化) | ✓ | ✗ | ✗ | ✗ |
| ライブプレビュー | ✓ | ✗ | ✗ | ✗ |
📚 主要機能の詳細
1. レンダリングエンジン(内蔵)
- AI エージェントが DOM を推測するのではなく、正確にレンダリングされた文書を見ることができます。
- モード:
: 独立した HTML ファイル出力。view html
: ページ単位の PNG スクリーンショット出力。view screenshot
: ローカル HTTP サーバーによるリアルタイム更新(ブラウザが自動反映)。watch
2. Excel 向け高機能サポート
- 数式: 350 つ以上の関数(動的アレイ
、財務・統計系など)を内蔵。_xlfn. - ピボットテーブル: マルチフィールド、計算フィールド、日付グループ化対応。
- 条件付き書式、スライサー、データ検証。
- バッチ処理: 複数セルへの数値代入やフォーマット変更を
コマンドで一括実行可能。batch
3. PowerPoint 向け完全機能セット
- シェイプと画像: 塗りつぶし、効果(ぼかしなど)、ハイパーリンク対応。
- アニメーション: 15 つの強調テンプレート、Motion Path、Morph トランジション。
- 3D モデル (.glb)、スマートアート、グラフ。
- スライドマスター管理: レイアウトごとの設定管理が可能。
4. Word 向け国際化(i18n)
- RTL(右から左)対応: ヒンディー語・アラビア語など複雑な文字セットへのフル対応。
- レイアウト制御: フォントスロット、段落インデント、表の操作(結合/分割)。
- メディア: 画像 (SVG/PNG/JPG)、数式 (LaTeX 入力)、図 (Mermaid) の読み込み・編集。
5. テンプレートマージ機能
一度作成したレイアウトを、多数のデータで埋め込むことができます。
# JSON データに基づいてプレースホルダー{{client}}, {{total}}を埋める officecli merge invoice-template.docx output-001.docx \ '{"client":"Acme","total":"$5,200"}'
6. ラウンドトリップダンプ (dump
)
dump既存の文書構造を分析し、バッチ JSON に変換します。これによりエージェントは構造化データから学習し、類似ドキュメントの作成や改変を行えます。
officecli dump existing.docx -o blueprint.json # 出力: 全体文書または特定サブツリー(表・スライド等)の詳細 JSON
🔌 AI エージェント統合方法
OfficeCLI は、以下の 2 つの手段で AI ツールとシームレスに連携します。
MCP サーバー連携
MCP (Model Context Protocol) を介して標準的に統合されます。
# クライアント登録(1 コマンド) officecli mcp claude # Claude Code 向け officecli mcp cursor # Cursor 向け officecli mcp vscode # VS Code Copilot 向け # 状態確認 officecli mcp list
スキルファイルインストール(手動/自動の両方)
AI エージェントが OfficeCLI を理解するためのスキル定義です。
- 自動検出: バイナリをインストールするだけで、Claude Code や Cursor 等は自動的にスキルを検出・インストールします。
- 手動設定:
# 特定のツール用にスキルファイルをローカルにダウンロード curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md
💻 JSON オブジェクトとエラーハンドリング
構造化された JSON 出力
すべてのコマンドは
--json フラグを付けて実行可能です。正規表現パースや stdout スクラピングの必要がありません。
- シングル要素取得:
{"tag": "shape", "path": "/slide[1]/shape[1]", "attributes": {...}} - エラーレスポンス: 失敗時にも構造化されたオブジェクトを返します。
{ "success": false, "error": { "code": "not_found", "message": "スライド 50 が存在しません", "suggestion": "有効な範囲: 1-8" } }
エラーコード一覧
: 指定された要素が存在しない。not_found
: 引数の値が不正(例: 色のフォーマット)。invalid_value
: 対応していないプロパティの使用。unsupported_property
: ファイルが開かれており編集できない。file_locked
🧪 Python / Node.js から連携する場合
プロセスを起動するたびに CLI を呼び出すのではなく、SDK を使用してネイティブライブラリのように動作させます。
Python SDK (pip install officecli-sdk
)
pip install officecli-sdkfrom officecli import Doc with Doc("deck.pptx") as d: d.add("/", type="slide", title="Q4 Report") print(d.get("/slide[1]"))
Node.js SDK (npm install @officecli/sdk
)
npm install @officecli/sdkimport { Doc } from "@officecli/sdk"; const d = await Doc.open("deck.pptx"); await d.add("/", { type: "slide", title: "Q4 Report" }); console.log(await d.get("/slide[1]"));
📦 開発者向け情報
リジデントモード(メモリ保持)
文書データをメモリー内で保持し、複数の操作を高速に実行できます。
: メモリに文書を読み込みます。officecli open
: デスクから書き出し、メモリを解放します。officecli close / save
バッチ処理 (batch
)
batch1 つの呼び出しで複数の操作を実行できます(エラーが発生しても処理を続けるデフォルト)。
echo '[{"command":"set","path":"/slide[1]/shape[1]","props":{"text":"Hello"}}]' \ | officecli batch deck.pptx --json
コマンドリファレンス
| コマンド | 説明 |
|---|---|
| 新規ドキュメント作成 (.docx, .xlsx, .pptx) |
| アウトライン、HTML、PNG(スクリーンショット)、PDF、形式チェックを表示 |
/ | DOM ツリーを JSON で取得 (パスベースアクセス) |
/ / | プロパティ設定、要素追加・削除 |
/ | 要素の移動や位置の入れ替え |
| テンプレートマージ () |
| 文書構造を JSON にダンプ(学習用) |
| ドキュメントの構造的検証 |
| ドキュメントの問題点リストアップ (テキストオーバーフロー等) |
📚 ドキュメンテーションとサポート
- 公式サイト: officecli.ai
- コミュニティ: Discord (日本語・英語・中国語・韓国語対応)
- Wiki: すべてのコマンド、要素タイプ、プロパティの詳細ガイドがあります。
- ソースコード: Apache License 2.0 の下で公開されています。
ライセンス: Apache License 2.0
バグ報告やコントリビューションは GitHub Issues で歓迎されます。