tgltrk
Skill0 starsChanged 5 months agoMITView on GitHub
Operates Toggl Track time tracking from the CLI. Starts and stops timers, lists / creates / edits / deletes time entries, and manages projects, clients, and tags. Use when the user mentions Toggl Track, time tracking, timers, or work logging.
- Installs packages
In this repository4 other files it gives its agents.
- gooseSkill
- gsearchSkill
- jetdb-cliSkill
- loki-activitySkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Read / write CLI for Toggl Track.
- Very specific: line 25
Authentication: run tgltrk auth login once (interactive token entry), or set the env var TOGGL_API_TOKEN.
≈ “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
tgltrk CLI
Read / write CLI for Toggl Track. Single Rust binary, no runtime dependencies.
cargo install tgltrkOperating Rules
tgltrk [--json] [--workspace <ID>] <COMMAND> [OPTIONS]- Authentication: run
tgltrk auth loginonce (interactive token entry), or set the env varTOGGL_API_TOKEN. The env var takes precedence over the stored token. - Project / client / tag identifiers are numeric IDs.
-p / --projecttakes a PROJECT_ID, not a project name — resolve names withtgltrk projects listfirst. - Time inputs (
--start,--stop) accept RFC 3339 UTC (e.g.2026-06-21T09:00:00Z) or local time (YYYY-MM-DD[T]HH:MM[:SS]). Local values are interpreted in the host timezone and fail on DST-ambiguous moments. - Duration (
--duration) acceptsh/m/sform (1h30m,90m,45s) or a plain seconds integer (5400). Must be positive. - Workspace:
--workspace <ID>overrides the default workspace for project / client / tag mutations and fortimer start/entries create. Forentries edit/entries delete, it overrides when provided and falls back to the target entry's own workspace otherwise. It is ignored byentries list,timer current,entries continue(always uses the original entry's workspace), andcache. - Exit codes: success → 0; runtime errors (missing auth, API error, invalid date) → 1 with stderr
Error: ...; CLI argument errors (unknown flag, missing required value) → 2 with stderrerror: .... - List-style commands with no data print empty stdout and exit 0.
--jsonemits an{meta, data}envelope; plain text is more token-efficient for simple checks.
Quick Reference
| Purpose | Command |
| Check current timer | tgltrk timer current |
| Start timer | tgltrk timer start -d "desc" -p PROJECT_ID |
| Stop timer | tgltrk timer stop |
| List entries | tgltrk entries list -n 10 |
| Filter by date | tgltrk entries list --since YYYY-MM-DD --until YYYY-MM-DD |
| Create past entry | tgltrk entries create --start <ISO8601> --stop <ISO8601> -d "desc" |
| Create with duration | tgltrk entries create --start <ISO8601> --duration "1h30m" -d "desc" |
| Continue entry | tgltrk entries continue ENTRY_ID |
| Edit entry | tgltrk entries edit ENTRY_ID -d "new desc" |
| Edit entry time | tgltrk entries edit ENTRY_ID --start <ISO8601> --stop <ISO8601> |
| Delete entry | tgltrk entries delete ENTRY_ID |
| List projects | tgltrk projects list (shows client name in brackets) |
| Create project | tgltrk projects create "name" [--client CLIENT_ID] |
| Update project | tgltrk projects update ID [--name "..."] [--client CLIENT_ID] |
| List clients | tgltrk clients list |
| Get client | tgltrk clients get CLIENT_ID |
| Create client | tgltrk clients create "name" |
| Update client | tgltrk clients update CLIENT_ID --name "new name" |
| Delete client | tgltrk clients delete CLIENT_ID |
| List tags | tgltrk tags list |
| Create tag | tgltrk tags create "name" |
| List workspaces | tgltrk workspaces list |
| Get workspace | tgltrk workspaces get WORKSPACE_ID |
| Cache status | tgltrk cache status |
| Clear cache | tgltrk cache clear |
Full options for each command are available via tgltrk <command> --help. Detailed semantics and edge cases are described per-command below.
Commands
timer — Running timer
tgltrk timer start # Start an empty timer (no description / project)
tgltrk timer start -d "description" # With description only
tgltrk timer start -d "description" -p PROJECT_ID -t tag1,tag2
tgltrk timer stop # Stops the running timer
tgltrk timer current # Shows the running timertimer startaccepts no arguments — Toggl creates an unassigned running timer; fill in fields later withentries edit.-b / --billableis a value-less boolean flag here (presence = true).timer stopwith no running timer → runtime error (exit 1).timer currentwith no running timer → exit 0, printsNo running timer(ordata: nullwith--json); not an error.
entries — Time entries
tgltrk entries list -n 10 # Recent N entries
tgltrk entries list --since YYYY-MM-DD --until YYYY-MM-DD # Date range
tgltrk entries continue ENTRY_ID # Start a new timer cloning the entry
tgltrk entries create --start <ISO8601> --stop <ISO8601> -d "description" -p PROJECT_ID # Past entry
tgltrk entries create --start <ISO8601> --duration "1h30m" -d "description" # By duration
tgltrk entries edit ENTRY_ID [-d "..."] [-p PROJECT_ID] [-t tag1,tag2] [-b true|false] [--start ...] [--stop ...] [--duration ...]
tgltrk entries delete ENTRY_ID-nis short for--count <N>.entries createrequires--startplus exactly one of--stopor--duration. Specifying both,--stop ≤ --start, or a non-positive duration is an error.entries edit:--stopand--durationare mutually exclusive.-b / --billablerequirestrueorfalsehere (different fromtimer start/entries createwhere it is a value-less flag). Only specified fields are updated.entries continueclones description, project, tags, task, and billable, and starts in the original entry's workspace;--workspacedoes not override this.
projects — Projects
tgltrk projects list # Shows client name in brackets
tgltrk projects create "name" [--client CLIENT_ID]
tgltrk projects update ID [--name "..."] [--client CLIENT_ID]clients — Clients
tgltrk clients list
tgltrk clients get CLIENT_ID
tgltrk clients create "name"
tgltrk clients update CLIENT_ID --name "new name"
tgltrk clients delete CLIENT_IDtags — Tags
tgltrk tags list
tgltrk tags create "name"workspaces — Workspaces (read-only)
tgltrk workspaces list
tgltrk workspaces get WORKSPACE_IDThis CLI cannot create or modify workspaces; --workspace only selects which workspace a command targets.
cache — Local cache
tgltrk cache status # Show cache directory, keys, sizes, modification times
tgltrk cache clearcache commands do not require authentication.
JSON Output
{
"meta": { "cached": ["projects"] },
"data": { ... }
}meta.cachedlists entities returned from the local cache for this call. An empty array means no cache hit (data was fetched from the API), not that everything was cached.datais the command result. It isnullfor delete operations, and also fortimer currentwhen no timer is running.
Cache Behavior
- User info, projects, clients, tags, and workspaces are cached locally for 72 hours to reduce API calls and stay within Toggl rate limits.
- Automatically invalidated on relevant entity create / update / delete.
- Cleared entirely on every successful
auth login(not only on account switch). - Manual clear:
tgltrk cache clear.
Limitations
- Workspaces are read-only via this CLI (
--workspaceonly selects). - Reporting endpoints (Summary, Detailed, Weekly) are not supported.
- Bulk operations (e.g. batch delete) are not supported.
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.

