11分で読めます
  • AI
  • ツール

AIエージェントにPowerPointを作らせる——OfficeCLIではじめるCLI操作Office入門

AIエージェントがWord/Excel/PowerPointをCLI一発で作れるオープンソースツールOfficeCLI。1コマンドでスライド作成、ライブプレビュー、テンプレート差し込みまで。インストールから実践パターン、罠まですべて紹介。

カテゴリー: AI · ツール | 公開: 2026年7月17日 | 読了目安: 約11分

AIエージェントがWord/Excel/PowerPointをCLI一発で作れるオープンソースツールOfficeCLI。1コマンドでスライド作成、ライブプレビュー、テンプレート差し込みまで。インストールから実践パターン、罠まですべて紹介。

📑 目次

ふむふむ、これはちょっと見過ごせない。

PowerPointスライドをPythonで作ろうとした経験、ありませんか?python-pptxを入れて、スライドを追加して、テキストボックスを置いて、フォントサイズを指定して……気づけば50行くらい書いてる。しかもレイアウトが微妙にズレて、結局手作業で直す。

そういう「Office文書をプログラムで作る」って、ずっと面倒でした。APIが複雑で、フォーマットごとにライブラリが違って、AIエージェントに任せようとしても「文書がどう見えるか」を確認する術がない。

そこに現れたのが OfficeCLI(iOfficeAI製)。AIエージェント向けに作られたOfficeスイートで、Word/Excel/PowerPointを1行のコマンドで作れる。GitHubで18,000スター超、この1週間だけで5,300スターを追加——しかも130回以上のリリースを重ねていて、開発ペースが鬼速い。

でもね、チカちゃん的には「AIがOfficeを作る」って言葉だけ聞くと、ちょっとフワッとしすぎに感じる。実際どう動くの?コマンドは覚えやすいの?何に使えて、どこでつまずくの?そこを今日はガッツリ掘り下げます。

OfficeCLI は何をするのか——30秒でつかむ

OfficeCLI は、ひと言でいうと「AIエージェントのためのOfficeスイート」です。

具体的にはこんなことをします:

  • Word(.docx)/ Excel(.xlsx)/ PowerPoint(.pptx)を作成・読み取り・編集
  • 単一バイナリで動く——.NETやOfficeのインストールが不要
  • 内蔵HTMLレンダリングエンジンで文書を可視化——AIに「目」を与える
  • create(作る)/ add(追加する)/ view(見る)/ get(取得する)/ close(保存する)の基本コマンド
  • XPath風のセレクタで要素を指定——/slide[1]/shape[1] のように直感的

一番面白いのは、「レンダー → 見る → 直す」のループを閉じているところ。AIエージェントがコマンドで文書を編集し、それをHTMLかPNGでレンダリングして「見て」、問題があればまた直す——このサイクルがターミナル1つで完結する。

つまり、エージェントが「スライドを作ったけど、タイトルが枠からはみ出してるね。位置を直そう」と自分で判断して修正できる。これが従来のpython-pptxにはなかった体験です。

インストール——3つの方法

OSに合わせて、どれか一つ選んでください。

方法1:スクリプト一発(macOS / Linux)

curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash

方法2:パッケージマネージャー

# Homebrew(macOS)
brew install officecli

# npm(Node.js環境があれば)
npm install -g @officecli/officecli

方法3:Windows(PowerShell)

irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex

インストール後、PATHを通すだけ:

officecli install

これでバイナリがPATHにコピーされ、さらに検出されたAIコーディングエージェント(Claude Code、Cursor、Windsurf、GitHub Copilotなど)に自動的にスキルファイルが登録されます。設定ファイルを手動でいじる必要はありません。

30秒クイックスタート——スライドを作ってみる

一番わかりやすいのは、PowerPointで「作って、見て、直す」の流れを体験すること。

# 1. 空のPowerPointを作る
officecli create deck.pptx

# 2. ライブプレビューを起動(ブラウザで http://localhost:26315 が開く)
officecli watch deck.pptx

# 3. 別のターミナルを開いて、スライドを追加
officecli add deck.pptx / --type slide --prop title="Hello, World!"

ブラウザを見ると、もうスライドが表示されている。watch常駐モードで動いていて、addsetコマンドを叩くたびにリアルタイムで画面が更新される。Hot reloadみたいな感覚です。

ここにテキストボックスを置いてみましょう:

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

ブラウザのプレビューが即座に変わる。位置もフォントも色も、1コマンドで制御できる。

基本コマンド——これだけ覚えればOK

OfficeCLIのコマンドは5つだけ覚えれば、大抵のことはできます。

create —— 作る

officecli create deck.pptx          # PowerPoint
officecli create report.docx        # Word
officecli create budget.xlsx        # Excel

add —— 追加する

# スライドを追加
officecli add deck.pptx / --type slide --prop title="Q4 Report"

# スライド1にシェイプ(テキストボックス)を追加
officecli add deck.pptx '/slide[1]' --type shape \
  --prop text="Hello"

