Skip to content

コマンドライン(CLI)

Social Archiver はターミナルから操作でき、スクリプト、自動化、コーディングエージェントに便利です。方法は3つあります。

  • social-archiver CLI — Social Archiver サーバーと直接通信する自己完結型のバイナリです。Node.js もデスクトップアプリも、起動中の GUI も必要ありません。ほとんどの場合はこれを選べば十分です。
  • Obsidian プラグイン CLIobsidian バイナリを通じて起動中の Obsidian Vault を操作します。特定の Vault に Markdown ノートを書き込むことが目的の場合に使います。
  • エージェントスキル — コーディングエージェント(Claude Code、Codex、OpenCode など)に、両方の CLI を安全に扱う方法を教えるインストール可能なスキルバンドルです。

ベータ

social-archiver CLI はベータ(0.1.x)です。リリース間でコマンドや JSON フィールドが変わる可能性があるため、自動化ではバージョンを固定し、アップグレード前にリリースノートを確認してください。

どれを使えばいい?

スクリプト・自動化・エージェントには social-archiver CLI を、開いている Vault にノートを残したい場合は Obsidian プラグイン CLI を使ってください。どちらも同じ JSON レスポンス形式を返します。

social-archiver CLI

自己完結型の実行ファイル1つと、小さな認証情報ヘルパーで構成されます。実行時にほかのものは必要ありません。

インストール

powershell
# Microsoft Store(またはストアアプリで「Social Archiver CLI」を検索)
winget install --id 9PLC2NC0G11J --source msstore

# インストール後に新しいターミナルを開いてから実行してください:
social-archiver --version
bash
# Homebrew
brew install hyungyunlim/tap/social-archiver-cli

# …またはチェックサムを検証するインストーラー(sudo 不要、~/.local/bin にインストール)
curl -fsSL \
  https://github.com/hyungyunlim/obsidian-social-archiver-releases/releases/download/cli-v0.1.5/install.sh |
  sh
bash
# チェックサムを検証するインストーラー(sudo 不要、~/.local/bin にインストール)
curl -fsSL \
  https://github.com/hyungyunlim/obsidian-social-archiver-releases/releases/download/cli-v0.1.5/install.sh |
  sh
bash
# Node.js 20+ がある任意のプラットフォーム — ランチャーが同じネイティブバイナリを導入します
npm install --global social-archiver

# …またはインストールせずに1回だけ実行
npx -y [email protected] --version

Windows ではストアパッケージが social-archiver.exe をアプリ実行エイリアスとして登録しますが、すでに開いているターミナルはこれを認識しません。インストール後に新しいターミナルを開いてください。Windows 版デスクトップアプリはなく、ストアが正式な導入経路です。

macOS と Linux ではインストーラーがリリースのチェックサムを検証し、Homebrew などほかのインストーラーが管理するコマンドを置き換えず、シェルの起動ファイルも変更しません。~/.local/binPATH にない場合は、追加すべき行を表示します。

すでにデスクトップアプリを使っている場合

macOS デスクトップアプリには同じ CLI が同梱されています。設定 → コマンドライン → 'social-archiver' コマンドをインストールから導入すれば、ダウンロードは不要です。短い sa エイリアスも同じ設定から選べます。

サインイン

デスクトップアプリがインストールされ、サインイン済みであれば、CLI は OS が保護しているアプリのアカウント情報を自動的に利用するため、別途ログインする必要はありません。それ以外の場合は次のとおりです。

bash
# インタラクティブ: スマートフォンやサインイン済みアプリで承認するコードと QR を表示します
social-archiver login

# CI・ヘッドレス: トークンをパイプで渡し、プロセス一覧に残らないようにします
printf '%s' "$SOCIAL_ARCHIVER_TOKEN" | social-archiver login --token-stdin

# または実行ごとに環境変数で渡す
export SOCIAL_ARCHIVER_TOKEN="<token>"

