🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Timesheet - Time Tracking

by @florianrauscha

Track time, manage projects and tasks using timesheet.io CLI

Versionv1.0.1
Downloads2,662
Stars⭐ 1
TERMINAL
clawhub install timesheet

πŸ“– About This Skill


name: timesheet description: Track time, manage projects and tasks using timesheet.io CLI user-invocable: true homepage: https://timesheet.io metadata: {"requires": {"bins": ["timesheet"]}}

Timesheet CLI Skill

Control timesheet.io time tracking from the command line. Use --json flag for all commands to get structured output.

Authentication

Check auth status before using other commands:

timesheet auth status --json

If not authenticated, guide the user to run:

timesheet auth login

Or for automation, set an API key:

export TIMESHEET_API_KEY=ts_your.apikey

Timer Operations

Start a Timer

# List projects first to get project ID
timesheet projects list --json

Start timer for a project

timesheet timer start

Check Timer Status

timesheet timer status --json

Returns: status (running/paused/stopped), project name, duration, start time.

Control Timer

timesheet timer pause
timesheet timer resume
timesheet timer stop  # Creates a task from the timer

Update Running Timer

timesheet timer update --description "Working on feature X"
timesheet timer update --billable

Project Management

List Projects

timesheet projects list --json

Create Project

timesheet projects create "Project Name" --json
timesheet projects create "Client Project" --billable --json

Show/Update/Delete

timesheet projects show  --json
timesheet projects update  --title "New Name"
timesheet projects delete 

Task Management

List Tasks

timesheet tasks list --json           # Recent tasks
timesheet tasks list --today --json   # Today's tasks
timesheet tasks list --this-week --json

Create Task Manually

timesheet tasks create -p  -s "2024-01-15 09:00" -e "2024-01-15 17:00" --json
timesheet tasks create -p  -s "09:00" -e "17:00" -d "Task description" --json

Update Task

timesheet tasks update  --description "Updated description"
timesheet tasks update  --billable
timesheet tasks update  --start "10:00" --end "12:00"

Delete Task

timesheet tasks delete 

Teams & Tags

Teams

timesheet teams list --json

Tags

timesheet tags list --json
timesheet tags create "Urgent" --color 1
timesheet tags delete 

Reports

Time Summary

timesheet reports summary --today --json
timesheet reports summary --this-week --json
timesheet reports summary --this-month --json
timesheet reports summary --from 2024-01-01 --to 2024-01-31 --json

Export Data

timesheet reports export -f xlsx -s 2024-01-01 -e 2024-01-31
timesheet reports export -f csv --this-month

Profile & Config

timesheet profile show --json
timesheet profile settings --json

timesheet config show timesheet config set defaultProjectId

Common Workflows

Log Time for Current Work

1. Check if timer is running: timesheet timer status --json 2. If not, start timer: timesheet timer start 3. When done, stop timer: timesheet timer stop

Quick Time Entry

# Create a completed task directly
timesheet tasks create -p  -s "09:00" -e "12:00" -d "Morning standup and dev work" --json

Find Project by Name

timesheet projects list --json | jq '.[] | select(.title | contains("ProjectName"))'

Error Handling

Exit codes:

  • 0: Success
  • 1: General error
  • 2: Usage error (invalid arguments)
  • 3: Authentication error - run timesheet auth login
  • 4: API error
  • 5: Rate limit exceeded - wait and retry
  • 6: Network error
  • Tips

  • Always use --json for parsing output programmatically
  • Use --quiet or -q to suppress non-essential output
  • Set defaultProjectId in config to skip project selection for timer
  • Pipe-friendly output is automatic when not in a terminal
  • πŸ“‹ Tips & Best Practices

  • Always use --json for parsing output programmatically
  • Use --quiet or -q to suppress non-essential output
  • Set defaultProjectId in config to skip project selection for timer
  • Pipe-friendly output is automatic when not in a terminal