clockify
Skill2 starsChanged 6 months agoMITView on GitHub
Manage Clockify timers, time entries, and tags, and summarize a user's tracked time. Use when Clockify is named or established as the time-tracking service. Excludes general timers and unrelated reporting.
- Reads credentials
1 other project uses a version of this.
Adopted by
Most recently taken up by
- bmsuisse/skillstheir own version, first seen Nov 6, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- bmsuisse/skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- skills/humanizer/AGENTS.mdAGENTS.md
- azure-boardsSkill
- azure-ticket-draftingSkill
- costSkill
- humanizerSkill
- meeting-momSkill
- quickSkill
- ship-workSkill
- ui-ux-pro-maxSkill
- video-to-transcriptSkill
- workSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 8 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Use the bundled scripts/clockify_api.py with Python 3.10+.
- Distinctive: line 20
Keep the API key in the environment.
- Distinctive: line 21
If absent, ask the user to configure it locally.
- Distinctive: line 33
Read applicable AGENTS.md files for workspace IDs, project IDs or name mappings, and local time-entry conventions.
- Very specific: line 36
If the workspace is unknown, use a read-only GET /workspaces request.
- Very specific: line 39
If the user gives a project name, use a matching mapping from applicable AGENTS.md, or fetch GET /workspaces/{workspaceId}/projects from …
- Distinctive: line 41
Follow pagination through all results needed to establish a unique exact name match.
- Very specific: line 43
Verify a configured project ID with GET /workspaces/{workspaceId}/projects/{projectId} before its first use in a task.
- Distinctive: line 46
If no exact match exists or several projects match, show the relevant choices and ask.
- Distinctive: line 81
Never present a single requested page as a complete total or workspace snapshot.
- Distinctive: line 82
Use the user's requested description and tags, or conventions explicitly defined in applicable AGENTS.md.
- Distinctive: line 89
Read the running timer before starting one.
- Very specific: line 117
Run offline regression checks with Python 3.10+: python3 <skill-directory>/scripts/test_clockify_api.py.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Clockify
Execution and configuration
Use the bundled scripts/clockify_api.py with Python 3.10+. Resolve its absolute
path relative to this loaded SKILL.md, regardless of which agent installed it.
In the examples below, $CLOCKIFY_HELPER means that resolved script path.
- Required for API access:
CLOCKIFY_API_KEY. The helper also needs a workspace ID, supplied throughCLOCKIFY_WORKSPACE_IDor--workspace-idafter resolution. - Optional:
CLOCKIFY_USER_ID,CLOCKIFY_PROJECT_ID. - Keep the API key in the environment. Never print it or request it in chat. If absent, ask the user to configure it locally.
- The agent may read IDs from applicable
AGENTS.md; the helper does not parse that file. Pass discovered values as--workspace-id/--user-id/--project-id-defaultbefore the subcommand, or set their environment variables. - Explicit user selection takes precedence over defaults in applicable
AGENTS.md, then environment defaults. Ask only when the required selection remains ambiguous. - Without a user ID, user-entry reads discover the API-key owner. Start and stop validate that a configured user is the owner before changing their timer. Starting/stopping another user's timer is unsupported.
Resolve workspace and project
- Read applicable
AGENTS.mdfiles for workspace IDs, project IDs or name mappings, and local time-entry conventions. Keep those details in the user's configuration; never embed personal IDs or conventions in this reusable skill. - If the workspace is unknown, use a read-only
GET /workspacesrequest. Match the workspace the user named, or use the only available workspace. Ask if several remain possible; do not silently choose one. - If the user gives a project name, use a matching mapping from applicable
AGENTS.md, or fetchGET /workspaces/{workspaceId}/projectsfrom Clockify. Follow pagination through all results needed to establish a unique exact name match. Resolve the name within the selected workspace, not across workspaces. - Verify a configured project ID with
GET /workspaces/{workspaceId}/projects/{projectId}before its first use in a task. Reject archived projects for new timers. Reuse verified IDs for the rest of the task. - If no exact match exists or several projects match, show the relevant choices and ask. Never invent an ID, choose a fuzzy match silently, or create a project merely to resolve a name.
- These discovery endpoints are not helper subcommands. Use scoped read-only API requests with the API key from the environment, then pass the resolved IDs to the helper. Do not print credentials.
- A project is optional unless the user or workspace requires one. Use a resolved default when available; ask only if a required project is unresolved.
Commands
python3 "$CLOCKIFY_HELPER" start --description "Work description" --project-id "<id>"
python3 "$CLOCKIFY_HELPER" stop
python3 "$CLOCKIFY_HELPER" list --start "2026-04-01T00:00:00Z" --end "2026-04-02T00:00:00Z"
python3 "$CLOCKIFY_HELPER" list --in-progress true
python3 "$CLOCKIFY_HELPER" get --id "<entry-id>"
python3 "$CLOCKIFY_HELPER" update --id "<entry-id>" --description "Updated description"
python3 "$CLOCKIFY_HELPER" update --id "<entry-id>" --clear-tags
python3 "$CLOCKIFY_HELPER" list-tags --name "<tag-name>"
python3 "$CLOCKIFY_HELPER" create-tag --name "<tag-name>"
python3 "$CLOCKIFY_HELPER" delete --id "<entry-id>"
python3 "$CLOCKIFY_HELPER" in-progressstartandupdateaccept--project-id,--billable true|false, repeatable--tagnames and--tag-idIDs. Creating missing tags with--create-missing-tags truerequires that tag creation be within the user request.updatereads the existing entry and preserves unspecified supported fields, including start/end, project, task, billable state, tags, and entry type. Supplied tags replace the tag list;--clear-tagsexplicitly empties it.--description ""clears the description.--startand--endchange times. Reopening a completed entry and clearing its project are not supported.list,list-tags, andin-progressfetch every page by default.--page Nrequests only that page;--page-size Ncontrols batch size. Never present a single requested page as a complete total or workspace snapshot.- Use the user's requested description and tags, or conventions explicitly defined
in applicable
AGENTS.md. Do not impose a ticket format or default tag.
Workflow and verification
- Resolve the requested workspace, project, date range, and user. Use explicit user choices before defaults. Do not guess IDs or silently switch workspaces.
- Read the running timer before starting one. If one exists, report it and resolve whether the user wants to stop/switch it; a start request alone does not authorize stopping unrelated work. Fetch a deletion target and verify its identity first.
- Make only requested changes. After a successful start, stop, or update, re-read
the returned entry ID with
getand check the requested fields. After deletion, verify the target is absent, distinguishing not-found from permission/network errors. - Report affected IDs and verified results concisely. If verification fails, say the write may have succeeded. Never retry an uncertain write automatically.
Reporting and limits
- Reporting covers one user's entries and local duration aggregation. Team-wide analytics and the dedicated Reports API are not implemented.
- Resolve the user's IANA timezone from explicit input, applicable
AGENTS.md, or their Clockify profile; ask if unknown. Convert with Pythonzoneinfousing the date's offset rather than assuming whole hours. Send timezone-aware ISO timestamps. State timezone and date window in results. - Define whether running entries are excluded or counted through a stated as-of time. For time overlapping the window, clip durations to that window and verify that retrieval includes boundary-crossing entries before claiming a full total.
- The helper uses Clockify's default global API endpoint. Regional workspaces and creation requiring custom fields are unsupported. Updates with existing custom fields are refused rather than risking data loss. Do not silently omit required data.
- API/transport failures produce a JSON error and nonzero status; CLI syntax errors use argparse's normal error output. Requests time out after 30 seconds, without retries.
- For unsupported discovery or operations, consult Clockify API docs and use a scoped read-only API call when needed. Do not improvise unsupported writes.
Run offline regression checks with Python 3.10+:
python3 <skill-directory>/scripts/test_clockify_api.py.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

