mcpField
T
typefully

typefully

github.com/typefullyマーケティング・グロース632.0k 回インストール1 日前に更新
リポジトリ

typefully について

Typefully Skillは、Node.jsのコマンドラインツールで、接続済みの複数のSNS向けコンテンツを作成、予約、公開します。投稿と下書きを一元管理し、プラットフォーム別の内容や公開予定も扱えます。

主な機能

  1. 01SNS下書きの作成と編集
  2. 02指定された6つのプラットフォームへの公開
  3. 03投稿の予約と予定登録
  4. 04メディア、タグ、メモの追加
  5. 05下書きとソーシャルセットの管理

活用シーン

  1. 01複数プラットフォーム向けの投稿作成
  2. 02プラットフォーム別のスレッドと投稿の準備
  3. 03後日の投稿予約
  4. 04予約済みまたは公開済み下書きの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/typefully/agent-skills --skill typefully

インストール後、Claude Code で/typefullyを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
references/
comments.md
local-development.md
quotes.md
setup.md
references/platforms/
linkedin.md
x-articles.md
x.md
scripts/
typefully.js

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

Typefully スキル

Typefully を使用して、X、LinkedIn、Threads、Bluesky、Mastodon、Substack Notes 向けのソーシャルメディアコンテンツを作成、予約、公開します。すべての操作は ./scripts/typefully.js(Node.js 18 以上、依存関係なし)を通じて実行します。すべてのコマンドは JSON を出力します。

スクリプトのパスは、このスキルのディレクトリからの相対パスです。スキルのインストール先を基準に解決してください。

最新性の確認:上記の last-updated の日付から 30 日以上経過している場合、このスキルが古くなっている可能性があることをユーザーに伝え、references/setup.md に記載されている更新方法を案内してください。

認証エラー:CLI が "API key not found"、"Authentication failed"、"HTTP 401"、または無効・期限切れのキーに関するメッセージを返した場合は、./scripts/typefully.js setup を実行するか、TYPEFULLY_API_KEY を更新するようユーザーに伝えてから、処理を停止してください。認証情報を探したり、Typefully のウェブ UI、ブラウザーでのスクレイピング、または localhost の開発サーバーに切り替えたりしないでください。詳細は references/setup.md を参照してください。

共有された Typefully の下書き URL

ユーザーから Typefully の下書き URL が渡された場合は、Typefully のウェブ UI の閲覧やスクレイピングではなく、このスキルを使用してください。

  • https://typefully.com/?a=<social_set_id>&d=<draft_id> は次のように対応します。

    ./scripts/typefully.js drafts:get <social_set_id> <draft_id>
    
  • https://typefully.com/?d=<draft_id> は設定済みのデフォルトのソーシャルセットを使用できます。

    ./scripts/typefully.js drafts:get <draft_id> --use-default
    

共有された下書き URL のコメント、返信、解決、または編集を行う場合は、まず上記の対応関係を使用して下書きを取得し、コメントのワークフローの詳細が必要になった時点で references/comments.md を読み込んでください。

リファレンスガイド

タスクで必要な場合にのみ読み込んでください。

ガイド次の操作が必要な場合に使用します
references/setup.mdAPI キーの設定、「API key not found」エラーの解決、CI のセットアップ、またはスキルが最新かどうかの確認
references/comments.md下書きへのコメントの追加、返信、解決、削除、またはコメントがすでにある下書きの編集
references/quotes.mdX、Threads、Bluesky、Mastodon の別の投稿を引用、または Substack で再投稿
references/platforms/x.mdX(旧 Twitter)の投稿への返信、コミュニティへの投稿、または開示ラベルの追加
references/platforms/linkedin.mdLinkedIn で会社や人物にメンション、または LinkedIn の最初のコメントの追加
references/platforms/x-articles.md長文の X Article(単独プラットフォーム)の執筆または編集

1. ソーシャルセットを選択する

「ソーシャルセット」とは、ユーザーが「アカウント」と呼ぶもので、1 つのアイデンティティに接続されたプラットフォームを指します。デフォルトが設定されていれば、ほとんどのコマンドは social_set_id なしで実行できます。位置引数(drafts:list 123)または --social-set-id 123 で指定してください。

