mcpField
T
tuzi-post-to-wechat

tuzi-post-to-wechat

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

tuzi-post-to-wechat について

tuzi-post-to-wechatは、WeChat公式アカウントに画像付き投稿や記事を公開するエージェントスキルです。Markdown、HTML、プレーンテキストに対応し、APIまたはブラウザー経由で公開できます。

主な機能

  1. 01複数画像付き投稿の公開
  2. 02APIまたはブラウザーでの記事公開
  3. 03Markdown、HTML、プレーンテキストの処理
  4. 04テーマ、色、著者情報の設定
  5. 05記事のコメント設定

活用シーン

  1. 01Markdown記事をWeChatの下書きとして公開
  2. 02複数画像を含む投稿の作成
  3. 03ログイン済みブラウザーセッションで記事を公開

インストール

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

$npx skills add https://github.com/tuziapi/tuzi-skills --skill tuzi-post-to-wechat

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

同梱ファイル

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

references/
article-posting.md
image-text-posting.md
references/config/
first-time-setup.md
scripts/
cdp.ts
check-permissions.ts
copy-to-clipboard.ts
md-to-wechat.ts
scripts/md/
cli.ts
scripts/md/code-themes/
1c-light.min.css
a11y-dark.min.css
a11y-light.min.css
agate.min.css
an-old-hope.min.css
androidstudio.min.css
arduino-light.min.css
arta.min.css
ascetic.min.css
atom-one-dark-reasonable.min.css
atom-one-dark.min.css
atom-one-light.min.css
brown-paper.min.css
codepen-embed.min.css
color-brewer.min.css
dark.min.css
default.min.css
devibeans.min.css
docco.min.css
far.min.css
felipec.min.css
foundation.min.css

詳細

WeChat 公式アカウントへの投稿

言語

ユーザーの言語に合わせる:ユーザーが使用する言語で応答します。ユーザーが中国語で書いた場合は中国語で、英語で書いた場合は英語で応答します。

スクリプトディレクトリ

エージェントの実行:この SKILL.md のディレクトリを SKILL_DIR として特定し、${SKILL_DIR}/scripts/<name>.ts を使用します。

スクリプト用途
scripts/wechat-browser.ts画像とテキストの投稿(图文)
scripts/wechat-article.tsブラウザー経由で記事を投稿(文章)
scripts/wechat-api.tsAPI 経由で記事を投稿(文章)
scripts/md-to-wechat.tsMarkdown → 画像プレースホルダー付きの WeChat 対応 HTML
scripts/check-permissions.ts環境と権限を確認

設定(EXTEND.md)

Bash を使って EXTEND.md の存在を確認します(優先順位順):

# Check project-level first
test -f .tuzi-skills/tuzi-post-to-wechat/EXTEND.md && echo "project"

# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.tuzi-skills/tuzi-post-to-wechat/EXTEND.md" && echo "user"

┌────────────────────────────────────────────────────────┬───────────────────┐ │ パス │ 場所 │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ .tuzi-skills/tuzi-post-to-wechat/EXTEND.md │ プロジェクトディレクトリ │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.tuzi-skills/tuzi-post-to-wechat/EXTEND.md │ ユーザーのホームディレクトリ │ └────────────────────────────────────────────────────────┴───────────────────┘

┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ 結果 │ 対応 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 見つかった │ 読み込み、解析し、設定を適用 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 見つからない │ 初回セットアップを実行(references/config/first-time-setup.md) → 保存 → 続行 │ └───────────┴───────────────────────────────────────────────────────────────────────────┘

EXTEND.md で設定できる項目:デフォルトテーマ | デフォルトカラー | デフォルトの投稿方法(api/browser) | デフォルトの著者 | デフォルトのコメント許可設定 | デフォルトのファン限定コメント設定 | Chrome プロファイルのパス

初回セットアップ:references/config/first-time-setup.md

最低限サポートされるキー(大文字と小文字を区別せず、1/0 または true/false を受け付けます):

