← 返回 Skills 市场
jkobject

publish to all your social media!

作者 Jérémie Kalfon · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
74
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install fedica
功能描述
Compose and schedule cross-platform social posts on Fedica (X, LinkedIn, Threads, Mastodon, Bluesky) via agent-browser. Handles login, image upload, scheduli...
使用说明 (SKILL.md)

Fedica Skill

Fedica is a cross-platform social scheduler that publishes to X, LinkedIn, Threads, Mastodon, Bluesky (and more) from one compose box. This skill drives it through agent-browser.

Prerequisites

  • agent-browser installed (npm i -g agent-browser)
  • A Fedica account with at least one platform connected
  • Credentials available to you (this skill does not manage secrets — load your own from your password manager, pass, op, env vars, ~/.secrets/..., etc.)

Safety

Fedica is public broadcast. Never publish or schedule without explicit user confirmation on:

  • final post text
  • target platforms (checkboxes in the composer)
  • scheduled local time (Fedica shows UTC — convert before confirming)

Treat every Post Now / Add to Calendar / Update click like an email you cannot unsend.


Key gotchas

Gotcha Rule
Timezone Fedica displays everything in GMT+00 (UTC) regardless of browser or user TZ. Convert to the user's local TZ before confirming a schedule. Example: 07:00 UTC = 09:00 Europe/Paris (CEST, summer) or 08:00 Europe/Paris (CET, winter).
Bluesky limit 300 graphemes max. Almost always the binding constraint — design around it first.
Threads / Mastodon 500 chars each. X and LinkedIn much more generous.
Character counter Bottom right of composer shows NNN / 300 (always anchored to Bluesky's 300). If the text exceeds a platform's limit, clicking Schedule pops an error listing which platforms fail.
Custom Posts tab Allows per-platform versions (long LinkedIn + short Bluesky). Use when trimming to 300 kills the message.
Image upload The visible camera icon only opens a hidden input that Fedica will not react to on direct upload. You must open the modal first: openTweetBoxAttachmentUploadModal(1). The modal's input is #imageUploader1 (note the trailing 1).
Schedule button It is a split button. The primary Schedule label alone does not open the modal. The dropdown entry #openScheduleButton (labelled "Specific date") is what opens the "When to publish?" modal.
Date picker Web component \x3Ccalendar-date> containing \x3Ccalendar-month> whose day buttons live in a shadow DOM. Reach them via document.querySelector('calendar-month').shadowRoot.querySelector('button[aria-label="April 20"]').
Chrome extension nag A dialog "Fedica Browser extension" pops up on the Calendar page. Close with its X button, or use the "Don't remind me again" link, or Escape.
Headless browser sandbox In a headless/server environment the first agent-browser call needs --args "--no-sandbox" (or equivalent).

Fast workflow (happy path)

# 1. Launch session (first call of the session may need --no-sandbox on servers)
agent-browser --args "--no-sandbox" open "https://fedica.com/dash/"

# 2. Log in if not already authenticated
#    Dashboard shows a "Log in" button in the top-right if you are logged out.
#    Use your own credential source; this skill does not fetch or store passwords.
#    Fedica routes to account.fedica.com/oauth2/... (Azure-B2C-style form).

# 3. Open composer
agent-browser open "https://fedica.com/publish/"

# 4. Verify which networks are checked (snapshot shows them as checkboxes)
agent-browser snapshot 2>&1 | grep -i "checkbox.*-"
# Uncheck any you do not want to target:
#   agent-browser click @\x3Cref-of-checkbox>

# 5. Type the post
COMPOSE_REF=$(agent-browser snapshot 2>&1 | grep -oP 'textbox "Compose your post or thread" \[ref=\K[^\]]+')
agent-browser click @$COMPOSE_REF
agent-browser keyboard type "$(cat /tmp/post.txt)"

# 6. Attach image (skip if text-only)
agent-browser eval "openTweetBoxAttachmentUploadModal(1)"
sleep 1
agent-browser upload "#imageUploader1" "/absolute/path/to/image.png"
sleep 3  # let Fedica finish the upload

# 7. Open the When-to-publish modal
agent-browser eval "document.querySelector('#openScheduleButton').click()"
sleep 2

# 8. Pick the date (shadow DOM web component)
#    Replace "April 20" with the target month + day (e.g. "May 3")
agent-browser eval "
  const sr = document.querySelector('calendar-month').shadowRoot;
  sr.querySelector('button[aria-label=\"April 20\"]').click();
"

# 9. Switch from Optimized → Exact Time, then set the time
#    (find the Exact Time radio ref via snapshot, then click it)
EXACT_REF=$(agent-browser snapshot 2>&1 | grep -B1 '"Exact Time"' | grep -oP 'ref=\K[^\]]+' | head -1)
agent-browser click @$EXACT_REF

# Time in UTC (Fedica shows/accepts GMT+00). Convert from local TZ first!
agent-browser eval "
  const t = document.querySelector('#scheduleTimeControl');
  const setter = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set;
  setter.call(t, '07:00');
  t.dispatchEvent(new Event('change', {bubbles:true}));
"

# 10. Confirm with the primary button in the modal
#     New post  → "Add to Calendar"
#     Edit mode → "Update"
CONFIRM_REF=$(agent-browser snapshot 2>&1 | grep -B1 -E 'Add to Calendar|Update' | grep -oP 'ref=\K[^\]]+' | head -1)
agent-browser click @$CONFIRM_REF

Verify a scheduled post

agent-browser open "https://fedica.com/schedule/"
# Close the Chrome-extension nag dialog if it appears
agent-browser press Escape

# Click a post from the calendar to get its preview modal
agent-browser find text "\x3Csnippet from the post>" click

# Preview header shows: "YYYY Mon DD HH:MM AM/PM" in GMT+00
# Post ID appears in the onclick handlers: editPost(\x3CID>) and delPost(\x3CID>, ...)

Always re-verify the displayed time after scheduling. Subtract or add the UTC offset to get the user's local time, and restate that local time to them.


Editing / rescheduling

# From the preview popup, the pencil icon fires: editPost(\x3CpostId>)
agent-browser eval "editPost(\x3CpostId>)"

# Opens composer with existing content and the scheduled date/time visible
# Click the "Schedule" button next to the date to re-open the When-to-publish modal
# Change date/time → click "Update" (not "Add to Calendar" in edit mode)

Composing for 5 platforms in one shot

Plan around the Bluesky 300-grapheme ceiling from the start. Techniques:

  • Drop narrative intros — lead with the brand or headline
  • Drop parenthetical qualifiers like "(no strings attached)"
  • Remove redundant CTAs ("If you're building in this space…")
  • 1 emoji per bullet + 1 CTA link is usually enough
  • Em-dash () instead of "such as", "including", etc.

If the message needs the full long form, switch to the Custom Posts tab in the composer. Each platform then gets its own text field — full long version for LinkedIn/X, short teaser + link for Bluesky/Threads/Mastodon.


Character counting

Fedica counts graphemes, and its live NNN / 300 counter is authoritative. For an offline estimate, Python codepoint count is close but undercounts some emoji (e.g. 🏛️ = two codepoints):

s = open('/tmp/post.txt').read()
print('codepoints:', len(s))
# For accurate grapheme count:
#   pip install grapheme
#   import grapheme; print(grapheme.length(s))

When you are close to the 300 limit, paste into the composer and read the live counter.


Troubleshooting

Symptom Fix
Login redirects to account.fedica.com/oauth2/... Normal OAuth handoff; fill the password on the Azure-B2C-style form that appears.
upload command fails with a CDP error The file input element ID differs: #imageUploader (page-level, not wired up) vs #imageUploader1 (inside the modal). Open the modal first with openTweetBoxAttachmentUploadModal(1) and use the modal input.
Date picker does not react to clicks It is a shadow-DOM web component. Use document.querySelector('calendar-month').shadowRoot to reach the buttons.
Post cannot be longer than N characters popup The error lists the offending platforms. Either trim to the lowest limit, or switch to Custom Posts.
Scheduled time is off by 1–2 hours Fedica is in GMT+00. Adjust for the user's current offset (e.g. CEST = UTC+2, CET = UTC+1, EDT = UTC−4, EST = UTC−5).
"Fedica Browser extension" dialog blocks the calendar page Close with the X or the "Don't remind me again" link.

Sensible defaults

When the user does not specify, propose and then confirm:

  • Time: 09:00 local on the next weekday (good slot for pro-network engagement). Convert to UTC before entering it into Fedica.
  • Platforms: all connected (leave every checkbox checked).
  • Visibility: default public on each platform (Fedica does not add visibility controls per post).

Do not assume — always restate the final plan (text preview, platforms list, local-time schedule) and wait for explicit go before clicking the confirm button.


Fedica endpoints

  • Dashboard: https://fedica.com/dash/
  • Compose: https://fedica.com/publish/
  • Scheduled queue: https://fedica.com/schedule/
  • Drafts: https://fedica.com/publish/drafts/
  • Media library: https://fedica.com/publish/media/

Post IDs are numeric integers. They appear in the editPost(...), delPost(...), and calendar-preview popup onclick handlers.

安全使用建议
This skill appears to do what it says: drive Fedica via agent-browser to compose, upload, and schedule posts. Before using it: 1) confirm you have and trust the 'agent-browser' npm package (review its source or install it in a sandbox); 2) be aware the agent will read local files you point it at (post text, image paths)—only give it files you intend to publish; 3) the skill will not fetch or manage secrets for you, so supply credentials from a trusted store and avoid embedding long-lived secrets in process env if possible; 4) always review and explicitly confirm the final post text, target platforms, and converted local schedule (skill warns Fedica shows UTC only) before the final click; 5) note the small metadata inconsistency (registry shows no required binaries while SKILL.md requires agent-browser) — ensure your agent environment has agent-browser available before invoking the skill.
功能分析
Type: OpenClaw Skill Name: fedica Version: 1.0.0 The Fedica skill bundle provides legitimate automation instructions for an AI agent to interact with the Fedica social media scheduling platform via agent-browser. It includes detailed technical guidance for handling complex UI elements like shadow DOM date pickers and specific modal triggers (e.g., openTweetBoxAttachmentUploadModal). The skill explicitly instructs the agent to seek user confirmation before publishing and does not contain any evidence of data exfiltration, credential theft, or malicious execution.
能力标签
requires-oauth-tokenrequires-sensitive-credentials
能力评估
Purpose & Capability
Name/description match the runtime instructions: the SKILL.md drives Fedica via agent-browser to compose, upload images, and schedule posts. One mismatch: registry metadata listed no required binaries, but the skill's SKILL.md (and its own metadata block) explicitly requires the 'agent-browser' command.
Instruction Scope
Instructions confine actions to Fedica's web UI using agent-browser (open, eval, upload, click, snapshot). They require reading local post files and uploading local images, and instruct the user to supply credentials from their own store; they do not instruct arbitrary system-wide reads or exfiltration.
Install Mechanism
This is instruction-only; there is no install spec. The README suggests installing agent-browser via npm (user action), which is normal for this type of skill but means the user must vet that external package before installation.
Credentials
The skill does not declare or require any environment variables or credentials, which aligns with SKILL.md's claim that it does not manage secrets. However the instructions expect the agent/user to supply credentials (password manager, env vars, ~/.secrets, etc.) and to read local files (e.g., /tmp/post.txt, image paths), so the skill will operate with whatever local credentials/files the user provides.
Persistence & Privilege
No special persistence privileges requested (always:false). The skill is instruction-only and does not modify other skills or system-wide config.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install fedica
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /fedica 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of the Fedica skill for cross-platform social post scheduling. - Compose and schedule posts on X, LinkedIn, Threads, Mastodon, and Bluesky via agent-browser. - Handles login workflows, image upload (modal-based), scheduling (UTC-only display), and character limits for each platform. - Provides safety guidelines, key workflow steps, and solutions to common issues. - Details essential gotchas, including platform-specific constraints and UI elements. - Supports verification and editing of scheduled posts through agent-browser commands.
元数据
Slug fedica
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

publish to all your social media! 是什么?

Compose and schedule cross-platform social posts on Fedica (X, LinkedIn, Threads, Mastodon, Bluesky) via agent-browser. Handles login, image upload, scheduli... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 74 次。

如何安装 publish to all your social media!?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install fedica」即可一键安装,无需额外配置。

publish to all your social media! 是免费的吗?

是的,publish to all your social media! 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

publish to all your social media! 支持哪些平台?

publish to all your social media! 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 publish to all your social media!?

由 Jérémie Kalfon(@jkobject)开发并维护,当前版本 v1.0.0。

💬 留言讨论