使用するソーシャルセットを決めるには:

  1. config:show を実行します。default_social_set が設定されていれば、CLI が自動的に使用するため、そのまま進めてください。
  2. それ以外の場合は social-sets:list を実行します。ソーシャルセットが 1 つだけなら、それを使用してください。
  3. 複数あり、デフォルトが設定されていない場合は、ユーザーに確認してから、保存する方法として config:set-default を案内してください。
  4. セッション中にすでに特定したソーシャルセットは、再度確認せずに使用してください。

2. 下書きを作成する

./scripts/typefully.js drafts:create --text "Your post"
  • --platform を省略すると、最初に接続されたプラットフォームが自動的に選択されます。プラットフォーム名:x、linkedin、threads、bluesky、mastodon、substack(Substack Notes)、x_article。
  • スレッドを分割するには、単独行に --- を記述します。例外:substack では下書きごとに 1 つの投稿のみ指定でき、スレッドは使用できません。スレッドと Substack Note の両方を作成する場合は、下記の 1 つの下書きパターンを使用して、substack 用に 1 つの投稿コンテンツを指定してください。
  • Substack Notes のメディアは画像と GIF のみ(最大 6 件)で、動画は拒否されます。
  • --media でメディア、--tags でタグ、--scratchpad で内部メモ、--title で内部名を追加します。
  • --text の代わりに --file ./post.txt を指定すると、ファイルからコンテンツを読み込めます。
投稿ごとに下書きは1件 — 常に

同じコンテンツを複数のプラットフォームに投稿する場合は、1件の下書きに複数のプラットフォームを指定します。

./scripts/typefully.js drafts:create --platform x,linkedin --text "Big announcement!"
./scripts/typefully.js drafts:create --all --text "Posting everywhere!"   # all connected platforms

プラットフォームごとに異なるコンテンツにする場合(例:X のスレッドと、内容を調整した LinkedIn の投稿)も、必ず1件の下書きを使用してください。最初のプラットフォームで作成してから、drafts:update で別のコンテンツを追加します。

./scripts/typefully.js drafts:create --platform linkedin --text "Excited to share..."   # -> id draft-123
./scripts/typefully.js drafts:update draft-123 --platform x --text "🧵 Thread time!" --use-default

ユーザーがプラットフォームごとに別々の下書きを明示的に希望している場合を除き、複数の下書きを作成しないでください。

--all では x_article は対象外です。X Articles は単独で投稿するもので、ほかのプラットフォームと組み合わせることはできません。詳しくは references/platforms/x-articles.md を参照してください。

接続されている場合、--all には substack が含まれます。Substack Notes は単一の投稿を受け付けるため、スレッドのコンテンツを指定した --all はエラーになります。--platform で substack を除外するか、drafts:update で Substack 用に単一投稿のコンテンツを指定してください。

スクラッチパッドのメモ

ユーザーから下書きにメモ、アイデア、コンテキストを追加するよう依頼された場合は、--scratchpad を使用してください。ローカルファイルには書き込まないでください。 スクラッチパッドのメモは Typefully の下書きに添付され、UI で確認できます。非公開のまま保持され、公開されることはありません。

./scripts/typefully.js drafts:create --text "My post" --scratchpad "Ideas: 1) Add stats 2) Include quote"
リンクプレビュー

投稿に URL が含まれている場合、Typefully はテキスト内の最後の URL の Open Graph メタデータを自動取得し、LinkedIn、Threads、Bluesky、Substack Notes でリッチリンクプレビューカードを公開します。フラグは不要です。自動的に機能します。X と Mastodon では、公開後にリンクが展開されます。Substack Notes では、ノートに画像が含まれている場合、カードはスキップされます(画像とリンクカードは同時に使用できません)。

カードなしで URL をプレーンテキストとして公開するには、--hide-link-preview を指定します。プレビューの非表示に対応しているのは LinkedIn、Threads、Substack Notes のみ です(Typefully エディターと同様です)。これらのプラットフォームがいずれも対象に含まれていない場合、このフラグはエラーになります。複数プラットフォームを指定した下書きで、ほかのプラットフォームに対しては無視されます。

