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 agentmods add skills/dustinestes/clockify-agent-plugin/clockify-automatenpx skills add dustinestes/clockify-agent-plugin --skill clockify-automategit clone --depth 1 https://github.com/dustinestes/clockify-agent-pluginWrote 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/dustinestes/clockify-agent-plugin/clockify-automate)<a href="https://agentmods.dev/skills/dustinestes/clockify-agent-plugin/clockify-automate"><img src="https://agentmods.dev/badge/skills/dustinestes/clockify-agent-plugin/clockify-automate.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00082 | $0.01288 |
| Opus 5 | $0.00041 | $0.00644 |
| Sonnet 5 | $0.00016 | $0.00258 |
| Haiku 4.5 | $0.00008 | $0.00129 |
Grade A, and why
clockify-automate 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 today.
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.
How it starts
The opening of the file, as written. The whole thing — 74 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Clockify automate
Mode on. This is not a second init. If config is already present, skip rewrite and only add Cursor glue.
Config root
Pass config_root on Clockify MCP calls. If it is already known this session and still this repo, reuse it — do not run git before every tool. Otherwise resolve once with git rev-parse --show-toplevel from the working directory (open tabs are not required). In a multi-root workspace, git-toplevel the focused file/folder; if nothing is focused, ask or scan roots for .clockify/config.yml. Re-resolve when the focused root changes. Do not pass the .code-workspace parent.
Init first (if needed)
If .clockify/config.yml is missing (clockify_get_config with config_root returns found: false), perform clockify-init in full (workspace AskQuestion, then shape 0/1/2, then ensure only for shapes 1 and 2). It is idempotent. Then only the steps below. Do not restate or fork that skill’s config/ignore/project/task steps. If they chose shape 0, config exists but there may be no Clockify project yet — still write Cursor glue; do not invent a project.
If config already exists, do not overwrite it. Continue with After init.
After init
clockify_get_configwithconfig_root— readentry_methods.automated.triggers,entry_methods.automated.inactivity,entry_methods.automated.task,entry_methods.automated.overlap. Ifentry_methods.automated.triggersis empty, stop and point at.clockify/config.yml.example.- Add or update
.cursor/rules/clockify.mdcso the agent:- Passes
config_rooton Clockify MCP calls: reuse the known git toplevel this session; re-resolve only if the folder or focused root changed (cwd first, not the open file) - Passes
entry_method: automatedonclockify_start_timer/clockify_stop_timer - On starting work / planning for an issue → start with issue fields; honor
task.from/task.if_missing(create Clockify tasks from GitHub labels or fromrepoNamewhenfromisrepo; if no label and not repo, no task) - On finishing issue work, shipping a PR, or closing/abandoning a PR in-session → stop
- On switching issues → warn with the running timer’s description/duration; stop-then-start only after the user confirms
- On session start / resume →
clockify_get_running_timer; ifinactivity.pastThreshold, stop (or ask) - If a tool returns
overlap: true, ask beforeconfirm_overlap: trueunlessoverlap.on_conflictisoverride
- Passes
- Leftover rename: if
.cursor/rules/clockify-time.mdcstill exists, move its content intoclockify.mdc(or delete it after writing the new file). Do not leave both rule files. - In the managed
.gitignorestanza, ensure.cursor/rules/clockify.mdcis listed and drop any.cursor/rules/clockify-time.mdcline. - Optionally add Cursor hooks (
sessionStart/sessionEnd/stop) for the inactivity check — fail-open so hooks never block coding if Clockify is down. Prefer entries clearly owned by Clockify soclockify-unautomatecan remove them surgically. There is no PR-close Cursor hook;pr_closedis the agent rule when the user closes or abandons a PR in this session.
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.
- today Changed · +4 tokens per session 1b893d36992f
- 3d ago First seen · 74 lines · 78 tokens per session scan A ba4bc8f7301e
clockify-automate is a skill published in the GitHub repository dustinestes/clockify-agent-plugin (0 stars, last pushed 2d ago), licensed MIT. It adds 82 tokens to every session and 1,288 once invoked, about $0.0004 per session on Opus 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-08-31.
Other skills, from other repositories
goalslot-goal-checkup
Check whether one GoalSlot goal is on track. Use when the user asks about a specific goal, whether they will hit a deadline, why a goal is stalled, or wants to decide between changing the target, moving the deadline, or allocating more time. Shows the arithmetic and distinguishes an allocation problem from an…
smartsheet-rm
Enterprise Agent Skill for orchestrating Resource Management by Smartsheet (10,000ft API) — manage weekly timesheets, reconciliation, project staffing, assignments, capacity planning, and user availability.
goalslot-log-time
Log or correct time in GoalSlot. Use when the user says they forgot to track something, wants to catch up on yesterday or last week, narrates what they worked on, asks to fix or move a time entry, or wants to start and stop the timer. Converts freeform narration into correctly attributed time entries.
goalslot-plan-my-week
Plan a week on the GoalSlot schedule. Use when the user asks to plan their week, block time for a goal, rebalance their schedule, or says they are not making progress on something and wants time set aside for it. Reads which goals are behind pace and what last week actually looked like before proposing blocks.
goalslot-weekly-review
Run a GoalSlot weekly review. Use at the end of a week, or when the user asks how their week went, whether they are on track, what they got done, or wants help writing a reflection. Combines logged hours, goal pace, schedule adherence and the user's own journal and check-ins into one honest read.
sideshift-operations
Use when the user wants to inspect or operate a SideShift company, including UGC campaigns, creators, recruiting, applications, jobs, contracts, posts, analytics, messaging, invoices, payouts, wallet, settings, or other SideShift workflows through the installed MCP server.