Schedule
TinyAGI/tinyagi
Create, list, and delete scheduled tasks (recurring or one-time) that send messages to agents.
Trigger when the user wants to hand a task to background async execution, run it on a cron/recurring schedule, delegate it to a project Agent for a long run, or inspect/approve/cancel tasks on the…
$ npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OpenLoaf/OpenLoaf schedule-ops-skill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/schedule-ops/en .claude/skills/schedule-ops-skill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "schedule-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/schedule-ops/en into .claude/skills/schedule-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "schedule-ops-skill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/schedule-ops/enType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OpenLoaf/OpenLoaf schedule-ops-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .agents/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/schedule-ops/en .agents/skills/schedule-ops-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "schedule-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/schedule-ops/en into .agents/skills/schedule-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "schedule-ops-skill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OpenLoaf/OpenLoaf schedule-ops-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/schedule-ops/en .cursor/skills/schedule-ops-skill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "schedule-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/schedule-ops/en into .cursor/skills/schedule-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "schedule-ops-skill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/OpenLoaf/OpenLoaf.git --path apps/server/src/ai/builtin-skills/schedule-ops/en--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OpenLoaf/OpenLoaf schedule-ops-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/schedule-ops/en .gemini/skills/schedule-ops-skill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "schedule-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/schedule-ops/en into .gemini/skills/schedule-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "schedule-ops-skill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install OpenLoaf/OpenLoaf schedule-ops-skillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .github/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/schedule-ops/en .github/skills/schedule-ops-skill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "schedule-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/schedule-ops/en into .github/skills/schedule-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "schedule-ops-skill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OpenLoaf/OpenLoaf schedule-ops-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenLoaf/OpenLoaf.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/apps/server/src/ai/builtin-skills/schedule-ops/en .opencode/skills/schedule-ops-skill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "schedule-ops-skill" agent skill from https://github.com/OpenLoaf/OpenLoaf/tree/main/apps/server/src/ai/builtin-skills/schedule-ops/en into .opencode/skills/schedule-ops-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "schedule-ops-skill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
schedule-ops-skillTrigger when the user wants to hand a task to background async execution, run it on a cron/recurring schedule, delegate it to a project Agent for a long run, or inspect/approve/cancel tasks on the…
Schedule Ops Skill is an agent skill from OpenLoaf/OpenLoaf. Trigger when the user wants to hand a task to background async execution, run it on a cron/recurring schedule, delegate it to a project Agent for a long run, or inspect/approve/cancel tasks on the board. Typical phrasings: "every day at 9am help me X", "let the coder agent run this", "what's pending approval". Not for: one-shot immediate answers (→ just use tools directly), real calendar meetings/appointments (→ calendar-ops-skill), one-off plan approvals (→ SubmitPlan).
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Scheduled and recurring tasks. The repository describes itself as: 🍞Open-source, local-first AI workspace with Agents, multi-model chat (GPT/Claude/Gemini/DeepSeek), Notion-like docs, AI image & video generation, email, calendar & terminal…. The licence is AGPL-3.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f7eccf6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Schedule Ops Skill loads about 3.2k tokens when it runs. Until then it costs about 125 tokens; SKILL.md has 1,696 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from OpenLoaf/OpenLoaf at commit f7eccf6, republished under its AGPL-3.0 licence (© OpenLoaf). 1,696 words, ~3,237 tokens.
.claude/skills/schedule-ops-skill/SKILL.md (or your agent's skills folder).| Tool | Responsibility | Read-only |
|---|---|---|
ScheduledTaskManage | Task creation and management (action: create / cancel / delete / resolve / archive, etc.) | No |
ScheduledTaskStatus | Query task snapshots (status / executionSummary / lastError) | Yes |
ScheduledTaskWait | Block until a given task reaches a terminal state or times out (mandatory partner for immediate tasks) | Yes |
Loading: All are deferred tools. Before calling, activate their schemas via
ToolSearch(names: "ScheduledTaskManage,ScheduledTaskStatus,ScheduledTaskWait").
ScheduledTaskStatusScheduledTaskManage (create / cancel / delete / archive, etc.)ScheduledTaskManage with the resolve action (approve / reject / rework)ScheduledTaskManage(create, skipPlanConfirm:true) immediately followed by ScheduledTaskWaitScheduledTaskStatus to get the list, then ScheduledTaskManage one by oneThis is the single most important decision point in this skill. Task completion does not surface itself in the conversation automatically — the Agent receives no async notifications. The only way to learn a task's result is to actively call a tool to fetch it (semantically similar to Claude Code's Sleep tool).
When the user describes something to do right now ("run this script", "check system status", "generate a report", "help me X now"):
ScheduledTaskManage(action:'create', skipPlanConfirm:true, ...) to kick it offScheduledTaskWait({taskId, timeoutSec:60}) to block until completionScheduledTaskWait tool_result, then end_turnFields returned by ScheduledTaskWait:
status: done — task succeeded, read summary (executionSummary)status: cancelled — task was cancelled or exceeded the failure threshold, read error (lastError)status: timeout — 60s elapsed without completion, read currentStatus (usually still running)When the user describes something for the future or recurring ("every day at 8am", "in 5 minutes", "every Monday", "tomorrow morning"):
ScheduledTaskManage(action:'create', schedule:{...}) to create the scheduled taskNever call ScheduledTaskWait on a scheduled task — scheduled tasks only fire at some future time. Calling ScheduledTaskWait just stalls the current turn until timeout (up to 300s), wasting model tokens and making the user wait for nothing.
When ScheduledTaskWait returns after a 60s timeout, the task is still running in the background. Your options:
ScheduledTaskWait({taskId, timeoutSec:120}) once more to keep waitingWrong approach (wastes tokens, inefficient, duplicates what ScheduledTaskWait already does):
Bash(sleep 5)
ScheduledTaskStatus(taskId) → still running
Bash(sleep 5)
ScheduledTaskStatus(taskId) → still running
...Correct approach:
ScheduledTaskWait({taskId, timeoutSec: 60}) → one call, event-driven, zero wasted round-tripsScheduledTaskWait subscribes to task completion events internally and returns the instant the task reaches a terminal state. There's no need to simulate the same thing with Bash sleep + polling.
When the user says "what do I have to deal with", "what's on my plate", or "what's happening today", they could mean tasks, calendar events, or unread email. Prefer ScheduledTaskStatus to check tasks, but tell the user explicitly that you only looked at the tasks dimension. If context hints at calendar or email (e.g. "any meetings today"), suggest the corresponding skill instead of guessing.
Tasks default to a "plan → approve → execute" two-phase flow. The reason is simple: some operations cannot be undone once executed — files get modified, emails get sent, data gets deleted. Two-phase lets the user see the Agent's execution plan before any irreversible action, and decide whether to proceed.
The flow: after the Agent receives a task, it first generates an execution plan, and the task enters the review state awaiting user review. Once the user sees the plan, they can approve, reject, or request changes (rework, with modification notes). Only after approval does the Agent actually execute. The result then enters review again for user confirmation, and finally gets marked done.
Full state transition: todo → running(plan) → review(plan) → approve → running(execute) → review(result) → done
Setting skipPlanConfirm: true makes the task execute directly, simplifying the flow to: todo → running → done.
Use this for read-only, side-effect-free operations — checking server status, fetching weather, summarizing information, generating a report digest. Even if such a task goes wrong, nothing is lost, and the extra approval step just slows things down.
Rule of thumb: if the result turns out bad, can the user simply ignore it? If yes, use skipPlanConfirm: true. If no, keep the default two-phase flow.
Concrete examples:
Note: scheduled tasks (with schedule) default to skipPlanConfirm: true, because the user usually isn't online to approve when the timer fires. If a scheduled task involves irreversible operations, explicitly set skipPlanConfirm: false.
When creating a task, first decide whether it needs scheduling. Tasks without schedule run immediately and never enter the scheduling system.
User needs it once? → once
Provide scheduleAt (ISO 8601 timestamp, must be in the future). Fits "send the weekly report at 5pm Friday" or "remind me about the meeting tomorrow morning".
User needs it repeated at a fixed interval? → interval
Provide intervalMs (milliseconds), minimum 60000 (1 minute). Fits "check the server every 30 minutes" (intervalMs: 1800000) or "sync data every 2 hours" (intervalMs: 7200000).
User needs a complex time rule? → cron
Provide cronExpr (5-field format: minute hour day month weekday) plus timezone. Fits "check email at 9am on weekdays" (cronExpr: "0 9 * * 1-5") or "generate a report on the 1st of every month" (cronExpr: "0 10 1 * *").
Common cron examples: 0 9 * * * (every day at 9am) · 0 9 * * 1-5 (weekdays at 9am) · 0 * * * * (every hour on the hour) · 0 10 1 * * (1st of every month at 10am) · 0 8 * * 1 (every Monday at 8am)
When a task is in the review state, use the resolve action:
reason explaining what to change, and the Agent will replan accordinglyScheduledTaskManage { action: "resolve", taskId: "xxx", resolveAction: "rework", reason: "please add error handling" }date via Bash to confirm the current time and timezoneScheduledTaskManage with the create action and the schedule configWriting title and description: title is a short summary (5-15 chars, distill the user's intent rather than quoting them verbatim); description is the Agent's execution handbook and must clearly spell out the goal (what to do), the deliverable (output format, e.g. "save report.md to the project root"), and the completion criteria (objectively verifiable conditions, not vague phrases like "good quality"). For tasks with skipPlanConfirm: false, the description must be thorough (add constraints and hard red lines); for tasks with skipPlanConfirm: true, the description can be concise, but goal and deliverable cannot be omitted.
ScheduledTaskStatus {} to fetch all active tasksreviewScheduledTaskStatus {} first to display all current tasks and confirm the blast radiusinterval too small — intervalMs below 60000 is rejected. Why: 1 minute is the hard floor; 5-30 minutes is enough for most monitoring scenarios, and shorter intervals exhaust system resources.
cron without timezone — Without timezone, cron runs in UTC, so "9am" turns into 1am for the user. Why: the server defaults to UTC, which differs from the user's local time. Always ask or infer the user's timezone from context and pass it explicitly.
deleteAll without checking first — deleteAll only deletes terminated tasks (done / cancelled) and never touches active ones. Still, call ScheduledTaskStatus first and let the user confirm the list. Why: the user may have forgotten that a completed task contains important execution logs.
Creating a task when you shouldn't — If the user says "check the weather" or "what time is it", just do it — don't create a task. Why: the task system has scheduling and state-management overhead; only bother when you actually need scheduling, recurrence, deferred execution, or an approval flow.
scheduleAt in the past — scheduleAt for once tasks must be in the future. Why: past times cannot be scheduled and will be rejected. Verify the current time with Bash date before creating.
delete on an active task — Only tasks in done or cancelled state can be deleted. Why: running tasks must be cancelled first to stop the Agent, then deleted to clean up the record.
Forgetting ScheduledTaskWait after creating an immediate task — When the user says "run a script right now", calling only ScheduledTaskManage(create) and replying "started" leaves the user waiting in a black box — task completion will not surface unless they ask again. Correct: follow create immediately with ScheduledTaskWait and deliver the result in one shot.
Calling ScheduledTaskWait on a scheduled task — A scheduled task only runs at a future time, so ScheduledTaskWait will stall the current turn until timeout. Correct: for scheduled tasks, reply "scheduled" right after create and end_turn.
Bash sleep + ScheduledTaskStatus polling — This was a stopgap before ScheduledTaskWait existed and is now obsolete. ScheduledTaskWait is event-driven with zero wasted round-trips — just use it.
© OpenLoaf, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in apps/server/src/ai/builtin-skills/schedule-ops/en of OpenLoaf/OpenLoaf.
Open the folder on GitHubat commit f7eccf6
Schedule Ops Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Schedule Ops Skill this skillOpenLoaf/OpenLoaf | 108 | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| ScheduleTinyAGI/tinyagi | 3.6k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Send User MessageTinyAGI/tinyagi | 3.6k | — | ~829 | Automated safety check: Pass | MIT | |
| Cron Opsczl9707/build-your-own-openclaw | 1.9k | — | ~593 | Automated safety check: Pass | MIT | |
| X Bookmarkssharbelxyz/x-bookmarks | 289 | — | ~2k | Automated safety check: Notes | None | |
| Jobsphysiclaw/PhysiClaw | 386 | 1 repos | ~1.1k | Automated safety check: Pass | MIT |
TinyAGI/tinyagi
Create, list, and delete scheduled tasks (recurring or one-time) that send messages to agents.
TinyAGI/tinyagi
Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp).
czl9707/build-your-own-openclaw
Create, list, and delete scheduled cron jobs. An agent skill from czl9707/build-your-own-openclaw.
sharbelxyz/x-bookmarks
Fetch, summarize, and manage X/Twitter bookmarks via bird CLI or X API v2.
physiclaw/PhysiClaw
A skill your agent uses when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job.
Automattic/agent-skills
A skill your agent uses when working with WP-CLI (wp) for WordPress operations: safe search-replace, db export/import, plugin/theme/user/content management, cron, cache flushing, multisite, and…
OpenLoaf/OpenLoaf
Triggers when the master Agent faces a multi-step complex task and is deciding whether / how to outsource sub-tasks to built-in subagents (browser / doc-editor / data-analyst / extractor /…
OpenLoaf/OpenLoaf
Triggered when the user asks for page-level interaction with a specific webpage: login, form filling, button clicks, pagination scraping, screenshots, downloading page images, handling CAPTCHAs or…
OpenLoaf/OpenLoaf
Triggered when the user wants lifecycle management of OpenLoaf canvases / whiteboards: create, open, filter, duplicate, delete, rename, or change ownership.
OpenLoaf/OpenLoaf
Reads, edits, converts and reviews Word documents through three dedicated tools, covering tracked changes, comments, tables, images and format conversion.
OpenLoaf/OpenLoaf
Handles a real email account through query and mutate tools: check the inbox, read, search, reply, forward, compose and organize, with sending always confirmed first.
OpenLoaf/OpenLoaf
Guides an agent to operate native macOS apps by surveying an app first, acting through intents, menus or keystrokes, and verifying each step, in OpenLoaf Desktop only.
Categories
Trigger when the user wants to hand a task to background async execution, run it on a cron/recurring schedule, delegate it to a project Agent for a long run, or inspect/approve/cancel tasks on the…. Schedule Ops Skill is an agent skill from OpenLoaf/OpenLoaf. Trigger when the user wants to hand a task to background async execution, run it on a cron/recurring schedule, delegate it to a project Agent for a long run, or inspect/approve/cancel tasks on the board.
Schedule Ops Skill fits situations like: the user wants to hand a task to background async execution; run it on a cron/recurring schedule; delegate it to a project Agent for a long run; inspect/approve/cancel tasks on the board.
Run `npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a claude-code`. Or copy the skill folder (apps/server/src/ai/builtin-skills/schedule-ops/en in OpenLoaf/OpenLoaf) into .claude/skills/schedule-ops-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a codex`. Or copy the skill folder (apps/server/src/ai/builtin-skills/schedule-ops/en in OpenLoaf/OpenLoaf) into .agents/skills/schedule-ops-skill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenLoaf/OpenLoaf --skill schedule-ops-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/schedule-ops-skill, .gemini/skills/schedule-ops-skill, .github/skills/schedule-ops-skill and .opencode/skills/schedule-ops-skill in your project.
SKILL.md names no scripts, command-line tools or credentials: Schedule Ops Skill is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Schedule Ops Skill is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Schedule Ops Skill: Schedule (TinyAGI/tinyagi, 3.6k stars), Send User Message (TinyAGI/tinyagi, 3.6k stars), Cron Ops (czl9707/build-your-own-openclaw, 1.9k stars) and X Bookmarks (sharbelxyz/x-bookmarks, 289 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OpenLoaf (a GitHub organization) maintains it in OpenLoaf/OpenLoaf, which has 108 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on May 14, 2026.
Source: OpenLoaf/OpenLoaf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.