./scripts/typefully.js drafts:create --platform linkedin,threads --text "Read this https://example.com" --hide-link-preview
./scripts/typefully.js drafts:update draft-123 --hide-link-preview --use-default   # hide the card on an existing draft

3. 予約と公開

./scripts/typefully.js drafts:create --text "..." --schedule next-free-slot   # or an ISO time, or "now"
./scripts/typefully.js drafts:schedule <draft_id> --time next-free-slot --use-default
./scripts/typefully.js drafts:publish <draft_id> --use-default
./scripts/typefully.js drafts:create --text "..." --plan next-free-slot      # planned: dated but inert
./scripts/typefully.js drafts:plan <draft_id> --time next-free-slot --use-default
  • next-free-slot を使うと、Typefully が最適な時間を選択します。
  • 公開すると取り消せず、公開状態になります。ユーザーが「今すぐ公開」/「すぐに投稿」と指示していない限り、まず確認してください。下書きの作成は安全です。
  • 予定済みの下書きは、指定日時にキュー/カレンダーに表示されますが、自動公開されることはありません。drafts:schedule で確定して実際に予約するか、drafts:publish で公開してください。日付を過ぎた予定済みの下書きは、期限超過でも失敗でもありません。まだ確定されていないだけなので、予定を立て直すか、確定してください。--plan と --schedule は同時に指定できません。drafts:update --plan null を実行すると、下書きは通常の下書き状態に戻ります。
  • ソーシャルセットのデフォルトが設定されている場合、引数が1つのコマンドには --use-default が必要です(下記の安全上の注意を参照してください)。

よく使う操作

ユーザーの依頼操作
「Xの投稿文を作成して」drafts:create --text "..."
「これをLinkedInに投稿して」drafts:create --platform linkedin --text "..."
「Substack Noteを投稿して」drafts:create --platform substack --text "..."(単一の投稿で、スレッドには対応していません)
「XとLinkedInに投稿して」(同じ内容)drafts:create --platform x,linkedin --text "..."
「Xのスレッドと、内容を調整したLinkedInの投稿」まず下書きを作成し、その後 drafts:update でプラットフォームを追加します
「何が予約されている?」/「最近の投稿は?」drafts:list --status scheduled / --status published
「これを明日に予約して」drafts:create --text "..." --schedule "<ISO time>"
「これを今すぐ投稿して」drafts:create --text "..." --schedule now または drafts:publish <id> --use-default
「火曜日に仮で入れておいて」(公開の確約はしない)drafts:create --text "..." --plan "<ISO time>" を実行し、後で drafts:schedule で確定します
「利用可能なタグを確認して」tags:list
「投稿枠の残数を確認して」social-sets:get → publishing_quota
「X Articleの下書きを作成して」references/platforms/x-articles.md を参照してください
「LinkedInで会社に言及して」references/platforms/linkedin.md を参照してください
「LinkedInの投稿に最初のコメントを追加して」references/platforms/linkedin.md を参照してください
「コメントする/コメントを解決する」references/comments.md を参照してください

コマンド

すべてのコマンドはJSONを出力します。[social_set_id] はすべて省略可能で、省略すると設定済みのデフォルト値が使用されます。

安全に関する注意:デフォルトのソーシャルセットが設定されている場合に、引数としてドラフトID(draft_id)を1つだけ指定するときは、drafts:get、drafts:update、drafts:delete、drafts:schedule、drafts:plan、drafts:publish に --use-default が必要です。

プラットフォームやワークフローに固有のコマンドについては、各ガイドを参照してください:quotes.md、platforms/x.md(返信、コミュニティ、情報開示)、platforms/linkedin.md(メンション、最初のコメント)、platforms/x-articles.md、comments.md、setup.md。

ユーザーとソーシャルセット
コマンド説明
me:get認証済みユーザーの情報を取得します
social-sets:listアクセス可能なすべてのソーシャルセットを一覧表示します
social-sets:get <id>接続済みプラットフォームや publishing_quota など、ソーシャルセットの詳細を取得します