# 保存された認証情報を削除(デスクトップのセッションはそのまま)
social-archiver logout

認証情報は OS が保管します。macOS はキーチェーン、Windows は資格情報マネージャー、Linux は Secret Service を使います。Secret Service のないヘッドレス Linux では 0600 のファイルにフォールバックし、その旨を報告します。トークンがまったくない場合もコマンドは動作しますが authenticated: false と報告し、アカウントが必要な呼び出しは失敗します。

コマンド

すべてのコマンドは JSON レスポンスを返します — { "ok": true, "data": … } または { "ok": false, "error": … }。人が読みやすい簡潔な出力には --format text を、各コマンドのフラグには --help を使ってください。

コマンド内容
statusサインイン状態と利用可能な機能を確認
archiveソーシャル・Web URL をアーカイブ(ポーリング用の jobId を返す)
jobアーカイブ・文字起こしジョブの状態を確認
searchサーバー側でアーカイブを検索(スニペットを返す)
exportアーカイブをローカル Markdown として取得し、grep や閲覧を可能に
tag / noteエクスポートしたファイルを分類、またはノートを追加
pushエクスポートしたファイルのフロントマター編集をサーバーへ反映
places抽出された場所候補の確認・確定・解除
bookmark投稿を Inbox と Archived の間で移動(一括)
subscribe公開プロフィールやフィードを購読 — Premium 限定
subscriptions既存の購読の一覧・一時停止・再開・即時実行・削除
post / shareローカル Markdown を投稿、または公開共有リンクを作成
tagsタグ一覧を取得
author-notes最近のアーカイブからサーバー側の著者プロフィールを作成
ai-commentAI コメントのジョブをキューに追加(--run でその場で実行)
executorキュー内の AI ジョブをローカルの provider CLI で実行(--watch で常駐)
transcribe動画・音声アーカイブの文字起こし(--run でその場実行、--doctor でローカルツール点検)

0.1.5 の新機能

Microsoft Store による Windows 対応、places レビューコマンド、そして export 出力に含まれる場所・商品情報。

探し方は2通り

searchexport は答える問いが違います。適切なほうを選ぶと呼び出し回数を大きく減らせます。

  • search — サーバー側でアーカイブ全体を検索し、スニペットを返します。「X について何か保存していたか?」に向いています。
  • export — アーカイブを一度ローカル Markdown として取得すれば、その後は greprg やエージェントがサーバー呼び出しなしで何度でも読めます。分析、大量レビュー、繰り返しの作業に向いています。
bash
# サーバー検索、スニペットが返る
social-archiver search --q "quantum computing" --limit 10

# ローカルコーパス — 一度取得すれば、あとは何度でも検索できます
social-archiver export --dir ./workspace --limit 200
grep -ril "quantum" ./workspace

エクスポートに含まれる場所と商品情報

エクスポートされたファイルには本文だけでなく、Social Archiver が抽出した構造化情報も含まれます。場所が紐付いているアーカイブや商品情報のあるアーカイブでは、フロントマターに次が入ります。

yaml
---
archiveId: "EpCJKin6yj"
platform: threads
places:
  - name: 모녀가리비
    address: 강원특별자치도 속초시 대포항희망길 53
    lat: 38.1733071627822
    lng: 128.605777284753
    source: kakaomap
    category: 음식점 > 한식 > 해물,생선 > 조개
product:
  name: Vital Seamless Leggings
  price: 25
  currency: USD
  availability: InStock
  brand: Gymshark
  rating: 4.5
---

どちらも該当情報がなければブロックごと省かれるため、grep -l '^places:' ./workspace で場所を持つアーカイブだけを正確に絞り込めます。同じ値は本文のメタ行にも **Place:****Price:** として出力されるので、プレーンテキスト検索でも見つかります。

場所候補は抽出時に提案されたもので、確定してはじめて実際に紐付きます。その確定を行うのが places です。

