# WakaTime

WakaTime offers automatic time tracking for developers, integrating with code editors and delivering dashboards on coding activity, project progress, and productivity

- **Category:** time tracking software
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 17
- **Triggers:** 0
- **Slug:** `WAKATIME`
- **Version:** 20260312_00

## Tools

### Get Aggregate Stats

**Slug:** `WAKATIME_GET_AGGREGATE_STATS`

Tool to retrieve aggregate coding statistics across all WakaTime users for a given time range. Use when analyzing global trends in programming languages, editors, operating systems, and categories.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `range` | string | Yes | Time range for aggregate stats; either 'last_7_days' or a specific year (e.g., '2023') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get current user's status bar summary for today

**Slug:** `WAKATIME_GET_CURRENT_USER_STATUS_BAR_TODAY`

Tool to get current user's coding activity today for displaying in IDE status bars. Use when you need a summary of today's coding time broken down by projects, languages, editors, etc.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project` | string | No | Filter results to a specific project by name. When provided, includes branches and entities fields in response. |
| `timeout` | integer | No | Keystroke timeout value in minutes; overrides user's default setting. Determines how long between keystrokes before activity is considered a different session. |
| `branches` | string | No | Comma-separated list of branch names to include in results. Filters activity to only these branches. |
| `timezone` | string | No | Timezone for the requested day in Olson format (e.g., 'America/Los_Angeles'). Defaults to user's timezone setting. |
| `writes_only` | boolean | No | When true, only counts file write events (not just cursor movement). Defaults to user's preference setting. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List IDE Plugins

**Slug:** `WAKATIME_GET_EDITORS`

Tool to list WakaTime IDE plugins with metadata. Use when you want to discover available IDE integrations and their latest versions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `unreleased` | boolean | No | Include unreleased IDE plugins in the returned list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Goals

**Slug:** `WAKATIME_GET_GOALS`

Tool to list a user's goals with progress series and metadata. Use after authenticating the user with read_goals scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | No | User identifier; use 'current' for the authenticated user or specify a user ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Insight

**Slug:** `WAKATIME_GET_INSIGHTS`

Tool to retrieve an insight for a user over a time range. Use when analyzing user coding metrics after authentication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | Yes | User identifier path segment; use 'current' for the authenticated user or specify a user ID |
| `range` | string | Yes | Time range for the insight; either a year (YYYY), a month (YYYY-MM), or one of: last_7_days, last_30_days, last_6_months, last_year, all_time |
| `timeout` | integer | No | Keystroke timeout in seconds for stats; defaults to the user's setting |
| `weekday` | string | No | Filter to a specific weekday; only applied when insight_type is 'days'; Accepts 0–6 or weekday name |
| `writes_only` | boolean | No | Whether to include only write events in stats; defaults to the user's setting |
| `insight_type` | string ("weekday" | "days" | "best_day" | "daily_average" | "projects" | "languages" | "editors" | "categories" | "machines" | "operating_systems") | Yes | Type of insight to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Leaders

**Slug:** `WAKATIME_GET_LEADERS`

Tool to list public leaders ranked by coding activity. Use when viewing top coders globally or filtering by language, country code, or hireable status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to fetch; authenticated calls default to page containing current user |
| `language` | string | No | Filter leaders by a specific language (e.g., 'python') |
| `is_hireable` | boolean | No | Filter leaders by hireable badge |
| `country_code` | string | No | Filter leaders by a two-letter country code (e.g., 'US') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Machine Names

**Slug:** `WAKATIME_GET_MACHINE_NAMES`

Tool to list a user's machines including last seen time. Use when needing machine names for a specific user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | No | User identifier. Defaults to 'current' for the authenticated user. Can also be a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get API Meta Information

**Slug:** `WAKATIME_GET_META`

Tool to retrieve WakaTime API meta information, including public IP addresses used by WakaTime servers. Use when you need to know WakaTime's infrastructure details for network configuration or security purposes.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate WakaTime OAuth authorize URL

**Slug:** `WAKATIME_GET_OAUTH_AUTHORIZE`

Tool to generate OAuth 2.0 authorization URL. Use when redirecting users to WakaTime to grant access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `scope` | string | No | Space- or comma-separated list of scopes to request (e.g., 'read_stats write_data'). |
| `state` | string | No | Opaque value to maintain state between request and callback; returned unchanged. |
| `client_id` | string | Yes | Your WakaTime App ID (found at wakatime.com/apps). |
| `redirect_uri` | string | Yes | Redirect URI registered in your WakaTime app settings. |
| `force_approve` | string | No | If provided, forces the user to re-approve (behavior may vary). |
| `response_type` | string ("code" | "token") | Yes | Must be "code" for authorization-code flow or "token" for implicit flow. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Details

**Slug:** `WAKATIME_GET_USER`

Tool to get detailed profile information for a WakaTime user by user ID or username. Use 'current' as the user parameter to get the authenticated user's details. Returns comprehensive profile data including display name, email, timezone, plan, and privacy settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | Yes | User ID, username, or 'current' for the authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User's Total Time Since Creation

**Slug:** `WAKATIME_GET_USERS_ALL_TIME_SINCE_TODAY`

Tool to retrieve total coding time since account creation for a user. Use after authenticating to fetch all-time stats.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | Yes | User path segment. Use 'current' for the authenticated user. |
| `project` | string | No | Optional project name to filter totals |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Stats

**Slug:** `WAKATIME_GET_USER_STATS`

Tool to retrieve coding statistics for a user over the default time range. Returns comprehensive metrics including languages, editors, projects, and daily averages. Use when analyzing a user's coding patterns and productivity metrics.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | Yes | User identifier; use 'current' for the authenticated user or specify a user ID. |
| `timeout` | integer | No | Override the user's keystroke timeout setting (in minutes). If not specified, uses the user's preference. |
| `writes_only` | boolean | No | Override the user's writes_only setting. When true, only track writing activity; when false, track all activity. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Stats by Range

**Slug:** `WAKATIME_GET_USER_STATS_BY_RANGE`

Tool to retrieve comprehensive coding statistics for a user over a specific time range. Returns breakdowns by language, editor, project, OS, and more, along with daily averages and best day. Use when analyzing productivity patterns or generating coding activity reports for time periods.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | Yes | User identifier; use 'current' for the authenticated user or specify a user ID |
| `range` | string | Yes | Time range for stats; accepts 'last_7_days', 'last_30_days', 'last_6_months', 'last_year', 'all_time', a specific year (YYYY), or a specific month (YYYY-MM) |
| `timeout` | integer | No | Override the user's keystroke timeout setting (in minutes); defaults to user's preference |
| `writes_only` | boolean | No | Override the user's writes_only setting; if true, only track write operations |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Summaries

**Slug:** `WAKATIME_GET_USER_SUMMARIES`

Get user's coding activity for a time range as daily summaries. Returns detailed breakdowns by projects, languages, editors, and more for each day. Use when you need to analyze coding patterns, track project time, or generate activity reports over a date range. Requires 'read_summaries' scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | No | End date of the time range in YYYY-MM-DD format. Required if 'range' parameter is not provided. |
| `user` | string | Yes | User ID or 'current' for the authenticated user. |
| `range` | string ("Today" | "Yesterday" | "Last 7 Days" | "Last 7 Days from Yesterday" | "Last 14 Days" | "Last 30 Days" | "This Week" | "Last Week" | "This Month" | "Last Month") | No | Predefined date range options for summaries. |
| `start` | string | No | Start date of the time range in YYYY-MM-DD format. Required if 'range' parameter is not provided. |
| `project` | string | No | Filter results by specific project name. |
| `timeout` | integer | No | Override the user's keystroke timeout setting in minutes. Controls how long between keystrokes before ending a coding session. |
| `branches` | string | No | Filter by comma-separated list of branch names. |
| `timezone` | string | No | Override the user's timezone in Olson format (e.g., 'America/Los_Angeles', 'Europe/London'). Affects how days are segmented. |
| `writes_only` | boolean | No | Override the user's writes_only setting. If true, only count time when files are modified, not just viewed. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Program Languages

**Slug:** `WAKATIME_LIST_PROGRAM_LANGUAGES`

Tool to list all verified program languages supported by WakaTime. Use when you need to discover available programming languages tracked by WakaTime.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-indexed). Defaults to 1 if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List User Projects

**Slug:** `WAKATIME_LIST_USER_PROJECTS`

List WakaTime projects for a specified user. Returns project names, IDs, creation dates, and last activity times. Use to discover available projects for any user before querying project-specific stats.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | No | Filter project names by search term. Case-insensitive partial match. |
| `page` | integer | No | Page number for paginated results. Defaults to 1 if not specified. |
| `user` | string | Yes | User ID or 'current' for the authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List User Agents

**Slug:** `WAKATIME_LIST_USER_USER_AGENTS`

Tool to list plugins and editors which have sent data for a specified user. Use when needing to discover which development environments and tools a user is actively using.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | No | User identifier. Defaults to 'current' for the authenticated user. Can also be a specific user ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