social-sets:get は、利用可能な場合に publishing_quota オブジェクトを返します。このオブジェクトには used、remaining(または "unlimited")、resets_at が含まれます。ユーザーから投稿枠について尋ねられた場合、または投稿や予約が投稿枠に関するメッセージとともに失敗した場合は、投稿または予約の前に確認してください。

下書き

すべての下書きコマンドでは、先頭に省略可能な [social_set_id] を指定できます。省略した場合は、設定済みのデフォルトが使用されます。基本コマンドは次の4つです。

コマンド説明
drafts:list [social_set_id]下書きを一覧表示します。--status scheduled|published|... で絞り込み、--sort で並べ替えます
drafts:get [social_set_id] <draft_id>下書きの全コンテンツを取得します。--exclude-comment-markers を追加すると、posts[*].text をコメントアンカーなしで表示します(表示のみ)
drafts:create [social_set_id] --text "<post text>"下書きを作成します(--platform を省略すると、プラットフォームが自動選択されます)
drafts:update [social_set_id] <draft_id> --text "<post text>"下書きのコンテンツを置き換えます

drafts:create または drafts:update コマンドには、次のフラグを追加できます。各フラグが使用できるコマンドは、適用先列に示しています。

フラグ効果適用先
--platform x,linkedin対象のプラットフォームを指定します(カンマ区切り)create, update
--all接続済みのすべてのプラットフォームを対象にします(x_article を除く)create
--file <path>--text の代わりにファイルからコンテンツを読み込みますcreate, update
--append --text "<text>"既存のスレッドに追加しますupdate
--media <media_ids>メディアを添付します(カンマ区切り)create, update
--tags "tag1,tag2"タグを設定します(更新時にこれだけを変更する場合、コンテンツは変更されません)create, update
--title "<internal title>"下書きの内部タイトルを設定します(投稿されません)create, update
--scratchpad "<notes>"内部メモを添付します(スクラッチパッドのメモを参照)create, update
--share公開共有 URL を生成しますcreate, update
--schedule <iso|next-free-slot|now>下書きを予約または再予約しますcreate, update
--plan <iso|next-free-slot>下書きを計画します。日付は設定されますが、確認するまで有効になりません(--schedule とは併用できません。更新時に null を指定すると、通常の下書きに戻ります)create, update
--hide-link-previewリンクプレビューカードを非表示にします(LinkedIn/Threads/Substack のみ。有効範囲はリンクプレビューを参照)create, update
--quote-post-url <url>URL のプラットフォーム上で別の投稿を引用するか、Substack で再スタックします(quotes.md を参照)。--text でテキストを置き換える場合は、このフラグも再度指定してくださいcreate, update
--exclude-comment-markersアンカーなしで応答を表示します(表示のみ。検証は引き続き適用されます)update
--force-overwrite-comments破壊的な最終手段です。詳細は comments.md を参照してくださいupdate

たとえば、次のように基本コマンドとフラグを組み合わせます。

./scripts/typefully.js drafts:create --text "Launch day!" --platform x,linkedin --tags product --schedule next-free-slot
./scripts/typefully.js drafts:update 456 --text "Revised copy" --media abc-123 --use-default

X 専用の下書きフラグ(--reply-to、--community、--paid-partnership、--made-with-ai)については、platforms/x.md を参照してください。X Article のフラグ(--content-markdown、--cover-media-id)については、platforms/x-articles.md を参照してください。LinkedIn の最初のコメント(--linkedin-first-comment)については、platforms/linkedin.md を参照してください。

スケジュール設定と公開

デフォルトのソーシャルセットが設定されている場合、引数を1つだけ指定する形式では --use-default が必要です。

コマンド説明
drafts:schedule <social_set_id> <draft_id> --time <iso|next-free-slot>指定した時刻または次の空き枠に予約します(計画済みの下書きも確定します)
drafts:plan <social_set_id> <draft_id> --time <iso|next-free-slot>自動公開を有効にせずに日付を計画します。後で drafts:schedule を使って確定します
drafts:publish <social_set_id> <draft_id>すぐに公開します
drafts:delete <social_set_id> <draft_id>下書きを削除します
キュー