キーデフォルトマッピング
default_author空CLI/frontmatter で指定されていない場合の author のフォールバック
need_open_comment1draft/add リクエストの articles[].need_open_comment
only_fans_can_comment0draft/add リクエストの articles[].only_fans_can_comment

EXTEND.md の推奨例:

default_theme: default
default_color: blue
default_publish_method: api
default_author: 宝玉
need_open_comment: 1
only_fans_can_comment: 0
chrome_profile_path: /path/to/chrome/profile

テーマの選択肢:default、grace、simple、modern

カラーのプリセット:blue、green、vermilion、yellow、purple、sky、rose、olive、black、gray、pink、red、orange(または 16 進数の値)

値の優先順位:

  1. CLI 引数
  2. Frontmatter
  3. EXTEND.md
  4. スキルのデフォルト値

使用前の確認(任意)

初回使用前に、環境チェックの実行を提案してください。ユーザーは希望に応じてスキップできます。

npx -y bun ${SKILL_DIR}/scripts/check-permissions.ts

チェック項目:Chrome、プロファイルの分離、Bun、アクセシビリティ、クリップボード、貼り付けキー入力、API 認証情報、Chrome の競合。

チェックに失敗した場合は、項目ごとに修正方法を案内してください。

チェック項目修正方法
ChromeChrome をインストールするか、WECHAT_BROWSER_CHROME_PATH 環境変数を設定します
プロファイルディレクトリ~/.local/share/wechat-browser-profile が書き込み可能であることを確認します
Bun ランタイムcurl -fsSL https://bun.sh/install | bash
アクセシビリティ(macOS)システム設定 → プライバシーとセキュリティ → アクセシビリティ → ターミナルアプリを有効にします
クリップボードへのコピーSwift/AppKit が利用可能であることを確認します(macOS Xcode CLI ツール:xcode-select --install)
貼り付けキー入力(macOS)上記のアクセシビリティの修正方法と同じです
貼り付けキー入力(Linux)xdotool(X11)または ydotool(Wayland)をインストールします
API 認証情報ステップ 2 のガイド付きセットアップに従うか、.tuzi-skills/.env に手動で設定します

画像付き投稿(图文)

複数の画像を含む短い投稿(最大 9 枚)の場合:

npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./images/
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "标题" --content "内容" --image img.png --submit

詳細は、references/image-text-posting.md を参照してください。

記事投稿のワークフロー(文章)

このチェックリストをコピーし、完了した項目にチェックを付けてください。

Publishing Progress:
- [ ] Step 0: Load preferences (EXTEND.md)
- [ ] Step 1: Determine input type
- [ ] Step 2: Select method and configure credentials
- [ ] Step 3: Resolve theme/color and validate metadata
- [ ] Step 4: Publish to WeChat
- [ ] Step 5: Report completion
ステップ 0:設定を読み込む

EXTEND.md の設定を確認して読み込みます(上記の「設定」セクションを参照)。

重要:見つからない場合は、他の手順や質問に進む前に、初回セットアップを完了してください。

後続の手順で使用する以下のデフォルト値を解決して保存します。

  • default_theme(デフォルトは default)
  • default_color(未設定の場合は省略し、テーマのデフォルトを適用)
  • default_author
  • need_open_comment(デフォルトは 1)
  • only_fans_can_comment(デフォルトは 0)
ステップ 1:入力タイプを判定する
入力タイプ判定方法アクション
HTML ファイルパスが .html で終わり、ファイルが存在するステップ 3 に進む
Markdown ファイルパスが .md で終わり、ファイルが存在するステップ 2 に進む
プレーンテキストファイルパスではない、またはファイルが存在しないMarkdown として保存し、ステップ 2 に進む

プレーンテキストの処理:

  1. 内容からスラッグを生成します(意味のある最初の 2~4 語を kebab-case にします)
  2. ディレクトリを作成してファイルを保存します。
mkdir -p "$(pwd)/post-to-wechat/$(date +%Y-%m-%d)"
# Save content to: post-to-wechat/yyyy-MM-dd/[slug].md
  1. Markdown ファイルとして処理を続けます

