A Claude Code plugin (and portable agentic skill) for controlling timesheet.io time tracking through the @timesheet/cli command-line tool. The skill gives any skills-aware agent (Claude Code, Clawdbot, or anything that loads SKILL.md files) structured knowledge of every CLI command, flag, and common workflow.
Install the CLI globally:
npm install -g @timesheet/cliAuthenticate once via OAuth:
timesheet auth loginOr set an API key for automation:
export TIMESHEET_API_KEY=ts_your.apikeyRecommended: install from the plugin marketplace.
/plugin marketplace add timesheetIO/timesheet-plugin
/plugin install timesheet@timesheet
This repository is a self-contained marketplace: .claude-plugin/marketplace.json lists a single plugin whose source is the repo root, so adding the marketplace and installing the plugin pulls in the skill directly.
Or install from the bundled CLI (no Git access required):
timesheet skill install # ~/.claude/skills/timesheet
timesheet skill install --project # ./.claude/skills/timesheet
timesheet skill install --force # overwrite if presentOr copy manually:
mkdir -p ~/.claude/skills
cp -r skills/timesheet ~/.claude/skills/After install, invoke with /timesheet or let the model pick it up from natural-language requests.
Workspace skills:
cp -r skills/timesheet <your-workspace>/skills/User skills:
cp -r skills/timesheet ~/.clawdbot/skills/Or, with the CLI installed: timesheet skill install --clawdbot.
Or register via extraDirs in ~/.clawdbot/clawdbot.json:
{
"skills": {
"load": {
"extraDirs": ["/path/to/this/skills"]
}
}
}Install into any supported agent (Claude Code, Codex, Cursor, OpenCode, and more) with the skills CLI:
npx skills add timesheetIO/timesheet-pluginAny tool that reads a single SKILL.md with YAML frontmatter can consume the skill. Point it at skills/timesheet/SKILL.md and the agent gets the full command reference.
/timesheet
- "Start a timer for project X"
- "What is my timer status?"
- "Show my tasks for today"
- "Create an expense of 42 EUR on task "
- "Approve the pending absence "
- "List my organizations and their members"
| Category | Commands |
|---|---|
| Auth | login, logout, status, apikey |
| Timer | start, stop, pause, resume, status, update |
| Tasks | list, show, create, update, delete |
| Projects | list, show, create, update, delete, members (list/add/update/remove) |
| Teams | list, members (list/add/update/remove/status) |
| Organizations | list, show, create, update, delete, members (list/show/add/update/remove) |
| Contracts | list, show, create, update, delete, activate, suspend, reactivate, terminate |
| Absences | list, show, create, update, delete, approve, reject, cancel |
| Absence types | list, show, create, update, delete |
| Todos | list, show, create, update, close, reopen, delete |
| Tags | list, show, create, update, delete |
| Notes | list, show, create, update, delete, file-url |
| Expenses | list, show, create, update, delete, refund, file-url |
| Pauses | list, show, create, update, delete |
| Rates | list, show, create, update, delete |
| Reports | summary, export |
| Profile | show, update, settings, settings-update |
| Config | show, set, reset |
timesheet-plugin/
├── .claude-plugin/
│ ├── marketplace.json # marketplace catalog (one plugin, source ".")
│ └── plugin.json # Claude Code plugin manifest
├── skills/
│ └── timesheet/
│ └── SKILL.md # YAML frontmatter + command reference
└── README.md
Configure environment per agent. Example for Clawdbot:
{
"skills": {
"entries": {
"timesheet": {
"enabled": true,
"env": {
"TIMESHEET_API_KEY": "ts_your.apikey"
}
}
}
}
}For Claude Code, export TIMESHEET_API_KEY in your shell profile or rely on timesheet auth login.
- timesheet.io
- @timesheet/cli on npm
- Claude Code skills docs
- Claude Code plugin marketplaces
- Clawdbot skills docs
MIT