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 dustinestes/clockify-agent-plugin --skill clockify-start-timergit 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-start-timer)<a href="https://agentmods.dev/skills/dustinestes/clockify-agent-plugin/clockify-start-timer"><img src="https://agentmods.dev/badge/skills/dustinestes/clockify-agent-plugin/clockify-start-timer/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/dustinestes/clockify-agent-plugin/clockify-start-timer"><img src="https://agentmods.dev/badge/skills/dustinestes/clockify-agent-plugin/clockify-start-timer.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00062 | $0.00965 |
| Opus 5.5 | $0.00025 | $0.00386 |
| Sonnet 5.5 | $0.00012 | $0.00193 |
| Haiku 4.5 | $0.00006 | $0.00097 |
Grade A, and why
clockify-start-timer 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 1mo 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.
How it starts
The opening of the file, as written. The whole thing — 44 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Clockify start timer
Interactive Timer method (entry_method: timer). Agent-mediated starts belong to clockify-automate (that path passes entry_method: automated).
Config-aware behavior
- If
config_rootis already known this session and still this repo, reuse it. Otherwise resolve once withgit rev-parse --show-toplevelfrom the working directory (open tabs are not required; multi-root: focused path only as a tie-breaker; non-git: Cursor window folder). Re-resolve when the folder or focused root changes. Pass that string on Clockify MCP calls — do not run git before every tool. clockify_get_configwithconfig_root. Iffound, honorentry.timer.description,entry.timer.task,entry.timer.rounding/include_seconds(the start tool applies them), andentry.timer.overlap.- Never invent project/task ids —
clockify_list_projects/clockify_ensure_project/clockify_ensure_taskfirst (all withconfig_root). - Description: if
entry.timer.description.fromisprompt, ask or use what they said. Iftemplate, passissue_number/issue_title/labeland omitdescriptionso the template applies. Default template{issue_number} - {issue_title}→#N - title. Do not put a literal#before{issue_number}.
Workflow
clockify_get_running_timerwithconfig_root.- Same work already running (same issue / same description): report it. Do not stop or start again.
- Anything else running (including runaway
pastCeiling): do not stop yet. Show description, project, duration (and runaway ceiling if past). Ask whether to stop it and start the new one. Only stop-then-start after they confirm. If they decline, leave the running timer. If they stop and it was past ceiling, AskQuestion cap (runaway_stop: true) vs stop at now before callingclockify_stop_timer. - Nothing running: continue.
- Resolve project: user name, config
local_foldername, or list/ensure. - Resolve task from
entry.timer.task.from— never block the start waiting on a task. A missing task is fine; a missing time entry is not. They can assign a task later in Clockify.none— no task.prompt— use a task only if they already named one in this request; otherwise start with notask_id. Do not AskQuestion for a task name.template— expand the task template (e.g.{label});ensure_taskwhenif_missingiscreateand the resolved name is known. Empty{label}or unresolved → start with no task (treatif_missing: promptas skip, not ask).local_folder— use local folder name fromclockify_get_config.ensure_taskwhenif_missingiscreate; if ensure cannot run, start without a task rather than waiting.fixed— usetask.name;ensure_taskwhenif_missingiscreate. If the name is missing, start without a task.
clockify_start_timerwithconfig_root,entry_method: timer,project_id, optionaltask_id, description or issue fields /label, and optionalstart(ISO) if they asked to backdate.- If the tool returns
overlap: true, show the clash. Retry withconfirm_overlap: trueonly if they agree (orentry.timer.overlap.on_conflictisoverride).
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.
- 1mo ago Changed · +1 lines da582bcf3192
- 2mo ago Changed f8254f259f77
- 2mo ago First seen · 43 lines · 62 tokens per session scan A 731bd08395d7
clockify-start-timer is a skill published in the GitHub repository dustinestes/clockify-agent-plugin (0 stars, last pushed 1mo ago), licensed MIT. It adds 62 tokens to every session and 965 once invoked, about $0.0002 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-08-31.
Other skills, from other repositories
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.
email-formatting
Markdown formatting conventions for email summary documents — heading depth, list style, line length, emoji policy, and a mandatory provenance footer. Read this when producing a markdown report that summarizes one or more email messages so the output matches the project's house style.
json-schema-emails
Canonical shape of the .workflow/emails/emails.json file passed between the fetch and summarize states — required fields (sender, recipient, subject, date, body), types, and field semantics. Read this whenever you write or read emails.json so producer and consumer agree on the shape.
compact-now
Operator-triggered proactive compaction — Chrono externalizes load-bearing state (active decisions, open tasks, next action) to a snapshot + a durable Vault learning note before invoking Claude Code's native /compact, then resumes from the snapshot. Use when the operator says "/compact-now" / "compact now" or when…