スラッグの例:

  • 「AI モデルを理解する」 → understanding-ai-models
  • 「人工智能的未来」 → ai-future(スラッグ用に英語に翻訳します)
ステップ 2:公開方法を選択して設定する

公開方法を尋ねます(EXTEND.md または CLI で指定されている場合を除く)。

方法速度要件
api(推奨)高速API 認証情報
browser低速Chrome、ログインセッション

API を選択した場合 — 認証情報を確認する:

# Check project-level
test -f .tuzi-skills/.env && grep -q "WECHAT_APP_ID" .tuzi-skills/.env && echo "project"

# Check user-level
test -f "$HOME/.tuzi-skills/.env" && grep -q "WECHAT_APP_ID" "$HOME/.tuzi-skills/.env" && echo "user"

認証情報がない場合 — セットアップを案内する:

WeChat API credentials not found.

To obtain credentials:
1. Visit https://mp.weixin.qq.com
2. Go to: 开发 → 基本配置
3. Copy AppID and AppSecret

Where to save?
A) Project-level: .tuzi-skills/.env (this project only)
B) User-level: ~/.tuzi-skills/.env (all projects)

保存場所を選択した後、値を入力するよう求め、.env に書き込みます。

WECHAT_APP_ID=<user_input>
WECHAT_APP_SECRET=<user_input>
ステップ 3:テーマ/色の解決とメタデータの検証
  1. テーマを解決します(最初に一致したものを使用します。解決できた場合、ユーザーに確認しないでください)。

    • CLI の --theme 引数
    • EXTEND.md の default_theme(ステップ 0 で読み込み済み)
    • フォールバック:default
  2. 色を解決します(最初に一致したものを使用します)。

    • CLI の --color 引数
    • EXTEND.md の default_color(ステップ 0 で読み込み済み)
    • 設定されていない場合は省略します(テーマのデフォルトが適用されます)。
  3. フロントマター(Markdown)または HTML の meta タグ(HTML 入力)からメタデータを検証します。

フィールド欠落している場合
タイトルプロンプト:「タイトルを入力するか、Enter キーを押してコンテンツから自動生成してください」
概要プロンプト:「概要を入力するか、Enter キーを押して自動生成してください(SEO に推奨)」
著者次の順でフォールバックします:CLI の --author → フロントマターの author → EXTEND.md の default_author

自動生成ロジック:

  • タイトル:最初の H1/H2 見出し、または最初の文
  • 概要:最初の段落を 120 文字に切り詰めます
  1. カバー画像を確認します(API の article_type=news では必須です)。
    1. CLI の --cover が指定されていれば使用します。
    2. それ以外の場合は、フロントマター(coverImage、featureImage、cover、image)を使用します。
    3. それ以外の場合は、記事ディレクトリのデフォルトパス imgs/cover.png を確認します。
    4. それ以外の場合は、本文内で最初に見つかった画像を使用します。
    5. それでも見つからない場合は、公開前にカバー画像をリクエストして処理を停止します。
ステップ 4:WeChat に公開する

重要:公開スクリプトは Markdown の変換を内部で処理します。Markdown を事前に HTML に変換しないでください。元の Markdown ファイルを直接渡してください。これにより、API 方式では画像が <img> タグ(API アップロード用)としてレンダリングされ、ブラウザー方式ではプレースホルダー(貼り付け後に置き換えるワークフロー用)が使用されます。

API 方式(.md または .html を受け付けます):

npx -y bun ${SKILL_DIR}/scripts/wechat-api.ts <file> --theme <theme> [--color <color>] [--title <title>] [--summary <summary>] [--author <author>] [--cover <cover_path>]

重要:必ず --theme パラメーターを指定してください。default を使用する場合でも省略しないでください。--color は、ユーザーまたは EXTEND.md によって明示的に設定されている場合にのみ指定してください。

