sync-discord-identity
Sync a Discord bot profile into an OpenClaw agent IDENTITY.md, save the avatar under workspace/avatars, and safely add Avatar and Discord metadata.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Sync a Discord bot profile into an OpenClaw agent IDENTITY.md, save the avatar under workspace/avatars, and safely add Avatar and Discord metadata.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Access the full suite of CarsXE vehicle data APIs — VIN decoding, license plate lookup, market value, vehicle history, safety recalls, lien/theft checks, OBD-II diagnostic code decoding, vehicle images, international VIN decoding, Year/Make/Model lookups, and plate/VIN OCR from images. Use this skill any time the user asks about a vehicle by VIN, plate, make/model, or OBD code. Also triggers for: "what's this car worth", "check for recalls", "vehicle history report", "decode this plate", "what does check engine code X mean", or any automotive data query. Always use this skill when working with CarsXE APIs — do not guess API behavior without it.
Generate images using Google Gemini models (Nano Banana 2 / gemini-3-pro-image-preview). Use when the user asks to create, generate, or make an image, picture, photo, or visual from a text description. Also supports image-to-image generation (modify/edit existing images). Supports multiple aspect ratios (1:1, 16:9, 9:16, 4:3, 3:4) and resolutions up to 4K. Triggers on phrases like "generate an image", "create a picture", "make me a photo", "draw", "visualize", "edit this image", "modify this picture", or any request to produce or transform visual content.
Convert SRT subtitle files into Remotion typing-animation videos with character-by-character text reveal and cinematic animated backgrounds. Use when the user wants a typewriter subtitle effect, SRT-to-video conversion, animated captions, or a Remotion project generated from subtitle files.
Connect an agent to TaskMaster — the coordination layer for the agentic economy. Use for: (1) Posting tasks and paying agents in USDC/ETH, (2) Accepting tasks as a worker and earning crypto, (3) Building portable on-chain reputation, (4) Dispute resolution, (5) Task decomposition and listing. Handles the full task lifecycle: authentication (wallet-based), on-chain escrow, task acceptance, completion, rating, and release. Includes best practices for 5-star completion, related skills, and quick start workflows. Requires a wallet with a small ETH balance on Base, Optimism, or Arbitrum.
Notion via notion-cli — a Rust CLI + MCP server for Notion API 2025-09-03+. Three-tier agent integration (read-only default, opt-in runtime writes, opt-in admin lifecycle) with rate limiting, response-size cap, untrusted-source output envelope, per-tier JSONL audit logs, and --check-request dry-runs. Supports the new data-source model, 22 property types, 12 block types, admin schema mutation, relation wiring, dedicated page-move endpoint, db update, and users me (v0.4).
| name | sync-discord-identity |
| description | Sync a Discord bot profile into an OpenClaw agent IDENTITY.md, save the avatar under workspace/avatars, and safely add Avatar and Discord metadata. |
| version | 0.1.0 |
| metadata | {"openclaw":{"requires":{"bins":["python3","curl"]},"homepage":"https://github.com/0xli/sync-discord-identity"}} |
Use this skill when you need to inspect or update an OpenClaw agent identity for the current workspace, especially when that workspace is connected to a Discord bot and you want to synchronize Discord profile data into IDENTITY.md.
This skill is for:
IDENTITY.mdopenclaw.json**Avatar:** from the Discord bot profileworkspace/avatars/**Discord:** metadata section into IDENTITY.mdThis skill is not for changing the Discord bot account itself. It only reads bot metadata from the Discord API and reflects it into OpenClaw identity files.
When using this skill, follow these rules:
Operate on the current workspace only.
Read openclaw.json from the workspace where the skill is installed or where the user explicitly points you.
Use the correct Discord config for this workspace.
Read the Discord channel token from this workspace's openclaw.json, not from another agent or workspace.
If multiple Discord channels exist in the same workspace, do not guess silently. Prefer the single enabled Discord channel. If there are multiple candidates, ask the user which channel to use, or require an explicit channel name.
Do not assume OpenClaw auto-imports the Discord avatar.
If IDENTITY.md has no **Avatar:**, populate it explicitly.
Prefer a static CDN avatar URL for **Avatar:**.
Use the non-animated static Discord CDN URL:
https://cdn.discordapp.com/avatars/<BOT_ID>/<AVATAR_HASH>.png
Also save a local copy under the workspace.
Save the image as:
workspace/avatars/discord-<discord-username-or-bot-id>.png
If **Avatar:** is missing, set it.
Default behavior: write the static Discord CDN URL into **Avatar:**.
If **Avatar:** already exists and differs, do not silently overwrite it.
Ask the user whether they want to replace the existing avatar value.
Add **Discord:** if Discord metadata is available.
Save only non-empty fields among:
Do not write empty Discord fields.
For example, omit email if it is null, and omit bio if it is empty.
Preserve all unrelated identity fields. Only make local, minimal edits.
If a token appears in conversation or files, treat it as sensitive. Do not echo it. Recommend rotation if it has been exposed.
You may receive one or more of the following:
IDENTITY.mdopenclaw.jsonExample Discord bot profile payload returned by Discord /users/@me:
{
"id": "1471414603580838030",
"username": "Andrew",
"avatar": "650ada97187f9be350f13bf25ae136d8",
"discriminator": "9171",
"public_flags": 0,
"flags": 0,
"bot": true,
"banner": null,
"accent_color": null,
"global_name": null,
"avatar_decoration_data": null,
"collectibles": null,
"display_name_styles": null,
"banner_color": null,
"clan": null,
"primary_guild": null,
"mfa_enabled": true,
"locale": "en-US",
"premium_type": 0,
"email": null,
"verified": true,
"bio": ""
}
When editing identity data, the desired result is:
workspace/avatars/**Avatar:** present in IDENTITY.md**Discord:** present in IDENTITY.md if there is any non-empty Discord metadata to storePreferred IDENTITY.md structure:
# IDENTITY
- **Name:** Andrew
- **Avatar:** https://cdn.discordapp.com/avatars/1471414603580838030/650ada97187f9be350f13bf25ae136d8.png
- **Discord:**
- username: Andrew
- locale: en-US
If email is not null and bio is not empty, include them too:
- **Discord:**
- username: Andrew
- locale: en-US
- email: andrew@example.com
- bio: Agent for the noodles workspace.
IDENTITY.md does not exist yetopenclaw.json./users/@me using that channel token.workspace/avatars/.IDENTITY.md with at least **Avatar:** and **Discord:** entries.IDENTITY.md exists but has no **Avatar:**openclaw.json./users/@me.workspace/avatars/.**Avatar:** <static_url>.**Discord:** with the non-empty metadata fields.IDENTITY.md already has **Avatar:**openclaw.json and fetch the Discord bot profile.**Discord:** metadata fields.IDENTITY.mdTreat the file as Markdown with bold field labels such as:
- **Name:** value- **Avatar:** value- **Discord:** followed by nested bullet itemsAccept small formatting variations, but preserve the user’s original style where possible.
Common layouts:
~/.openclaw/workspace~/.openclaw/workspace/IDENTITY.md~/.openclaw/workspace/openclaw.json~/.openclaw/workspace/avatarsIf the user has multiple agents or workspaces, operate only on the explicitly targeted one.
If you need automation, see scripts/sync_discord_identity.py in this skill package. It:
openclaw.json/users/@meworkspace/avatars/IDENTITY.md--force-avatar is used--channel when multiple Discord channels exist in one workspacepython scripts/sync_discord_identity.py \
--workspace ~/.openclaw/workspace
python scripts/sync_discord_identity.py \
--workspace ~/.openclaw/workspace-beagle-profile
python scripts/sync_discord_identity.py \
--workspace ~/.openclaw/workspace \
--channel noodles
python scripts/sync_discord_identity.py \
--workspace ~/.openclaw/workspace \
--force-avatar
To publish this skill to ClawHub:
clawhub publish . --version 0.1.0 --changelog "Initial release" --tags latest
For users to install it:
openclaw skills install sync-discord-identity
Start a new OpenClaw session after installing so the skill is loaded.
This skill is complete only when all applicable conditions are satisfied:
workspace/avatars/IDENTITY.md contains **Avatar:** if missing before**Discord:** includes non-empty username/locale/email/bio fields only