/install kimai-time-tracking
Kimai Time Tracking Skill
Complete API integration for Kimai time-tracking software. Enables full control over timesheets, projects, customers, activities, teams, invoices, and system configuration.
When to use
Activate this skill when the user requests:
- Start/stop/restart time tracking (timers)
- List, filter, or export timesheets
- Manage customers, projects, or activities
- Create invoices or export data
- Administrative tasks (users, teams, rates)
- Query system status (version, plugins, config)
Activation triggers:
- Keywords: "kimai", "zeiterfassung", "timesheet", "timer", "stunden", "erfasse Zeit", "starte Tracking", "Projekt anlegen", "Rechnung erstellen"
- "Start tracking for project X"
- "Show my timesheets from last week"
- "Create new customer in Kimai"
- "Export timesheets to CSV"
- "List all active timers"
- "Stop current time tracking"
Do NOT activate for:
- General time questions ("What time is it?")
- Other time-tracking tools (Toggl, Clockify, etc.)
- Calendar/scheduling without Kimai context
Environment Setup
Required Environment Variables:
KIMAI_BASE_URL- Full URL to Kimai instance (e.g.,https://kimai.example.com)KIMAI_API_TOKEN- Bearer token for authentication
Optional:
KIMAI_WORKSPACE- Path for exports/temp files (defaults to~/.openclaw/workspace/kimai)
API Permissions required depend on operation:
view_own_timesheet,create_own_timesheet,edit_own_timesheet,delete_own_timesheetview_other_timesheet(for viewing other users' entries)view_customer,edit_customer,delete_customerview_project,edit_project,delete_projectview_activity,edit_activity,delete_activityview_team,edit_team,create_team,delete_teamview_invoice(for invoice operations)view_user(for user management)
Compatibility: Requires Kimai 2.x with REST API enabled. Internet access required. Linux/macOS supported.
Workflow
1. Quick Time Tracking
# List recent activities (to find project/activity IDs)
./scripts/kimai_cli.py timesheets recent
# Start tracking
./scripts/kimai_cli.py timesheets start --project 1 --activity 5 --description "Implementing API"
# Check active timers
./scripts/kimai_cli.py timesheets active
# Stop tracking
./scripts/kimai_cli.py timesheets stop --id 123
2. Data Management Workflow
# Create customer → Project → Activity hierarchy
./scripts/kimai_cli.py customers create --name "Acme Corp" --country DE --currency EUR --timezone Europe/Berlin
./scripts/kimai_cli.py projects create --name "Website Redesign" --customer 1
./scripts/kimai_cli.py activities create --name "Development" --project 1
# List with filters
./scripts/kimai_cli.py timesheets list --customer 1 --begin "2024-01-01T00:00:00" --exported 0
3. Export/Invoice Workflow
# Mark timesheets as exported (locks them)
./scripts/kimai_cli.py timesheets export --id 123
# List invoices
./scripts/kimai_cli.py invoices list --status pending --begin 2024-01-01T00:00:00
CLI Tool Reference
Use scripts/kimai_cli.py for all operations. Structure follows API endpoints:
Timesheets (timesheets)
list- List entries (supports pagination, filters: user, customer, project, activity, tags, date range, exported status)get \x3Cid>- Fetch single entrycreate- Create manual entry or start timer (omit --end for active tracking)update \x3Cid>- Patch existing entrydelete \x3Cid>- Requires confirmation (destructive)stop \x3Cid>- Stop active timerrestart \x3Cid>- Restart finished entry (creates new)duplicate \x3Cid>- Copy entry (resets export status)active- List currently running timersrecent- Recent unique working sets (last activity per project/activity combination)export \x3Cid>- Toggle export/lock status
Customers (customers)
list- List customers (filter: visible, term)get \x3Cid>- Fetch customer detailscreate- Create new customerupdate \x3Cid>- Update customerdelete \x3Cid>- Requires confirmation (cascades to projects/activities/timesheets)meta \x3Cid>- Update custom fieldsrates \x3Cid>- Manage customer-specific rates
Projects (projects)
list- List projects (filter: customer, visible, date range)get \x3Cid>- Fetch projectcreate- Create project (requires customer ID)update \x3Cid>- Update projectdelete \x3Cid>- Requires confirmation (cascades to activities/timesheets)rates \x3Cid>- Manage project rates
Activities (activities)
list- List activities (filter: project, visible, global only)get \x3Cid>- Fetch activitycreate- Create activity (can be global or project-specific)update \x3Cid>- Update activitydelete \x3Cid>- Requires confirmation (cascades to timesheets)rates \x3Cid>- Manage activity rates
Teams (teams)
list,get,create,update,deletemember-add \x3Cteam-id> \x3Cuser-id>- Add team membermember-remove \x3Cteam-id> \x3Cuser-id>- Remove membergrant-customer \x3Cteam-id> \x3Ccustomer-id>- Grant customer accessgrant-project \x3Cteam-id> \x3Cproject-id>- Grant project accessgrant-activity \x3Cteam-id> \x3Cactivity-id>- Grant activity access
Users (users)
list- List users (requires view_user permission)me- Current user infoget \x3Cid>- User detailscreate- Create user (admin)update \x3Cid>- Update user
Invoices (invoices)
list- List invoices (filter: date range, customer, status)get \x3Cid>- Invoice details
System (system)
ping- Test connectivityversion- Kimai version infoplugins- Installed pluginsconfig- Timesheet configurationcolors- Color codes
Safety & Boundaries
⚠️ DESTRUCTIVE OPERATIONS
deleteoperations on customers, projects, activities, timesheets, teams, or tags require explicit user confirmation.- Deleting customers cascades to all linked projects, activities, and timesheets [1].
- Deleting projects cascades to activities and timesheets [1].
- The CLI will show a preview of affected data and require "yes" confirmation.
API Security:
- API token is passed via
Authorization: Bearerheader [1]. - Token is never logged or stored in CLI output.
- Use
--dry-runflag for testing (simulates API calls without executing).
Rate Limiting & Pagination:
- API returns paginated results (default 50 items) [1].
- CLI auto-handles pagination for
listcommands (fetches all pages or respects--limit). - Use
--pageand--sizefor manual pagination control.
Data Privacy:
- Timesheet data may contain sensitive information.
- Export files are saved to workspace with restricted permissions (600).
- Redact personal data (emails, names) when sharing debug output.
Workspace Safety:
- All file exports (CSV, JSON) default to
KIMAI_WORKSPACEor~/.openclaw/workspace/kimai. - Never write to system directories outside workspace without explicit confirmation.
Input/Output Specifications
Inputs:
- Entity IDs (integers)
- ISO 8601 datetime strings (YYYY-MM-DDTHH:mm:ss)
- JSON data for create/update operations (via --json file or CLI args)
- Filter parameters (customer, project, activity IDs, date ranges, visibility)
Outputs:
- JSON (default, pipe-friendly)
- Table format (
--format tablefor human readability) - CSV (
--format csvfor exports) - Exit codes: 0 (success), 1 (API error), 2 (validation error), 3 (cancelled by user)
Success Criteria:
- HTTP 200/201 for successful operations
- Valid JSON response structure matching API schemas [1]
- For exports: File created in workspace with expected record count
Examples
Start tracking with description
./scripts/kimai_cli.py timesheets create \
--project 5 \
--activity 12 \
--description "Client meeting - requirements analysis" \
--tags "meeting,urgent"
List and export non-exported hours
# Find billable hours not yet exported
./scripts/kimai_cli.py timesheets list \
--exported 0 \
--billable 1 \
--begin "2024-01-01T00:00:00" \
--end "2024-01-31T23:59:59" \
--format csv > january_hours.csv
Update custom fields (meta)
./scripts/kimai_cli.py customers meta 42 \
--name "order_number" \
--value "PO-2024-001"
Create team and assign resources
./scripts/kimai_cli.py teams create --name "Development Team" --members '[{"user": 1, "teamlead": true}]'
./scripts/kimai_cli.py teams grant-project 1 5
Error Handling
Common HTTP codes:
200- Success201- Created204- No content (successful delete)400- Bad request (validation error, missing fields)401- Unauthorized (invalid/expired token)403- Forbidden (insufficient permissions)404- Not found (invalid ID)409- Conflict (overlapping timesheet if not allowed by config)
CLI behavior:
- Validates required fields before API call (e.g., project+activity for timesheets [1])
- Pretty-prints validation errors from API
- Suggests fixes (e.g., "Did you mean to use 'PATCH' instead of DELETE? Try setting visible=false to hide instead of delete")
Validation
Validate this skill using the Openclaw skills validator:
skills-ref validate ./kimai-time-tracking
Test API connectivity:
export KIMAI_BASE_URL="https://your-kimai.example.com"
export KIMAI_API_TOKEN="your-api-token"
./kimai-time-tracking/scripts/kimai_cli.py system ping
References
- Kimai REST API Docs: https://www.kimai.org/documentation/rest-api.html
- Pagination Guide: https://www.kimai.org/documentation/api-pagination.html
- API Spec:
references/api-reference.json(complete OpenAPI schema)
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install kimai-time-tracking - 安装完成后,直接呼叫该 Skill 的名称或使用
/kimai-time-tracking触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Kimai Time Tracking 是什么?
Complete Kimai time-tracking API integration. Manage timesheets, customers, projects, activities, teams, invoices and exports via REST API. Supports time tracking workflows, reporting, and administrative operations. Keywords - kimai, zeiterfassung, timesheet, tracking, project, customer, activity, invoice, export, timer, stunden. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 1026 次。
如何安装 Kimai Time Tracking?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install kimai-time-tracking」即可一键安装,无需额外配置。
Kimai Time Tracking 是免费的吗?
是的,Kimai Time Tracking 完全免费(开源免费),可自由下载、安装和使用。
Kimai Time Tracking 支持哪些平台?
Kimai Time Tracking 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Kimai Time Tracking?
由 TFM(@0x7466)开发并维护,当前版本 v1.0.0。