agentsclimarketplace

X publisher clean profile

Skill nick905846753-crypto/x-publisher-clean-profile/skills/x-publisher-clean-profile

Publish drafts or posts to X/Twitter through a dedicated clean Chrome profile that loads only Kimi WebBridge and avoids interference from the user's normal Chrome extensions. Use when the user asks an AI agent to post to X, Twitter, or x.com; test an X publishing workflow; automate X posting with an already logged-in browser session; or work around extension conflicts such as "Cannot access a chrome-extension:// URL of different extension". Requires local Kimi WebBridge, Google Chrome, and an X login in the clean publishing profile.From its SKILL.md

Install
npx -y skills add nick905846753-crypto/x-publisher-clean-profile --skill x-publisher-clean-profile

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.5 KB, 954 tokens by cl100k_base, as published. Nobody here has run it

X Publisher Clean Profile

What This Skill Provides

Use a separate Chrome profile for X publishing so the user's normal Chrome extensions do not affect browser automation. The workflow starts a clean Chrome window with Kimi WebBridge loaded, then uses Chrome's local debugging port to create a fresh X tab, fill the composer, and optionally click Post.

The bundled posting script is conservative:

  • Draft mode is the default. It fills the composer but does not publish.
  • Live posting requires --send.
  • Before drafting or sending, it closes old X tabs in the clean profile and opens a fresh X home tab to avoid stale drafts or overlays.

Skill Directory

Use the folder containing this SKILL.md as SKILL_DIR. Some agents expose it as ${CLAUDE_SKILL_DIR} or ${CODEX_SKILL_DIR}. If neither exists, resolve the absolute path to this skill folder manually.

SKILL_DIR="${CLAUDE_SKILL_DIR:-${CODEX_SKILL_DIR:-/absolute/path/to/x-publisher-clean-profile}}"

First-Run Setup

  1. Start the clean publishing browser:
bash "$SKILL_DIR/scripts/start-x-publisher.sh"
  1. If X is not logged in inside that new Chrome window, ask the user to log in once there. The clean profile is stored at ~/.kimi-webbridge/chrome-profile-x, so the session should persist for future runs.

  2. Do not disable, edit, or mutate the user's main Chrome extensions. This skill avoids them by using a separate Chrome profile.

Draft A Post

Use draft mode first when testing a new environment or when the user has not explicitly confirmed live posting:

node "$SKILL_DIR/scripts/x-publisher-post.mjs" --text "Testing the X publishing workflow."

For longer content, write the post text to a file and pass the file:

node "$SKILL_DIR/scripts/x-publisher-post.mjs" --file /absolute/path/to/post.txt

Expected success response:

{"ok":true,"mode":"draft","chars":42}

Publish A Post

Only publish when the user explicitly asks to send/post/publish, or after showing the draft text and receiving confirmation.

node "$SKILL_DIR/scripts/x-publisher-post.mjs" --send --text "Post text here"

For file-based posting:

node "$SKILL_DIR/scripts/x-publisher-post.mjs" --send --file /absolute/path/to/post.txt

Expected success response:

{"ok":true,"mode":"sent","chars":42}

After sending, verify on the user's profile when practical by opening the profile in the clean browser profile or by using the same debugging port.

Configuration

The scripts use these defaults:

  • Clean Chrome profile: ~/.kimi-webbridge/chrome-profile-x
  • Kimi extension: ~/.kimi-webbridge/extension-download
  • Kimi binary: ~/.kimi-webbridge/bin/kimi-webbridge
  • Chrome app: Google Chrome
  • Debug port: 9223

Override with environment variables when needed:

X_PUBLISHER_PROFILE_DIR=/path/to/profile \
KIMI_WEBBRIDGE_EXTENSION_DIR=/path/to/kimi/extension \
KIMI_WEBBRIDGE_BIN=/path/to/kimi-webbridge \
CHROME_APP="Google Chrome" \
X_PUBLISHER_DEBUG_PORT=9224 \
bash "$SKILL_DIR/scripts/start-x-publisher.sh"

If the port is changed when starting the browser, pass the same port to the posting script:

node "$SKILL_DIR/scripts/x-publisher-post.mjs" --port=9224 --text "Draft text"

Troubleshooting

If the posting script prints LOGIN_REQUIRED, ask the user to log into X once inside the clean publishing Chrome window, then rerun the same command.

If the script times out or cannot find the composer, rerun:

bash "$SKILL_DIR/scripts/start-x-publisher.sh"

Then retry the draft command. The posting script closes stale X tabs before starting, so this usually clears old overlays or drafts.

If Kimi WebBridge is missing, install it first using the official installer:

curl -fsSL https://kimi-web-img.moonshot.cn/webbridge/install.sh | bash

If the user's normal Chrome has extension conflicts, do not attempt to toggle those extensions. Use this clean profile workflow instead.

What ships with it: 3 files

11.2 KB alongside SKILL.md, 2 of them executable

agents/

scripts/

Gives 0 of the 12 instructions most automation workflows skills give in 954 tokens

Counted across 745 of the 1,008 authors here whose files we hold, read 2026-08-07

  • Write conventional commit messagesin 36 of 745, across 35 files
  • Delete branches after mergein 30 of 745, across 21 files
  • Make atomic commitsin 25 of 745, across 15 files
  • Write minimal code to pass testsin 22 of 745, across 10 files
  • Re-snapshot after navigation or DOM changesin 21 of 745, across 13 files
  • Use try-catch for error handlingin 20 of 745, across 8 files
  • Run tests before committingin 20 of 745, across 12 files
  • Write tests before implementationin 20 of 745, across 8 files
  • Configure branch protection rulesin 19 of 745, across 5 files
  • Explain the why in commit messagesin 19 of 745, across 9 files
  • Refactor code while tests remain greenin 19 of 745, across 6 files
  • Interact with elements using refsin 19 of 745, across 11 files

Said here and by no other author read

  • Use draft mode unless live posting is explicitly confirmed
  • Pass the --send flag only for live posting
  • Close stale X tabs before opening a fresh tab
  • Ask the user to log in if X is not logged in
  • Resolve the absolute path to this skill folder manually
  • Override defaults with environment variables when needed

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,851. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.