CLI クイックリファレンス
GEO Wiki CLI v1.0.4 コマンド早見表 -- Agent 向けリファレンス
GEO Wiki Pro v1.0.7 コマンドライン管理ツール。AI Agent が知識ベースを自動管理できるようにします。
## インストール
```bash
# Node.js >= 18 が必要
npm install -g geowiki-cli
# インストール確認
geo status
```
## ログイン
```bash
# Token ログイン(推奨、90日間有効)
geo login --url https://geowiki.pro --token geo_xxxxx
```
ログイン後、Token はローカルに自動保存され、以降のコマンドは自動的に認証情報を携带します。
## ヘルスチェック
```bash
geo health # サーバー状態をチェック(ログイン不要)
geo health --json # JSON 形式出力
```
## ドキュメント管理
```bash
# ドキュメント一覧
geo doc list --category <category> --lang zh --json
# ドキュメント作成(ファイルから)
geo doc create --file ./article.md --category <category> --lang zh
# ドキュメント作成(直接内容を渡す)
geo doc create --title "タイトル" --category docs --slug my-doc --content "# 本文コンテンツ"
# ドキュメント取得
geo doc get --slug <slug> --lang zh --json
# ドキュメント更新(ファイルから)
geo doc update --slug <slug> --file ./updated.md --lang zh
# タイトル更新
geo doc update --slug <slug> --title "新タイトル" --lang zh
# 説明更新
geo doc update --slug <slug> --description "新説明" --lang zh
# 著者更新
geo doc update --slug <slug> --author "張三" --lang zh
# タグ更新
geo doc update --slug <slug> --tags "tag1,tag2" --lang zh
# 通知更新
geo doc update --slug <slug> --notice "このドキュメントは更新されました" --lang zh
# 並び順のみ更新
geo doc update --slug <slug> --sort 0
# カテゴリのみ更新
geo doc update --slug <slug> --category new-category
# URL slug のリネーム(全言語同期更新)
geo doc slug-rename --slug old-name --new-slug new-name
# ドキュメント削除(ゴミ箱に移動、言語指定が必要)
geo doc delete --slug <slug> --lang zh --yes
# 一括ソート
geo doc reorder --orders "slug1:0,slug2:1,slug3:2"
```
## カテゴリ管理
```bash
geo category list --json
geo category create --name "カテゴリ名" --slug category-slug
geo category update --slug <slug> --name "新名称"
geo category delete --slug <slug>
```
## タグ管理
```bash
geo tag list --json
geo tag create --name "タグ名" --slug tag-slug
geo tag delete --slug <slug>
```
## メディアアップロード
```bash
geo media upload --file ./image.png
geo media upload --file ./document.pdf --directory docs
geo media list --json
```
## 設定管理
```bash
geo config get --json
geo config update --site-name "新サイト名"
geo config update --hero-title "新タイトル" --hero-subtitle "新サブタイトル"
geo config update --featured-slugs "slug1,slug2,slug3"
```
## ユーザー管理
```bash
geo user list --json
geo user create --username <user> --password <pass> --role editor
geo user update --id <user-id> --role admin
geo user reset-password --id <user-id>
geo user delete --id <user-id>
# API Token 管理
geo user token list --json
geo user token delete --id <token-id>
```
## 下書き管理
```bash
geo draft list --json # 下書き一覧
geo draft get --slug <slug> # 下書き内容を表示
geo draft publish --slug <slug> --lang zh # 下書きを公開
geo draft publish --slug <slug> --lang en # 下書きを公開(言語指定)
geo draft delete --slug <slug> --lang zh # 下書きを削除
geo draft delete --slug <slug> --lang en # 下書きを削除(言語指定)
```
## その他のコマンド
```bash
geo search "キーワード" --lang zh --json # ドキュメント検索
geo stats --json # ダッシュボード統計
geo feedback list --json # フィードバック管理
geo guestbook list --json # ゲストブック管理
geo geo status # GEO 最適化ステータス
geo geo report --json # GEO 分析レポート
geo geo rebuild # llms.txt / sitemap 再構築
```
## グローバルオプション
すべてのコマンドは `--json` フラグをサポートし、構造化 JSON を出力します。Agent のパースに適しています。
## Agent 注意事項
### 1. sed で NAS 上のファイルを直接編集しない
```bash
# エラー:ファイルが切り捨てられ、sed は変更部分のみ保持する
ssh user@nas "sed -i 's/old/new/' /path/to/file.md"
# 正しい:CLI または API を使用して更新
geo doc update --slug <slug> --file ./updated.md
```
**理由**:`sed -i` は複数行ファイルを処理する際、frontmatter 以外のコンテンツが失われる可能性があります。
### 2. 中国語ファイル名はエンコードが必要
CLI とフロントエンドはファイル名を自動的に `encodeURIComponent()` エンコードします。API を直接呼び出す場合は手動でエンコードが必要です:
```bash
# エラー
curl -H "X-Original-Filename: 测试.pdf" ...
# 正しい
curl -H "X-Original-Filename: %E6%B5%8B%E8%AF%95.pdf" ...
```
### 3. すべての書き込み操作に CSRF Token が必要
CLI は自動的に処理します。API を直接呼び出す場合は、Cookie から `XSRF-TOKEN` を抽出してリクエストヘッダーに入れる必要があります。
### 4. サポートされているファイルアップロードタイプ
画像:JPG, PNG, GIF, WebP
動画:MP4, WebM
音声:MP3, WAV, OGG
ドキュメント:PDF, DOC, DOCX, TXT, MD
3D モデル:STEP, STP, IGS
## Agent 使用例
```bash
# 完全なワークフロー:ログイン -> ドキュメント作成 -> GEO 再構築
geo login --url https://geowiki.pro --token geo_xxxxx
geo doc create --file ./new-article.md --category guide --lang zh
geo geo rebuild
# 一括インポート
for f in ./docs/*.md; do
geo doc create --file "$f" --category docs --lang zh
done
# 検索結果の処理
geo search "API" --json | jq '.[] | {slug, title}'
```