キューは、ソーシャルセットごとのタイムラインです。ソーシャルセットのキュースケジュールに基づく空きスロットと、同じソーシャルセットの予約済みおよび予定済みの下書き/投稿が表示されます。ユーザーがアカウントの指定した期間に何が予約済みか、または空いているかを尋ねた場合は、queue:get を使用してください。

コマンド説明
queue:get [social_set_id] --start-date <YYYY-MM-DD> --end-date <YYYY-MM-DD>キューのタイムライン:指定期間の空きスロットと、予約済み/予定済みの下書きおよび投稿(各下書きの status を確認してください。予定済みの下書きは自動公開されません)
queue:schedule:get [social_set_id]キュースケジュールのルールを取得
queue:schedule:put [social_set_id] --rules '[{"h":9,"m":30,"days":["mon","wed","fri"]}]'キュースケジュールのルールを置き換え(全件置換)

スネークケースの日付エイリアス(--start_date、--end_date)も使用できます。

タグ

タグはソーシャルセットごとに管理されます。あるソーシャルセットのタグは、別のソーシャルセットには表示されません。作成する前に、既存のタグを確認してください。

コマンド説明
tags:list [social_set_id]すべてのタグを一覧表示
tags:create [social_set_id] --name "Tag Name"新しいタグを作成
メディア
コマンド説明
media:upload [social_set_id] <file_path>メディアをアップロードし、処理が完了するまで待ってから、使用可能な media_id を返す
media:upload ... --no-waitメディアをアップロードしてすぐに返す(media:status で状態を確認)
media:upload ... --timeout <seconds>処理タイムアウトをカスタム設定(デフォルトは60)
media:status [social_set_id] <media_id>アップロードの状態を確認
例
# Create a tweet (default social set)
./scripts/typefully.js drafts:create --text "Hello, world!"

# Explicit social_set_id
./scripts/typefully.js drafts:create 123 --text "Hello, world!"

# Cross-platform, same content
./scripts/typefully.js drafts:create --platform x,linkedin,threads --text "Big announcement!"
./scripts/typefully.js drafts:create --all --text "Posting everywhere!"

# Create and schedule for the next slot
./scripts/typefully.js drafts:create --text "Scheduled post" --schedule next-free-slot

# Create with tags
./scripts/typefully.js drafts:create --text "Marketing post" --tags marketing,product

# List scheduled posts, newest scheduled first
./scripts/typefully.js drafts:list --status scheduled --sort scheduled_date

# Queue view for a date range
./scripts/typefully.js queue:get --start-date 2026-02-01 --end-date 2026-02-29

# Replace queue schedule rules
./scripts/typefully.js queue:schedule:put --rules '[{"h":9,"m":30,"days":["mon","wed","fri"]}]'

# Draft with scratchpad notes
./scripts/typefully.js drafts:create --text "Launching next week!" --scratchpad "Coordinate with marketing before publishing."

# Upload media, then attach it
./scripts/typefully.js media:upload ./image.jpg          # -> {"media_id": "abc-123", "status": "ready"}
./scripts/typefully.js drafts:create --text "Check out this image!" --media abc-123

# Add media to an existing draft
./scripts/typefully.js drafts:update 456 --text "Updated post with image" --media xyz --use-default

リファレンス

文字数制限

X 280 · LinkedIn 3000 · Threads 500 · Bluesky 300 · Mastodon 500 · Substack Notes 10000。

下書きの URL

Typefully の下書き URL には、ソーシャルセット ID と下書き ID が含まれます:https://typefully.com/?a=<social_set_id>&d=<draft_id>(例:a=12345 → social_set_id、d=67890 → draft_id)。コマンドとの対応については、見失った Typefully の下書き URL を参照してください。

自動化のガイドライン

アカウントの健全性を保つため、特に X では、次の点を守ってください。

  • アカウント間で重複したコンテンツを投稿しないでください。
  • 求められていない返信を自動化しないでください。返信するのは、ユーザーが明示的に求めた場合に限ります。
  • トレンドを操作したり、偽のエンゲージメント(いいね、リポスト、フォロー)を行ったりしないでください。
  • レート制限を守ってください。下書きは公開するか、明示的に共有するまで非公開です。

判断に迷った場合は、直接公開するのではなく、ユーザーが確認できるよう下書きを作成してください。

コメント