draft/add のペイロード規則:

  • エンドポイントを使用します:POST https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS_TOKEN
  • article_type:news(デフォルト)または newspic
  • news の場合は、thumb_media_id を含めます(カバー画像が必須です)。
  • 必ず解決して送信します:
    • need_open_comment(デフォルト 1)
    • only_fans_can_comment(デフォルト 0)
  • author の解決順:CLI の --author → フロントマターの author → EXTEND.md の default_author

スクリプトのパラメーターで 2 つのコメント関連フィールドを指定できない場合でも、最終的な API リクエスト本文に解決済みの値が含まれるようにしてください。

ブラウザー方式(--markdown または --html を受け付けます):

npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown <markdown_file> --theme <theme> [--color <color>]
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --html <html_file>
ステップ 5:完了レポート

API 方式の場合は、下書き管理リンクを含めます:

WeChat Publishing Complete!

Input: [type] - [path]
Method: API
Theme: [theme name] [color if set]

Article:
• Title: [title]
• Summary: [summary]
• Images: [N] inline images
• Comments: [open/closed], [fans-only/all users]

Result:
✓ Draft saved to WeChat Official Account
• media_id: [media_id]

Next Steps:
→ Manage drafts: https://mp.weixin.qq.com (登录后进入「内容管理」→「草稿箱」)

Files created:
[• post-to-wechat/yyyy-MM-dd/slug.md (if plain text)]
[• slug.html (converted)]

ブラウザー方式の場合:

WeChat Publishing Complete!

Input: [type] - [path]
Method: Browser
Theme: [theme name] [color if set]

Article:
• Title: [title]
• Summary: [summary]
• Images: [N] inline images

Result:
✓ Draft saved to WeChat Official Account

Files created:
[• post-to-wechat/yyyy-MM-dd/slug.md (if plain text)]
[• slug.html (converted)]

詳細リファレンス

トピックリファレンス
画像とテキストのパラメーター、自動圧縮references/image-text-posting.md
記事のテーマ、画像の処理references/article-posting.md

機能比較

機能画像とテキスト記事(API)記事(ブラウザー)
プレーンテキスト入力✗✓✓
HTML 入力✗✓✓
Markdown 入力タイトル/本文✓✓
複数画像✓(最大 9 枚)✓(本文内)✓(本文内)
テーマ✗✓✓
メタデータの自動生成✗✓✓
カバー画像のデフォルトフォールバック(imgs/cover.png)✗✓✗
コメント制御(need_open_comment、only_fans_can_comment)✗✓✗
Chrome が必要✓✗✓
API 認証情報が必要✗✓✗
速度中高速低速

前提条件

API 方式の場合:

  • WeChat 公式アカウント API の認証情報
  • ステップ 2 でガイドに従って設定するか、.tuzi-skills/.env に手動で設定します

ブラウザー方式の場合:

  • Google Chrome
  • 初回実行時:WeChat 公式アカウントにログインします(セッションは保持されます)。

設定ファイルの場所(優先順位順):

  1. 環境変数
  2. <cwd>/.tuzi-skills/.env
  3. ~/.tuzi-skills/.env

トラブルシューティング

問題解決策
API 認証情報がありませんステップ 2 のガイド付きセットアップに従ってください
アクセストークンのエラーAPI 認証情報が有効で、期限切れでないことを確認してください
ログインしていません(ブラウザー)初回起動時にブラウザーが開きます。QR コードをスキャンしてログインしてください
Chrome が見つかりませんWECHAT_BROWSER_CHROME_PATH 環境変数を設定してください
タイトル/概要がありません自動生成を使用するか、手動で入力してください
カバー画像がありませんfrontmatter にカバー画像を指定するか、記事のディレクトリに imgs/cover.png を配置してください
コメントのデフォルト設定が違いますEXTEND.md のキー need_open_comment と only_fans_can_comment を確認してください
貼り付けに失敗しますシステムのクリップボード権限を確認してください

拡張機能のサポート

EXTEND.md を使用してカスタム設定を行えます。パスとサポートされているオプションについては、設定のセクションを参照してください。

コメント