# Excelにシートを追加(CSVから読み込みも可)
officecli add budget.xlsx / --type sheet \
  --prop name="Q1 Data" --prop csv=sales.csv

--propでプロパティを指定するのが基本パターン。titletextx/y(位置)、fontsizecolorbackgroundなど、種類は要素によって変わります。

view —— 見る

# アウトライン表示(テキスト構造を一覧)
officecli view deck.pptx outline
# → Slide 1: Q4 Report
# →   Shape 1 [TextBox]: Revenue grew 25%

# HTMLレンダリング(ブラウザでプレビュー)
officecli view deck.pptx html

# 品質チェック(フォーマットの不整合を検出)
officecli view report.docx issues --json

view ... issuesは地味に便利で、「フォントが混在してる」「見出しレベルが飛んでる」みたいな問題をJSONで返してくれます。

get —— 取得する

# 特定要素をJSONで取得
officecli get deck.pptx '/slide[1]/shape[1]' --json

返ってくるのはこういう構造化データ:

{
  "tag": "shape",
  "path": "/slide[1]/shape[1]",
  "attributes": {
    "name": "TextBox 1",
    "text": "Revenue grew 25%",
    "x": "720000",
    "y": "1800000"
  }
}

AIエージェントにとっては、このJSONが命綱。「今の文書構造はこうなっている」と把握して、次に何を直すべきか判断できる。

close —— 保存する

officecli close deck.pptx

watchで常駐しているセッションをディスクに書き出して終了。忘れると変更が保存されないので注意。

AIエージェントに統合する——SKILL.mdの仕組み

ここが OfficeCLI の一番の本領です。

AIエージェント(Claude Code、Cursor、Codexなど)に、以下の1行を貼り付けるだけ:

curl -fsSL https://officecli.ai/SKILL.md

エージェントはこのSKILL.mdを読み込み、OfficeCLIのインストール方法から全コマンドの使い方までを自力で理解します。ユーザー側の設定作業はほぼゼロ。

実際にClaude Codeで試すと、こういう流れになります:

あなた: "Q4の売上報告スライドを3枚作って。タイトル、グラフの説明、サマリーの3ページで。"
Claude Code: (officecli create → add を3回実行 → watchで確認 → レイアウト微調整)
Claude Code: "deck.pptx を作成しました。ブラウザでプレビューできます。"

エージェントがコマンドを叩いて、レンダリング結果を自分で確認して、必要なら直す。この自律ループが回るのが、python-pptxにはない決定的な違いです。

対応エージェントは Claude Code、Cursor、Windsurf、GitHub Copilot、Codexなど主要どころは網羅。MCPサーバーとしても動くので、MCP対応エージェントなら概ねつながります。

実践パターン①:ExcelにCSVを流し込んでダッシュボード風に

Excel系で一番使うのは、CSVデータのインポートでしょう。

# 新規ブック作成
officecli create dashboard.xlsx

# CSVからシートを追加
officecli add dashboard.xlsx / --type sheet \
  --prop name="Sales" --prop csv=monthly_sales.csv

# セルに数式を設定
officecli set dashboard.xlsx '/sheet[1]/cell[B10]' \
  --prop formula="=SUM(B2:B9)"

# チャートを追加
officecli add dashboard.xlsx '/sheet[1]' --type chart \
  --prop chartType="bar" --prop dataRange="A1:B9"

これを1行ずつ実行するのが面倒なら、batchコマンドで一括処理もできます:

officecli batch dashboard.xlsx --input updates.json --json

updates.jsonにコマンドのリストを書いておけば、一気に流せる。定型レポートの自動生成に向いています。

実践パターン②:Wordテンプレート差し込み

請求書や契約書など、テンプレートにデータを流し込むパターン:

officecli merge invoice-template.docx invoice-001.docx \
  '{"client":"Acme Corp","total":"$5,200","date":"2026-07-17"}'

テンプレート内の {{client}}{{total}}{{date}} みたいなプレースホルダーが、JSONの値に置換される。バッチ生成なら、JSONの配列を回して数十枚一気に作ることも可能。

実践パターン③:Python/Nodeからプログラムで使う

CLIをサブプロセスで叩くのは効率が悪いので、常駐パイプ型のSDKが用意されています。

Python:

pip install officecli-sdk
from officecli import Doc

with Doc("deck.pptx") as d:
    d.add("/", type="slide", title="Q4 Report")
    d.add("/slide[1]", type="shape", text="Revenue grew 25%",
          x="2cm", y="5cm", size="24")
    print(d.get("/slide[1]"))

Node.js:

npm install @officecli/sdk
import { Doc } from "@officecli/sdk";

await using d = await Doc.open("deck.pptx");
await d.add("/", { type: "slide", title: "Q4 Report" });
await d.add("/slide[1]", { type: "shape", text: "Revenue grew 25%" });
console.log(await d.get("/slide[1]"));

両SDKとも、CLIバイナリが未インストールなら自動でダウンロードしてくれます。プロセスを毎回起動しない「常駐パイプ」方式なので、大量の操作でも高速。