bash
# 保留中の候補をレビュー — 各候補は抽出根拠とともに表示されます
social-archiver places --limit 20

# 正しい候補だけを確定
social-archiver places attach --archive EpCJKin6yj --candidate c1,c2

# 紐付いているすべてのアーカイブから場所を外す(投稿は削除されません)
social-archiver places detach --place-key kakaomap:965452574

bash
# 準備状態を確認
social-archiver status

# URL をアーカイブし、ジョブを完了までポーリング
social-archiver archive --url="https://www.instagram.com/p/example/"
social-archiver job --id="<jobId>"

# 投稿を Inbox から Archived へ移動
social-archiver bookmark --ids id1,id2

# 公開プロフィールを購読し、午前9時にスケジュール
social-archiver subscribe --url="https://x.com/alice" --hour 9

# 作成済みの購読を管理する
social-archiver subscriptions                          # 一覧(id・プラットフォーム・有効状態)
social-archiver subscriptions pause --id <id>          # 一時停止(カーソルは保持)
social-archiver subscriptions run --id <id>            # 即時実行、runId を返す
social-archiver subscriptions runs --id <id> --limit 5 # 実行履歴・クレジット・失敗理由
social-archiver subscriptions delete --id <id> --yes   # 購読解除(アーカイブは保持)

# 動画アーカイブを文字起こし(executor 用のジョブをキューに入れてポーリング)
social-archiver transcribe <archiveId> --mode download-and-transcribe

# …またはその場で実行(ローカルに yt-dlp + ffmpeg + Whisper が必要)
social-archiver transcribe <archiveId> --run

# オフラインデモ — アカウントもネットワークも不要
social-archiver status --host=mock

有料機能

ほとんどのコマンドはどのプランでも動作します。ただし subscribe にはアクティブな Premium エンタイトルメントが必要です — プロフィール・フィードの購読は有料機能です。未加入の場合はサーバーが 402 を返し、CLI の応答は次のとおりです。

json
{ "ok": false, "error": { "code": "PAYWALL_REQUIRED", "retryable": false } }

制限は URL ではなくアカウントに対してかかるため、別のプロフィールを試しても同じ結果になります。同じアカウントでモバイルアプリからアップグレードまたは復元してから再実行してください。

クレジットと制限

ほとんどのアーカイブは無料の直接取得で処理され、0 クレジットです。有料フォールバックと AI 分析だけがクレジットを消費します。月間クレジットは 10(無料)500(Pro) です。ローカルの見積もりよりサーバーの応答を信頼してください。

INSUFFICIENT_CREDITSPAYWALL_REQUIRED が出た場合は、同じアカウントでモバイルアプリからアップグレード・復元するか、ライセンスキーを適用してください。ストアポリシー上 CLI は直接決済を受け付けられないため、再試行せずメッセージをそのまま伝えて停止します。

Obsidian プラグイン CLI

Obsidian プラグインは social-archiver 名前空間でコマンドを登録するため、モーダルを開かずに操作できます。単体の CLI と違い、こちらは起動中の Obsidian プロセスと通信し、Vault にファイルを書き込みます。

要件

  • Obsidian 1.12.7+ のインストーラー、かつ Obsidian が起動していること
  • 対象 Vault で Social Archiver プラグインが有効かつサインイン済みであること
  • Obsidian → 設定 → 一般 → コマンドラインインターフェースCLI を有効化
  • obsidian バイナリが PATH にあること(obsidian help で確認)

使い方

vault=<Vault> を先に渡し、機械可読な出力には format=json を使います。

bash
# 状態
obsidian vault="Research" social-archiver format=json

# URL をアーカイブし、ジョブをポーリング
obsidian vault="Research" social-archiver:archive \
  url="https://www.instagram.com/p/example/" mode=queue format=json

obsidian vault="Research" social-archiver:job id="<jobId>" format=json

作成済みのものを管理する — 単独 CLI と同じ機能です。

