By EthanSK
Skill-only agent/OpenClaw-compatible plugin for browser-based reposting across websites the current harness can safely operate through a logged-in browser; ships documented examples for LinkedIn, X, Bluesky, Threads, and Facebook. The running agent uses its existing tools (Read, Edit, Write, Bash, current-harness browser automation, and the current harness's Telegram/message tool — OpenClaw message tool or Claude Code plugin:telegram:telegram) to scrape, dedupe (Layer 1 strings + Layer 2 agent semantic check), apply custom user skip rules, post, log history, manage source-item fanout manifests for backfill slots, and notify. Maintains per-pair learnings.md so the agent does not re-figure site quirks every scheduled tick. No CLI, no MCP server, no platform SDKs.
Manage Repost-with-agent pairs (list / show / create / edit). Skill-driven; no CLI.
Run a Repost-with-agent pair end-to-end (scrape + dedupe + URL expand + publish + Telegram-confirm). Skill-driven; no CLI.
Backfill historical source posts. Source-level jobs use one source-item fanout across all enabled destinations; pair-specific jobs are destination-specific only when explicitly requested.
Install current-harness scheduler entries for Repost-with-agent. Default listen mode is one daily all-enabled-pairs sweep; source backfills use source-item fanout; custom per-pair, subset, dry/preview, and arbitrary cadence jobs are supported when the user asks.
Walk back through historical source posts and repost the missing ones (newest-first). Use when the user asks to "backfill <pair>", "catch up the destination", "repost the last N posts", or invokes /repost-backfill. Multi-post operation with rate-limiting between publishes.
User-configured allow/skip rules for Repost-with-agent candidates. Apply before dedupe/publish so Ethan can block categories such as X video/livestream promos without polluting publish ledgers.
Layer 2 semantic-similarity dedupe for Repost-with-agent. After Layer 1 (exact + fuzzy-string match) returns "no duplicate", you (the agent) read the candidate draft alongside the destination's most recent posts and use your OWN reasoning to decide whether the candidate is "saying the same thing in different words" as anything already on the destination. If yes, skip the publish — Ethan would rather miss a post than ship an embarrassing paraphrased duplicate.
Reference for the Repost-with-agent dedupe algorithm — how to check a candidate against per-pair history, the global cross-pair ledger, and recent destination posts to avoid double-posting. Used by repost-run, repost-backfill, and any other publish path.
Cross-pair/global dedupe for Repost-with-agent. Use before any publish-capable run so pairs with different sources/destinations share one content ledger and avoid double-posting the same item through alternate hops such as LinkedIn→X→Bluesky and X→Bluesky.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
GitHub Pages: https://ethansk.github.io/Repost-with-agent/
A skill-only agent/OpenClaw-compatible plugin that drives the running agent through cross-platform reposting. No CLI, no MCP server, no platform SDKs, no Playwright. The plugin ships zero code that does the work — it ships instructions (skills) and the agent's existing toolkit (Read, Edit, Write, Bash, the current harness's browser automation, and the current harness's configured message-delivery tool) does everything.
Works with any website the agent can safely operate through the logged-in
browser: sources, destinations, and compose flows are defined by pair config,
platform docs, per-pair learnings.md, and custom rules rather than a hardcoded
platform list. This repo ships documented/validated example surfaces for
LinkedIn, X, Bluesky, Threads, and Facebook.
That generic model still has real limits: no API keys, no stealth, no CAPTCHA /
2FA bypass, no private-inbox scraping unless explicitly authorized, no posting
where site policy or account ownership is unclear, and no assumption that a new
site's DOM will be stable. New websites need a preview validation pass, account
identity checks, destination-specific dedupe, and learnings/custom rules as the
agent discovers the safe flow. For OpenClaw runs, browser automation means
OpenClaw's own browser profile (openclaw, CDP port 18800), not Ethan's
personal browser/profile.
plugins.load.paths and enable
plugins.entries["repost-with-agent"]..claude-plugin/./pair create to set up a source → destination pair./repost-run <pair-id> to do a manual end-to-end repost./repost-setup-cron to install the default daily all-enabled-pairs sweep
(/repost-run all). If you want something else, say so: per-pair jobs,
subset jobs, dry/preview sweeps, custom cron expressions, and manual-only
pairs are all valid user-owned configurations.That's it. The agent does everything else.
This is a directory-source plugin. Harness config points at this repo instead of copying the skill files elsewhere. There is no repo-owned shell registration helper.
~/.openclaw/openclaw.json includes this repo in
plugins.load.paths and enables
plugins.entries["repost-with-agent"]..claude-plugin/ directory-source metadata when that harness is used.git pull: no re-registration is needed as
long as the configured path still points at this repo.Before publishing or sharing a bundle, package only the tracked repo files
(for example via git archive or a clean checkout). Do not zip the live
working directory if it contains ignored local files such as .env,
.claude/, browser/cache artefacts, or ~/.repost-with-agent state.
This plugin is a folder of Markdown skills + slash commands; the running agent reads them and executes the procedure using its native tools. The plugin itself runs zero code at runtime.
The agent maintains a per-pair learnings.md so it doesn't re-figure quirks
every run — pagination caps, DOM changes, rate-limit signatures, and
account-specific gotchas accumulate across scheduled ticks instead of being
rediscovered from scratch each time. v4.2.0 adds a structured entry shape
(optional ### Selectors, ### Step playbook, and ### Quirks
sub-sections) so each entry doubles as a recipe the next run can follow
verbatim — read learnings.md FIRST, fall back to
docs/destinations/<platform>.md only when learnings.md is silent or a
cached selector misses. (See
skills/repost-learnings/SKILL.md.)
npx claudepluginhub ethansk/repost-with-agent --plugin repost-with-agentBridge AI coding agents across machines via SSH. Unified MCP server hosting both the 10 outbound bridge tools (bridge_send_message, bridge_notify, bridge_learnings_add, bridge_learnings_search, bridge_receive_messages, bridge_run_command, bridge_status, bridge_list_machines, bridge_clear_inbox, bridge_inbox_stats) AND the inbound channel watcher that pushes incoming messages to the running Claude session. Companion to the bash `agent-bridge` CLI used for pairing and SSH transport.
Claude Code hooks that summarize quiet Telegram assistant bursts after voice notes.
Make a sound when AI agents finish. Per-agent chime on Stop / SubagentStop, all-complete chime when the active-agent set drains. Configurable via 9 MCP tools (chime_status, chime_list_sounds, chime_set_per_agent_sound, chime_set_all_complete_sound, chime_set_volume, chime_enable, chime_disable, chime_test, chime_reset_active). macOS only.
Harness-native ECC plugin for engineering teams - 67 agents, 279 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.
v9.54.1 — Reliability wave: tangle contextual review correction loop with hard round ceiling, progress-supervised review rounds (per-agent stall watch, descendant-tree kills), council diversity and agy pin fixes, marketplace generator source-of-truth fix, provider troubleshooting runbook and cost-expectations docs. Run /octo:setup.
Persistent file-based planning for AI coding agents. Crash-proof markdown plans (task_plan.md, findings.md, progress.md) that survive context loss and /clear, with an opt-in completion gate and multi-agent shared state. Manus-style. Works with Claude Code, Codex CLI, Cursor, Kiro, OpenCode and 60+ agents via the SKILL.md standard. Includes Arabic, German, Spanish, and Chinese (Simplified and Traditional).