このブログは EmDash で動いていて、CLI と REST API から記事を操作できる。これまではローカルの Claude Code から下書きを入れていた。ただ、それだと地味に不便だったので、 Claude Code のクラウドセッション(Claude Code on the web)を使って、スマホや PC の Claude アプリから記事を書けるようにした。
やりたかったこと
- スマホの Claude アプリから「これ記事にして」で EmDash に下書きが入る
- API トークンをセッションの VM やチャットに置かない
仕組み
クラウドセッションは、Anthropic がホストする VM の上で Claude Code が動く。セッションごとに新しい VM が用意され、リポジトリをクローンした状態で始まる。スマホアプリ・デスクトップアプリ・ブラウザのどこからでも同じセッションを開ける。
記事は Git ではなく D1 に入っているので、EmDash の REST API(/_emdash/api/...)か CLI で操作する。認証には、クラウド環境の API 認証情報を使う。環境に保存したトークンは、リクエストがセッションの VM を出たあとで、Anthropic のエージェントプロキシが付け足す。付くのは登録したホスト宛てのリクエストだけ。トークンは Claude にも、実行するコマンドや環境変数にも渡らない。
認証情報に登録したホストは、環境のネットワークアクセスの設定とは関係なく到達できる。ブログのドメインを許可リストに足す必要はない。
設定手順
1. EmDash で API トークンを発行する
EmDash の管理画面の「設定」から API トークンを作成する。スコープは細かく選べる。今回は記事の作成からメディアやタクソノミーの操作まで任せたいので、「管理者」にチェックを入れた。

2. Claude の環境に認証情報を追加する
Claude の環境設定を開き、「API 認証情報」の「認証情報を追加」から発行したトークンを登録する。API 認証情報は Pro / Max プランで使える機能で、Team / Enterprise ではまだ使えない。
- 追加先: クラウドセッションで使う環境(ここでは
emdash-blog) - 認証情報タイプ: Bearer
- 許可ウェブサイト: ブログのホスト(
blog.kosa3.com) - カスタムヘッダー:
Authorization/ プレフィックスBearer/ 値に発行したトークン

保存したあとは、値を再表示することも編集することもできない。ホストやトークンを変えたいときは、削除して追加し直す。トークンは指定したウェブサイト宛てにしか送られないので、ほかのホストに漏れる心配もない。
これで、セッション内から curl でヘッダーなしに叩いても管理 API が通るようになる。
curl -sS https://blog.kosa3.com/_emdash/api/content/posts
curl -sS https://blog.kosa3.com/_emdash/api/settingsハマったところ: emdash CLI だけ 403 になる
curl では通るのに、npx emdash content list posts だけが Forbidden になる。Node から直接 fetch してみると、原因はすぐわかった。
403 Host not in allowlist: blog.kosa3.com.Node の組み込み fetch は HTTPS_PROXY 環境変数を見ないので、プロキシを通らずに直接外へ出ようとして弾かれていた。認証ヘッダーも付かない。Node 22 なら `NODE_USE_ENV_PROXY=1` を付けるとプロキシを使ってくれる。
NODE_USE_ENV_PROXY=1 npx emdash content list posts --url https://blog.kosa3.comemdash login は要らない。CLI はトークンなしでリクエストを送り、認証ヘッダーはプロキシが付ける。
毎回付けるのは面倒なので、リポジトリの .claude/settings.json に書いておいた。Claude Code が実行するコマンドにはすべてこの環境変数が付くので、新しいセッションでもそのまま CLI が使える。プロキシのない手元の環境では何も起きないので、害もない。
{
"env": { "NODE_USE_ENV_PROXY": "1" }
}実際に書いてみる
あとは Claude アプリでセッションを開いて「こういう記事を書きたい」と伝えるだけ。既存の記事を API で読んで文体や構成を合わせたうえで、CLI で下書き登録まで進めてくれる。
npx emdash content create posts --file post.json --draft --url https://blog.kosa3.com本文はマークダウンで書けば CLI が Portable Text に変換してくれる。カテゴリの設定も API で済む。この記事自体も Claude アプリから頼んで、この流れで下書き登録したものだ。
使ってみて
「記事を書きたい」と思ったときに PC を開かなくていいのが大きい。思いついたタイミングでスマホから頼んでおけば、EmDash に下書きとして残るので、あとで落ち着いて確認して公開できる。
ただ、エージェントには管理者スコープを渡している。公開や削除までは任せず、下書きで止めておくくらいがちょうどいい。