bash
# 購読: 一覧を見て、一時停止したり停止理由を確認したりする
obsidian vault="Research" social-archiver:subscriptions format=json
obsidian vault="Research" social-archiver:subscriptions action=runs id="<id>" format=json
obsidian vault="Research" social-archiver:subscriptions action=pause id="<id>" format=json

# 抽出された場所候補を確認し、正しいものだけを確定する
obsidian vault="Research" social-archiver:places format=json
obsidian vault="Research" social-archiver:places action=attach archive="<id>" candidate="c1" format=json

# Inbox を一括で整理する
obsidian vault="Research" social-archiver:bookmark ids="id-1,id-2" format=json

すべてのコマンドとフラグを確認するには:

bash
obsidian help
obsidian help social-archiver:archive

コーディングエージェント(スキル)

どちらの CLI も、コーディングエージェント向けのスキルとして配布されています — Claude Code、Codex、OpenCode、その他スキル互換のエージェント。バンドルには2つのスキルが含まれます。

  • social-archiver-desktop-cli — 単体の social-archiver CLI をヘッドレスで操作
  • obsidian-social-archiver-cli — 起動中の Obsidian Vault を操作

公開バンドルのインストール:

bash
# Claude Code マーケットプレイス
/plugin marketplace add hyungyunlim/obsidian-social-archiver-skills
/plugin install social-archiver@obsidian-social-archiver-skills

# または npx 経由(スキル互換の任意のエージェント)
npx skills add https://github.com/hyungyunlim/obsidian-social-archiver-skills

# または ~/.claude/skills、~/.codex/skills、~/.opencode/skills へ手動でコピー
git clone https://github.com/hyungyunlim/obsidian-social-archiver-skills

バンドルは hyungyunlim/obsidian-social-archiver-skills にあります。各スキルには、コマンド一覧、JSON レスポンス形式、エラーコード、そしてエージェントが守るべきルール(トークンを出力しない、課金エラーで停止する、レート制限を守る)が記載されています。

権限と倫理

エージェントはあなたに代わってアーカイブします。保存する権限があるコンテンツだけをアーカイブしてください。Social Archiver がアーカイブできるのは公開の投稿とプロフィールのみです。非公開やログインが必要なコンテンツは、迂回手段なく終了エラーを返します。

トラブルシューティング

Windows で social-archiver: command not found

ストアパッケージはアプリ実行エイリアスを登録しますが、ターミナルは起動時にしかこれを読み込みません。ターミナルを閉じて新しく開き、もう一度試してください。それでも解決しない場合は、設定 → アプリ → アプリの詳細設定 → アプリ実行エイリアスで該当項目が有効か確認してください。

macOS・Linux で social-archiver: command not found

~/.local/binPATH に追加し、新しいターミナルを開いてください。デスクトップアプリ経由で導入した場合は、設定 → コマンドライン → コマンドラインツールを修復を再実行してください。

sa が別のツールを実行する

一部のシステムでは sa は標準のアカウンティングツール(/usr/sbin/sa)です。インストーラーは自分で作成した sa を上書きせず、PATH の前方にある別の sa が優先されている場合は知らせます。その場合は social-archiver を使ってください。

AUTH_REQUIRED

サインインしていません。social-archiver login を実行するか、ヘッドレス環境では SOCIAL_ARCHIVER_TOKEN を設定してください。Obsidian CLI の場合はプラグイン設定でサインインを完了してください。

obsidian helpsocial-archiver コマンドが表示されない

設定 → 一般 → コマンドラインインターフェースを有効にし、Obsidian 1.12.7+ のインストーラーに更新し、Vault でプラグインが有効になっていることを確認して、Obsidian を一度再起動してください。

INSUFFICIENT_CREDITS / PAYWALL_REQUIRED

同じアカウントでモバイルアプリからアップグレード・復元するか、ライセンスキーを適用してください。CLI は決済を受け付けられません。

次のステップ

MITライセンスで公開されています。