Tgltrk
A collection of Skills for Claude Code
npx -y skills add dominion525/agent-skills --skill tgltrkAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
8.7 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
tgltrk CLI
Read / write CLI for Toggl Track. Single Rust binary, no runtime dependencies.
cargo install tgltrk
Operating 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 timer
timer 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_ID
tags — Tags
tgltrk tags list
tgltrk tags create "name"
workspaces — Workspaces (read-only)
tgltrk workspaces list
tgltrk workspaces get WORKSPACE_ID
This 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 clear
cache 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.