mcpField
X
x-article-publisher

x-article-publisher

github.com/joeseesunマーケティング・グロース7895 回インストール40 週間前に更新
リポジトリ

x-article-publisher について

Markdown をリッチテキストに変換し、X Articles エディターに入力する公開スキルです。ブラウザー認証を保持して一括で下書きを保存できますが、自動公開は行いません。

主な機能

  1. 01Markdown の解析と書式変換
  2. 02ブラウザー認証の保持
  3. 03エディター入力と下書き保存
  4. 04タイトルと画像の処理
  5. 05解析・クリップボード用スクリプト

活用シーン

  1. 01Markdown 記事を X Articles 用に整える
  2. 02保存済みのログイン状態を再利用する
  3. 03書式付きの記事を下書き保存する
  4. 04タイトルやカバー画像の要否を確認する

インストール

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

$npx skills add https://github.com/joeseesun/qiaomu-x-article-publisher --skill x-article-publisher

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

同梱ファイル

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

README.md
LICENSE
.gitignore
metadata.json
CHANGELOG.md
data/
.gitignore
.gitkeep
data/browser_state/
.gitkeep
lib/browser_auth/
browser_factory.py
auth_manager.py
config.py
exceptions.py
__init__.py
qiaomu-x-article-publisher-github/
CHANGELOG.md
.gitignore
CONTRIBUTING.md
LICENSE
README.md
README_FULL.md
metadata.json
qiaomu-x-article-publisher-github/data/
.gitignore
.gitkeep
qiaomu-x-article-publisher-github/data/browser_state/
.gitkeep
qiaomu-x-article-publisher-github/lib/browser_auth/
__init__.py
config.py
auth_manager.py
exceptions.py
qiaomu-x-article-publisher-github/scripts/
auth_manager.py
copy_to_clipboard.py
debug_editor.py

詳細

X Article Publisher

Markdown コンテンツを X(Twitter)の Articles エディターに公開します。リッチテキスト変換により、書式を保持します。

前提条件

  • X Premium Plus サブスクリプション
  • 依存関係を含む Python 3.9 以降:pip install Pillow pyobjc-framework-Cocoa patchright

🎉 初回使用:一度認証すれば、繰り返しログインする必要はありません

X Article Publisher は永続認証に対応しました。毎回手動でログインする必要はありません!

🔧 認証の初期設定(一度だけ)

初めて使用する前に、認証設定を実行してください。

cd ~/.claude/skills/x-article-publisher/scripts
python auth_manager.py setup

手順:

  1. ✅ ブラウザーウィンドウが自動で開き、X のログインページが表示されます
  2. 🔐 X アカウントに手動でログインします(Premium+ サブスクリプションが必要です)
  3. ✅ 2FA 認証を完了します(有効にしている場合)
  4. 🏠 ログインに成功すると、自動的にホームのタイムラインに移動します
  5. 💾 認証状態が自動で保存されます(有効期間は 7 日間です)
📋 認証管理コマンド
# 检查认证状态
python auth_manager.py status

# 验证认证是否有效
python auth_manager.py validate

# 清除认证数据(需重新登录)
python auth_manager.py clear

# 重新认证(清除 + 设置)
python auth_manager.py reauth
🚀 自動化ワークフロー

認証設定が完了すると、スキルの実行時に以下が自動的に行われます。

  1. ✅ 認証状態を確認します
  2. 🔓 認証済みの場合は、保存済みのブラウザー状態をそのまま使用します(ログイン不要です)
  3. ⚠️ 未認証の場合は、auth_manager.py setup の実行を促します

注意:認証データは ~/.claude/skills/x-article-publisher/data/browser_state/ に保存されます。.gitignore で除外されているため、Git にコミットされません。


スクリプト

~/.claude/skills/x-article-publisher/scripts/ にあります。

publish_article.py(メインスクリプト — ワンクリック公開)

推奨 — 公開に必要なすべての手順を自動で実行します。

# 基本用法(默认显示浏览器)
python publish_article.py --file article.md

# 隐藏浏览器(后台运行)
python publish_article.py --file article.md --headless

# 自定义标题
python publish_article.py --file article.md --title "自定义标题"
parse_markdown.py

Markdown を解析し、構造化データを抽出します。

python parse_markdown.py <markdown_file> [--output json|html] [--html-only]

title、cover_image、content_images(配置位置を示す block_index を含む)、html、total_blocks を含む JSON を返します。

copy_to_clipboard.py

画像または HTML をシステムのクリップボードにコピーします。

# Copy image (with optional compression)
python copy_to_clipboard.py image /path/to/image.jpg [--quality 80]

# Copy HTML for rich text paste
python copy_to_clipboard.py html --file /path/to/content.html

ワークフロー(簡易版)

前提条件:認証設定が完了していること(python auth_manager.py setup)

🚀 ワンクリック公開(推奨)

publish_article.py を直接実行すると、すべての手順が自動で実行されます。

cd ~/.claude/skills/x-article-publisher/scripts
python publish_article.py --file /path/to/article.md

