microcms-cli は、microCMS の Content API と Management API をコマンドラインから扱うための Go 製 CLI です。
複数サービスの切り替え、API スキーマのキャッシュ、コンテンツ取得、運用情報の確認、バックアップを 1 つのツールにまとめます。
curl -fsSL https://raw.githubusercontent.com/hsblabs/microcms-cli/main/install.sh | sh
microcms service add
microcms service scan
microcms content list blogs --limit 5 --json
microcms management api schema blogs
microcms backup --out ./backup- microCMS のサービス ID
- Content API Key
- Management API を使う場合は Management API Key(Content API Keyと併用可能)
- Go 1.26 以降でのビルド環境、または GitHub Releases から取得できる配布バイナリ
curl -fsSL https://raw.githubusercontent.com/hsblabs/microcms-cli/main/install.sh | sh
microcms --help特定バージョンを入れる場合:
curl -fsSL https://raw.githubusercontent.com/hsblabs/microcms-cli/main/install.sh | sh -s -- --version v0.1.0git clone https://github.com/hsblabs/microcms-cli.git
cd microcms-cli
make build
./microcms --helpgo install github.com/hsblabs/microcms-cli@latest
microcms-cli --helpgo install で配置される実行ファイル名は microcms-cli です。README の他の例は、配布バイナリと make build の出力名に合わせて microcms を使っています。
service add は対話形式でサービス ID と API キーを登録します。
microcms service addAPI キーは設定ファイルに平文保存されず、暗号化された値を保存し、復号用の鍵は OS キーチェーンに保管します。
microcms service scanservice scan は Management API から API 一覧とスキーマを取得し、ローカルキャッシュに保存します。これにより endpoint 名の補完や、content / management コマンドでの入力検証が効くようになります。
microcms content list blogs --limit 5 --json
microcms content get blogs abc123 --jsonmicrocms management service get
microcms management api list
microcms management api schema blogsmicrocms backup --out ./backup| コマンド | 役割 |
|---|---|
service add/list/use/current/remove/scan |
サービス登録、切り替え、スキーマキャッシュ更新 |
content list/get |
Content API からコンテンツを取得 |
management service/api/member/media/content meta |
Management API から運用情報やスキーマを取得 |
backup |
サービス全体のバックアップをローカルに保存 |
config get/set/list/unset |
CLI 設定の参照・更新 |
completion |
bash / zsh / fish / powershell 向け補完スクリプトを生成 |
uninstall |
バイナリ、設定、キャッシュ、補完ファイルを削除 |
- 複数の microCMS サービスをローカルに登録できます。
- アクティブサービスを保持し、毎回 service ID を指定しなくても操作できます。
--serviceを使うと、そのコマンドだけ別サービスを対象にできます。service scanにより、API 一覧と各 endpoint のスキーマをキャッシュします。- API キーは暗号化して保存し、一覧表示時もマスキングされます。
microcms service list
microcms service use my-blog
microcms service current
microcms service scan --forceContent API はコンテンツ取得に特化しています。content 系コマンドは、--format / --json を明示しない場合でも JSON 出力を優先します。
microcms content list blogs --limit 10 --fields id,title,publishedAt
microcms content list blogs --filters 'category[equals]news' --orders -publishedAt
microcms content get banner
microcms content get blogs abc123利用できる主なフラグ:
| フラグ | 説明 |
|---|---|
--limit |
取得件数 |
--offset |
オフセット |
--fields |
取得フィールドを絞り込み |
--orders |
ソート順 |
--filters |
microCMS の filter 式 |
Management API では、サービス運用やスキーマ確認に必要な情報を取得できます。
microcms management service get
microcms management api list
microcms management api schema blogs
microcms management member list
microcms management media list
microcms management content meta list blogsManagement 系コマンドは Management API Key を設定しておくのが安全です。未設定時は Content API Key を流用しますが、権限不足で失敗する可能性があります。
backup はアクティブサービスの内容をタイムスタンプ付きディレクトリに保存します。
microcms backup --out ./backup
microcms backup --out ./backup --download-media
microcms backup --out ./backup --dry-run
microcms backup --out ./backup --skip-schema出力イメージ:
backup/
<service-id>/
20260422T1200Z/
service.json
apis.json
manifest.json
schemas/
blogs.schema.json
contents/
blogs/
index.json
items/
abc123.json
banner/
object.json
media/
index.json
hero.jpg
バックアップの特徴:
- API ごとにコンテンツを分けて保存
manifest.jsonに件数や実行結果を記録--download-mediaでメディア本体も取得--parallelで並列度を調整--dry-runで実行前に対象 API を確認
設定は次の優先順位で解決されます。
- 既定値
- 設定ファイル
- 環境変数
- コマンドラインフラグ
設定ファイルの保存先:
~/.config/microcms/config.json~/.config/microcms/service/*.json~/.cache/microcms/scan/*.json
設定例:
{
"activeService": "my-blog",
"http": {
"timeout": "45s"
},
"output": {
"format": "json",
"pretty": true,
"color": "auto"
},
"scan": {
"ttl": "24h"
},
"backup": {
"parallelism": 8
},
"log": {
"level": "info"
}
}主な環境変数:
| 環境変数 | 説明 | 既定値 |
|---|---|---|
MICROCMS_ACTIVE_SERVICE |
アクティブサービス ID | なし |
MICROCMS_HTTP_TIMEOUT |
HTTP タイムアウト | 30s |
MICROCMS_HTTP_RETRY_ENABLED |
リトライの有効化 | true |
MICROCMS_HTTP_RETRY_MAX_ATTEMPTS |
最大リトライ回数 | 5 |
MICROCMS_FORMAT |
既定の出力形式 | table |
MICROCMS_COLOR |
色付き出力の制御 | auto |
MICROCMS_SCAN_TTL |
スキャンキャッシュの TTL | 24h |
MICROCMS_BACKUP_PARALLELISM |
バックアップ並列数 | 4 |
MICROCMS_LOG_LEVEL |
ログレベル | info |
MICROCMS_LOG_HTTP |
HTTP ログの出力 | false |
共通フラグ:
| フラグ | 説明 |
|---|---|
-s, --service |
対象サービスを一時的に上書き |
--format |
table, json, yaml を選択 |
--json |
--format json のショートハンド |
--verbose |
詳細出力 |
-q, --quiet |
非エラー出力を抑制 |
--debug |
HTTP リクエストを含むデバッグ出力 |
--no-color |
色付き出力を無効化 |
--no-input |
対話入力を無効化 |
-f, --force |
確認プロンプトをスキップ |
補完スクリプトを生成できます。
microcms completion bash
microcms completion zsh
microcms completion fish
microcms completion powershell例:
microcms completion zsh > "${fpath[1]}/_microcms"開発用セットアップ:
git clone https://github.com/hsblabs/microcms-cli.git
cd microcms-cli
make build
go test ./...リリース用のローカル確認:
make snapshot不具合修正、ドキュメント改善、機能提案の Pull Request を歓迎します。
コントリビューション歓迎です。参加者一覧は GitHub の contributors graph を参照してください。
MIT License です。