Easel is an open-source content workspace and AI agent for managing social media from trend discovery through planning, content creation, publishing, and performance analysis. It is intended for social media creators and maintains separate account profiles, content projects, platform adaptations, and publishing records. The catalogue skills support these content and publishing workflows.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ZJU-REAL/Easel --skill skill-publish-schedulergit clone --depth 1 https://github.com/ZJU-REAL/EaselWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zju-real/easel/skill-publish-scheduler)<a href="https://agentmods.dev/skills/zju-real/easel/skill-publish-scheduler"><img src="https://agentmods.dev/badge/skills/zju-real/easel/skill-publish-scheduler/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zju-real/easel/skill-publish-scheduler"><img src="https://agentmods.dev/badge/skills/zju-real/easel/skill-publish-scheduler.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00117 | $0.00900 |
| Opus 5.5 | $0.00047 | $0.00360 |
| Sonnet 5.5 | $0.00023 | $0.00180 |
| Haiku 4.5 | $0.00012 | $0.00090 |
Grade A, and why
skill-publish-scheduler scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 15d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
批量定时发布排期
管理一张排期表(内容×平台×时间),到点把任务派发给各平台发布 SKILL。走
scripts/publish_queue.py(纯标准库)。本 SKILL 负责调度与状态,实际发布委派各平台 publisher (skill-xhs-publisher / skill-douyin-upload / skill-wechat-publisher / skill-bilibili-upload / cross-platform-publish)。
输入
排期表 CSV(表头需含 publish_at, platform, content,可选 title, note):
publish_at,platform,content,title
2026-08-01 09:00,xiaohongshu,outputs/note1,早间笔记
2026-08-01 20:00,douyin,outputs/主题名/final.mp4,晚间视频
或等价 JSON。
执行
脚本路径(相对项目根):skills/builtin/skill-publish-scheduler/scripts/publish_queue.py(各子命令 -h)。
Q=outputs/publish-queue/q.json
python <skill>/scripts/publish_queue.py import --file plan.csv --queue $Q # 导入排期
python <skill>/scripts/publish_queue.py list --queue $Q # 查看队列
python <skill>/scripts/publish_queue.py due --queue $Q # 此刻到期项
python <skill>/scripts/publish_queue.py run --queue $Q # 打印到期派发计划
# 按计划逐条委派对应平台 publisher 发布,完成后回填:
python <skill>/scripts/publish_queue.py mark --queue $Q --id 1 --status done
到期派发流程(编排)
due/run得到此刻到期项。- 对每条到期项:按
platform委派对应发布 SKILL 执行真实发布 (单平台或用 cross-platform-publish)。发布前按平台适配内容格式。 - 发布成功/失败后
mark回填状态(可配合 skill-publish-notify 推送结果、skill-publish-log 记录)。 - 需要"守护式到点触发"时,由当前执行引擎可用的定时功能或系统调度器周期性跑
run(本脚本只做单次到期计算,不常驻);没有调度能力时说明限制。
规则
- 本 SKILL 不直接驱动浏览器/API 发布——只做排期与状态管理,发布交给各平台 publisher。
--now可覆盖当前时间用于预演(查看某时刻会发哪些),不影响真实时间。- 发布时间用
YYYY-MM-DD HH:MM;同一时刻多平台会一并到期。 - 每条发布后务必
mark,避免重复发布。 - 定时触发依赖上层(执行引擎定时功能 / 系统调度器 / 手动周期跑),本脚本是无状态到期计算 + 持久化队列。
参考来源
排期→到期计算→派发→状态回填是内容日历落地发布的标准闭环。调度与真实发布分层: 调度纯脚本(可测),发布委派各平台 publisher(环境相关)。
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 15d ago Changed 7bbe48636fe3
- 1mo ago First seen · 60 lines · 117 tokens per session scan A ccede176bb62
skill-publish-scheduler is a skill published in the GitHub repository ZJU-REAL/Easel (4,138 stars, last pushed 3d ago), licensed Apache-2.0. It adds 117 tokens to every session and 900 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
bootstrap
Onboarding conversation to generate a user profile.
life-design
Walk you through the Stanford Designing Your Life method and write your Personal Life Design Blueprint — three Odyssey plans and the prototypes to test them.
using-powerups
Use when starting work in a repository with Agent Powerups installed, when a task may match a reusable local skill, command, workflow, hook recipe, AGENTS.md template, or MCP feature.
context-minimization
Use when a task runs long and the context window is filling -- large files are being read whole, command output is flooding the transcript, or responses are getting verbose and slow.
no-fluff
Ultra-compressed communication mode. Cuts token usage 75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "no fluff", "be concise", "use less tokens", or similar.
repo-map
Use when the task is to understand an unfamiliar codebase, locate key entry points, or summarize architecture before editing.