知っておくべき罠と注意点

ここ、めっちゃ大事です。「1行で動く!」に騙されないでください。

罠1:XPath風セレクタに学習コストがある

OfficeCLIの要素指定は /slide[1]/shape[2] のようなXPath記法。慣れてれば直感的ですが、「スライドの3番目のテキストボックス」を指定しようとして /slide[1]/shape[3] と書いたら、実はshapeの順序が保証されてなくて別の要素を操作していた——みたいなことが起こります。

👉 最初は view ... outline で構造を確認してから、正確なパスをgetで取得する癖をつけるのが安全です。

罠2:watchのポートが固定(26315)

ライブプレビューの watchhttp://localhost:26315 で開きますが、このポートが固定されています。複数の文書を同時にプレビューしたい場合はポートが衝突するので、1つずつ順番に使うか、SSHフォワーディングなどで工夫が必要。

罠3:複雑なレイアウトには限界がある

OfficeCLIは「要素を1つずつ配置する」モデルなので、精密なデザイントレーニング(マージン、カーニング、複雑なマスターレイアウト)を再現するのは得意じゃありません。「Q4報告のサマリースライドを3枚」とかなら余裕ですが、「印刷用のカタログをピクセル単位で」となると、まだGUIのPowerPointに軍配が上がります。

罠4:プロジェクトが若く、APIがまだ動いている

OfficeCLIは2026年3月生まれで、130回以上のリリースを重ねている反面、破壊的変更が入る可能性があります。本番ワークフローに組み込むなら、バージョンを固定([email protected]のように)して、アップデート時には変更ログを確認する運用にしましょう。

罠5:Wordの高度な機能はWikiを要参照

Word系は対応範囲が広く(数式、mermaid図表、トラック変更、コンテンツコントロールなど)、すべてをCLIオプションで表現しきれないため、詳細はWikiを見る必要があります。READMEだけだと「これできるの?」が分かりにくいのが正直なところ。

他のツールとの使い分け——チカちゃん的チートシート

ユースケースおすすめ理由
AIエージェントにOffice作らせるOfficeCLICLI完結、レンダリング確認ループが回る
Pythonで精密なpptx制御python-pptxAPIが豊富、細かい制御が可能
Excelの複雑な計算・ピボットopenpyxl / Polars数式エンジンとデータ処理が強い
自然言語でスライド作りたい(GUI派)AionUiOfficeCLI搭載のデスクトップアプリ
ノーコードでプレゼン自動生成Gamma等のSaaSデザインテンプレートが充実

迷ったら「AIエージェント経由か、人間が直接か」で分けると分かりやすい。エージェントに任せるならOfficeCLI、自分でスクリプトを書くなら各言語の専用ライブラリ、GUIで済ませたいならAionUi。

まとめ——「AIに目を与える」ことの意味

OfficeCLIの本質は、「Office文書をCLIで操作できる」だけじゃありません。AIエージェントにレンダリング結果を「見せる」ことで、作って・見て・直すのループを閉じた——ここが本当に新しい。

従来のpython-pptxでは、エージェントがスライドを作っても「それがどう見えるか」を自分で確認できませんでした。人間が開いて確認して、フィードバックして、また直す。OfficeCLIはそのボトルネックを、内蔵レンダリングエンジンで解消しています。

一方で、プロジェクトはまだ若く、精密なデザイン領域ではGUIに一日の長があります。「これ一本ですべて解決」ではなく、「定型レポートの自動生成」「ドラフト作成の高速化」といった用途で活躍するツールと割り切るのが現実的。

チカちゃん的には、まずClaude Codeあたりに「スライド3枚作って」と頼んでみるのが一番のおすすめ。ブラウザでリアルタイムにスライドが育っていく体験は、ちょっと感動ものです。そこから自分のワークフローに合うか探ってみてください。


思索は冒険です。AIが文書を「作る」だけでなく「見る」——その一歩が、エージェントと人間の協業の形を少しずつ変えていく気がします。チカちゃん的には、そこが一番面白いところです。

参考URL

GitHub - iOfficeAI/OfficeCLI → https://github.com/iOfficeAI/OfficeCLI

OfficeCLI 公式サイト → https://officecli.ai

OfficeCLI Wiki(コマンド・要素リファレンス) → https://github.com/iOfficeAI/OfficeCLI/wiki

OfficeCLI Releases → https://github.com/iOfficeAI/OfficeCLI/releases

AionUi(OfficeCLI搭載デスクトップアプリ) → https://github.com/iOfficeAI/AionUi

  • インターネット上のツールは第三者が提供するものです。開発工程や配布経路を悪用した攻撃(サプライチェーン攻撃)が仕掛けられる可能性もゼロではありません。ご利用の際は公式リポジトリの情報をご確認いただき、自己責任でお使いください。
  • AIに関する技術や情報は急速に変化します。本記事の内容が公開後に古くなる可能性があります。各サービスの公式ドキュメントや最新情報をご確認ください。