スクリプトは以下を自動で実行します。

  1. ✅ 認証状態を確認します
  2. 📄 Markdown ファイルを解析します
  3. 🌐 認証済みのブラウザーを起動します
  4. 📍 X Articles エディターに移動します
  5. 🔘 create ボタンをクリックします
  6. 🖼️ カバー画像をアップロードします(ある場合)
  7. 📝 タイトルを入力します
  8. 📋 HTML コンテンツを貼り付けます
  9. ✅ 下書きを保存します(自動公開はしません)
手動ワークフロー(上級ユーザー向け)

より細かく制御するには、手順ごとに実行してください。

  1. Markdown を解析します:python parse_markdown.py article.md
  2. ブラウザーを手動で操作して公開します

🧠 スマート機能

タイトルの自動生成

記事に H1 タイトルがない場合、parse_markdown.py は needs_title_generation: true を返します。

Claude は次の処理を自動で行います。

  1. 記事を読み、中心となる主張を理解します
  2. クリックしたくなるタイトルを生成します(15〜25 字が目安です)
  3. --title "生成したタイトル" パラメーターを指定して公開します

良いタイトルの特徴:

  • 数字や具体的な詳細を含む(「3 つの方法」、「90%の人が知らない」)
  • 好奇心をかき立てる(「なぜ……」、「……する方法」、「……の真実」)
  • 読者にとって身近な内容である
  • 釣りタイトルは避けつつ、魅力的である

例:

# 解析文章
python parse_markdown.py article.md

# 如果 needs_title_generation: true,Claude 生成标题后:
python publish_article.py --file article.md --title "AI时代,普通人的3个生存法则"
カバー画像の自動生成

記事にカバー画像がない場合、parse_markdown.py は needs_cover_generation: true を返します。

Claude は次の処理を自動で行います。

  1. 記事を読み、中心となる概念を抽出します(キーワード 1〜3 個)
  2. gemini-image-generator または jimeng-image-generator スキルを呼び出してカバー画像を生成します
  3. カバー画像のスタイルに関する提案:
    • シンプルで洗練されたデザインにし、細部を複雑にしない
    • 抽象的な概念を視覚化する
    • または、中心となるキーワードを含む文字ポスターにする
  4. 生成した画像のパスを、カバー画像として記事の冒頭に挿入します

カバー画像生成プロンプトのテンプレート:

为一篇关于「{文章主题}」的文章生成封面图。
风格:简洁、现代、科技感
元素:{1-3个核心视觉元素}
文字:可选,如果加文字只放{1-3个关键词}
尺寸:16:9 横版

ワークフローの例:

# 1. 解析文章
python parse_markdown.py article.md
# 输出: needs_cover_generation: true

# 2. Claude 调用生图 skill 生成封面(假设保存到 /tmp/cover.png)

# 3. 将封面图插入文章开头,或手动上传

注意:現時点では、カバー画像のアップロードはブラウザーで手動操作する必要があります。スクリプトはエディターを開いた後、ユーザーの操作を待ちます。


技術的な詳細

parse_markdown.py の出力形式
{
  "title": "Article Title",
  "title_source": "h1",           // "h1", "h2", "first_line", or "none"
  "needs_title_generation": false, // true if no H1 title
  "cover_image": "/path/to/first-image.jpg",
  "needs_cover_generation": false, // true if no cover image
  "content_images": [
    {"path": "/path/to/img2.jpg", "block_index": 5}
  ],
  "html": "<p>Content...</p><h2>Section</h2>...",
  "total_blocks": 45
}

フィールドの説明:

  • title_source:タイトルの取得元
    • h1:H1 タイトルから取得(最適)
    • h2:最初の H2 タイトルから取得
    • first_line:最初のテキスト行から取得
    • none:タイトルを抽出できない
  • needs_title_generation:Claude により良いタイトルを生成してもらう必要があるかどうか
  • needs_cover_generation:Claude にカバー画像を生成してもらう必要があるかどうか

重要なルール

  1. 自動公開は絶対にしない — 下書きとしてのみ保存します
  2. カバー画像は自動で追加しない — カバー画像はユーザーが手動で追加します。最初の画像をカバー画像として挿入することはありません
  3. プレースホルダーをクリーンアップする — 画像の挿入後に残った @@@IMG_X@@@ マーカーをすべて削除します
  4. H1 タイトルの扱い — H1 はタイトルとしてのみ使用し、本文には含めません

対応する書式

  • H2 見出し(## )
  • 引用(> )
  • コードブロック(引用に変換)
  • 太字(**)
  • ハイパーリンク(テキスト)
  • 順序付きリスト/順序なしリスト
  • 段落

例

ユーザー:「/path/to/article.md を X に公開して」

cd ~/.claude/skills/x-article-publisher/scripts
python publish_article.py --file /path/to/article.md

出力:

📄 解析文件:/path/to/article.md
  📝 标题:文章标题
  🖼️  封面图:/path/to/cover.jpg
  📷 内容图:2 张

🌐 启动浏览器...
  📍 导航到 X Articles...
  🔘 点击 create 按钮...
  📝 填写标题...
  📋 粘贴内容...

✅ 草稿已创建!
  💡 请在浏览器中检查并手动发布
  🖥️  浏览器保持打开,请检查草稿并手动发布
  ⏎  完成后按回车键关闭浏览器...

技術的な参考情報:ブラウザー自動化のデバッグのコツについては、skill-development-guide を参照してください。

コメント