Skip to content
Als Markdown

CLI

mo は Mottainai のコマンドラインツールです。 anti-waste の考え方に沿って、繰り返し作業やコンテキスト切り替えを減らし、 より速く実行するために設計されています。

用途:

  • ターミナルでの高速操作
  • スクリプトや cron での自動化
  • AI エージェント連携

インストール

bash
curl -sSfL mottainai.app/cli/install.sh | sh

/usr/local/bin に書き込みできない場合、インストーラは ~/.local/bin へ自動でフォールバックします。

インストールページ: mottainai.app/cli

アップデート

bash
mo update

mo update は現在のインストール先に書き込み可能ならその場で更新します。 書き込み不可の場合は ~/.local/bin にインストールします。 ユーザー領域インストールを明示する場合:

bash
mo update --user

ログイン

bash
mo auth login

ブラウザで OAuth ログインを行い、認証情報をローカルに保存します。

ヘッドレス環境やスクリプトでは、API トークン(設定画面で作成)を直接渡せます:

bash
mo auth login --token mot_...

MOTTAINAI_TOKEN 環境変数を設定すれば、ログイン操作なしで使えます:

bash
export MOTTAINAI_TOKEN=mot_...
mo container list --type storage

よく使うコマンド

bash
mo container list --type storage
mo item list STORAGE_ID
mo shopping list SHOPPING_CONTAINER_ID
mo board list
mo calendar list
mo notebook list
mo token list

スクリプト向け出力

--json を使うと機械処理しやすくなります。

bash
# 全フィールド
mo container list --type storage --json

# 特定のフィールドを選択
mo container list --type storage --json=id,name

# ネストされたレスポンスへの jq クエリ
mo search 牛乳 --json='.results[] | {name, type}'

# jq フィルタ
mo item list ID --json='[.[] | select(.quantity > 0) | {title, quantity}]'

フィールド名 (id,name) または jq 式でフィルタリングや整形が可能です。

検索

bash
mo search 牛乳
mo search "type:contact 太郎"
mo search "in:storage category:dairy"
mo search "アーモンドミルク" --json

Web アプリと同じクエリ構文をサポート: AND/OR、フレーズ検索、前方一致、 除外、修飾子 (in:, type:, category:, location:, label:, expires:, is:archived, sort:, limit:)。

共有出費

bash
# コンテナ
mo sharedpay list
mo sharedpay create --name "Summer Trip" --currency EUR
mo sharedpay get SHAREDPAY_ID
mo sharedpay update SHAREDPAY_ID --name "Summer Trip 2026"
mo sharedpay delete SHAREDPAY_ID --yes

# 費用(金額はセント単位: 8000 = €80.00)
mo sharedpay expense list SHAREDPAY_ID [--kind expense] [--currency EUR]
mo sharedpay expense create SHAREDPAY_ID --title "Dinner" --amount 8000 [--payer USER_ID]
mo sharedpay expense delete EXPENSE_ID --yes

# 残高
mo sharedpay balance SHAREDPAY_ID

# ファントム参加者(アカウントなしのゲスト)
mo sharedpay phantom list SHAREDPAY_ID
mo sharedpay phantom create SHAREDPAY_ID --name "Alice"
mo sharedpay phantom rename SHAREDPAY_ID PHANTOM_ID --name "Alice B."

# メンバーとグループ(他のコンテナタイプと同じ)
mo sharedpay member list SHAREDPAY_ID
mo sharedpay member add SHAREDPAY_ID --email user@example.com
mo sharedpay group list SHAREDPAY_ID
mo sharedpay group link SHAREDPAY_ID --group-id GROUP_ID

レシピコレクション

bash
# レシピ一覧
mo recipe list --container COLLECTION_ID

# レシピを取得(スケーリング可)
mo recipe get RECIPE_ID
mo recipe get RECIPE_ID --servings 8

# レシピの作成
mo recipe create --container COLLECTION_ID --title "Pasta Carbonara"
mo recipe create --container COLLECTION_ID --from-url "https://example.com/recipe"
mo recipe create --container COLLECTION_ID --from-text "2 cups flour, 1 egg..."

# 更新と削除
mo recipe update RECIPE_ID --title "New Name" --difficulty easy
mo recipe delete RECIPE_ID --yes

# スケーリング(読み取り専用)
mo recipe scale RECIPE_ID --servings 6

# 買い物リスト連携
mo recipe shopping RECIPE_ID --to SHOPPING_ID --servings 4 --exclude-in-stock

# 調理を記録
mo recipe cooked RECIPE_ID --note "Perfect"

# AI編集
mo recipe ai-edit RECIPE_ID --instruction "make it vegan" --apply

# AIレシピ提案
mo recipe suggest COLLECTION_ID [--storage-ids STORAGE_ID]

# 公開設定
mo recipe publish RECIPE_ID --allow-fork
mo recipe unpublish RECIPE_ID --yes
mo recipe fork TOKEN --container COLLECTION_ID

# エクスポートとインポート
mo recipe export --container COLLECTION_ID --output recipes.json
mo recipe import --container COLLECTION_ID --file recipes.json

ノートブック

bash
# ノートブック
mo notebook list
mo notebook create "My Notes" [--color "#3b82f6"]
mo notebook get NOTEBOOK_ID
mo notebook update NOTEBOOK_ID --name "Updated Notes"
mo notebook delete NOTEBOOK_ID --yes

# ページ
mo notebook page list --container NOTEBOOK_ID
mo notebook page get PAGE_ID --container NOTEBOOK_ID
mo notebook page create --container NOTEBOOK_ID --title "New Page" [--content "# Hello"] [--parent PARENT_PAGE_ID]
mo notebook page update PAGE_ID --container NOTEBOOK_ID --title "Updated" [--content "New content"]
mo notebook page delete PAGE_ID --container NOTEBOOK_ID --yes
mo notebook page move PAGE_ID --container NOTEBOOK_ID [--parent NEW_PARENT_ID] [--position 0]

Webhooks

bash
mo webhooks list
mo webhooks create --url "https://example.com/hook" [--events item.created,item.updated] [--containers ID1,ID2]
mo webhooks get WEBHOOK_ID
mo webhooks update WEBHOOK_ID --url "https://example.com/new-hook"
mo webhooks delete WEBHOOK_ID --yes
mo webhooks test WEBHOOK_ID
mo webhooks rotate-secret WEBHOOK_ID
mo webhooks deliveries WEBHOOK_ID
mo webhooks retry WEBHOOK_ID DELIVERY_ID
mo webhooks enable WEBHOOK_ID

CLIからAI追加

bash
mo ai parse STORAGE_ID --text "ヨーグルト2、米1"

複数アイテムを一度に追加できます。