@togglhq/cli 1.5.26 → 1.5.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -15
- package/build/cli.js +1 -1
- package/build/index.js +1 -1
- package/build/{program-B03iyxXV.js → program-CwW_34U6.js} +8242 -8985
- package/build/program.js +1 -1
- package/package.json +5 -3
- package/skills/toggl-cli/reference/auth-environments-workspaces.md +1 -1
- package/skills/toggl-cli/reference/command-contract.md +14 -14
- package/skills/toggl-cli/reference/projects.md +2 -2
- package/skills/toggl-cli/reference/tasks.md +2 -2
- package/skills/toggl-cli/reference/troubleshooting.md +1 -1
- package/skills/toggl-cli/workflows/common-workflows.md +1 -1
- package/skills/toggl-cli/INTERNAL.md +0 -62
package/build/program.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createProgram } from "./program-
|
|
1
|
+
import { t as createProgram } from "./program-CwW_34U6.js";
|
|
2
2
|
export { createProgram };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@togglhq/cli",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.28",
|
|
4
4
|
"description": "Toggl CLI for Toggl 2.0 API operations.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
@@ -26,7 +26,9 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"build/**/*.js",
|
|
28
28
|
"build/**/*.d.ts",
|
|
29
|
-
"skills
|
|
29
|
+
"skills/*/SKILL.md",
|
|
30
|
+
"skills/*/reference/**",
|
|
31
|
+
"skills/*/workflows/**",
|
|
30
32
|
"README.md",
|
|
31
33
|
"LICENSE"
|
|
32
34
|
],
|
|
@@ -57,6 +59,6 @@
|
|
|
57
59
|
"@types/node": "22.19.11",
|
|
58
60
|
"tsdown": "0.21.8",
|
|
59
61
|
"typescript": "5.9.3",
|
|
60
|
-
"vitest": "3.2.
|
|
62
|
+
"vitest": "3.2.7"
|
|
61
63
|
}
|
|
62
64
|
}
|
|
@@ -31,7 +31,7 @@ If the account has multiple workspaces, pass the workspace explicitly:
|
|
|
31
31
|
toggl auth --workspace-id <workspace-id>
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
When `--profile` is omitted, the CLI saves the account under an account-based profile name such as `
|
|
34
|
+
When `--profile` is omitted, the CLI saves the account under an account-based profile name such as `user-12345` and makes it active. Use an explicit profile name only when the user asks for a specific name:
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
toggl auth --profile <name>
|
|
@@ -11,9 +11,9 @@ toggl [global flags] <group> … <subcommand> [flags]
|
|
|
11
11
|
Put global flags before the first group:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
toggl --json tasks list --project-id
|
|
15
|
-
toggl --profile
|
|
16
|
-
toggl --workspace-id
|
|
14
|
+
toggl --json tasks list --project-id 123456
|
|
15
|
+
toggl --profile user-12345 projects list
|
|
16
|
+
toggl --workspace-id 789012 tasks list --project-id 123456
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
**Organization and shared data** use multi-segment paths (no top-level `org` command):
|
|
@@ -36,7 +36,7 @@ Core resources and actions:
|
|
|
36
36
|
| `statuses` | `list` |
|
|
37
37
|
| `users` | `list` |
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Some low-level endpoints are omitted from the CLI and MCP.
|
|
40
40
|
|
|
41
41
|
Bulk mutations use a nested command: **`toggl <resource> bulk <verb>`** (for example `toggl tasks bulk patch`). MCP entity tools still use hyphenated `action` values such as `bulk-patch` — only the CLI path uses the nested form.
|
|
42
42
|
|
|
@@ -54,7 +54,7 @@ Bulk mutations use a nested command: **`toggl <resource> bulk <verb>`** (for exa
|
|
|
54
54
|
Successful responses go to stdout as JSON. Use `--json` for compact single-line JSON that is easy to parse:
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
toggl --json tasks list --project-id
|
|
57
|
+
toggl --json tasks list --project-id 123456
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
Without `--json`, successful output is still JSON, but pretty-printed.
|
|
@@ -67,7 +67,7 @@ Prefer scalar flags for simple calls. Input field names map to kebab-case flags:
|
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
69
|
toggl --json tasks get --task-id 12345
|
|
70
|
-
toggl --json tasks list --project-id
|
|
70
|
+
toggl --json tasks list --project-id 123456 --status-id 111222
|
|
71
71
|
toggl --json time-entries list --date-from 2026-04-01 --date-to 2026-04-07
|
|
72
72
|
```
|
|
73
73
|
|
|
@@ -75,15 +75,15 @@ For `update` commands, payload fields use `--payload-<field>`:
|
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
77
|
toggl --json tasks update --task-id 12345 --payload-name "New task name"
|
|
78
|
-
toggl --json tasks update --task-id 12345 --payload-status-id
|
|
79
|
-
toggl --json projects update --project-id
|
|
78
|
+
toggl --json tasks update --task-id 12345 --payload-status-id 456789
|
|
79
|
+
toggl --json projects update --project-id 123456 --payload-name "Renamed project"
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
Use `--data` for a full JSON body:
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
toggl --json tasks create --data '{"name":"Write release notes","project_id":
|
|
86
|
-
toggl --json tasks update --data '{"task_id":12345,"payload":{"status_id":
|
|
85
|
+
toggl --json tasks create --data '{"name":"Write release notes","project_id":123456}'
|
|
86
|
+
toggl --json tasks update --data '{"task_id":12345,"payload":{"status_id":456789}}'
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
Use `--data -` when shell quoting is fragile:
|
|
@@ -101,7 +101,7 @@ toggl --json tasks create --data-file ./new-task.json
|
|
|
101
101
|
Bulk endpoints expect JSON via `--data` or `--data-file` (arrays for patch-style bulk; objects with `ids` or `task_ids` for deletes/archives). Examples:
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
toggl --json tasks bulk patch --dry-run --data '[{"id":111,"status_id":
|
|
104
|
+
toggl --json tasks bulk patch --dry-run --data '[{"id":111,"status_id":456789},{"id":222,"status_id":456789}]'
|
|
105
105
|
toggl --json projects bulk patch --data-file ./project-updates.json
|
|
106
106
|
toggl --json time-blocks bulk create --data '{"time_blocks":[{"task_id":12345,"start":"2026-04-01T09:00:00Z","duration":60}]}'
|
|
107
107
|
toggl --json time-entries bulk patch --data '[{"id":9001,"description":"Updated"}]'
|
|
@@ -117,17 +117,17 @@ toggl --json tasks bulk delete --data '{"ids":[111,222]}' --yes
|
|
|
117
117
|
Use `--dry-run` to validate resolved input without making an API call:
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
|
-
toggl tasks update --task-id 12345 --payload-status-id
|
|
120
|
+
toggl tasks update --task-id 12345 --payload-status-id 456789 --dry-run
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
Delete commands require `--yes`. Never add `--yes` unless the user clearly requested the destructive delete:
|
|
124
124
|
|
|
125
125
|
```bash
|
|
126
126
|
toggl --json tasks delete --task-id 12345 --yes
|
|
127
|
-
toggl --json projects delete --project-id
|
|
127
|
+
toggl --json projects delete --project-id 123456 --yes
|
|
128
128
|
toggl --json time-blocks delete --task-id 12345 --time-block-id 67890 --yes
|
|
129
129
|
toggl --json tasks bulk delete --data '{"ids":[111,222]}' --yes
|
|
130
|
-
toggl --json projects bulk delete --data '{"ids":[
|
|
130
|
+
toggl --json projects bulk delete --data '{"ids":[123456,123457]}' --yes
|
|
131
131
|
toggl --json time-blocks bulk delete --data '{"ids":[101,102]}' --yes
|
|
132
132
|
```
|
|
133
133
|
|
|
@@ -19,7 +19,7 @@ toggl --json projects get --project-id <project-id>
|
|
|
19
19
|
Create a project:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
toggl --json projects create --data '{"name":"Q3 Planning","workspace_id":
|
|
22
|
+
toggl --json projects create --data '{"name":"Q3 Planning","workspace_id":789012}'
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Rename a project:
|
|
@@ -45,7 +45,7 @@ toggl --json projects list
|
|
|
45
45
|
When creating tasks, pass the resolved project ID to `tasks create`:
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
toggl --json tasks create --data '{"name":"Task name","project_id":
|
|
48
|
+
toggl --json tasks create --data '{"name":"Task name","project_id":123456}'
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Project deletion is destructive. Confirm the exact project ID and name before using `--yes`.
|
|
@@ -20,7 +20,7 @@ toggl --json tasks get --task-id <task-id>
|
|
|
20
20
|
Create a task:
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
toggl --json tasks create --data '{"name":"Follow up with design","project_id":
|
|
23
|
+
toggl --json tasks create --data '{"name":"Follow up with design","project_id":123456}'
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
Update a task with scalar payload flags:
|
|
@@ -33,7 +33,7 @@ toggl --json tasks update --task-id <task-id> --payload-status-id <status-id>
|
|
|
33
33
|
Update a task with a JSON payload:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
toggl --json tasks update --data '{"task_id":12345,"payload":{"name":"Updated name","status_id":
|
|
36
|
+
toggl --json tasks update --data '{"task_id":12345,"payload":{"name":"Updated name","status_id":456789}}'
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Delete a task only after explicit user confirmation:
|
|
@@ -86,7 +86,7 @@ toggl --json tasks delete --task-id <task-id> --yes
|
|
|
86
86
|
For API response schema warnings, rerun with debug enabled:
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
TOGGL_DEBUG=1 toggl --json tasks list --project-id
|
|
89
|
+
TOGGL_DEBUG=1 toggl --json tasks list --project-id 123456
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
## Unknown Command Shape
|
|
@@ -36,7 +36,7 @@ If multiple resources match a user-provided name, ask before mutating.
|
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
toggl --json projects list
|
|
39
|
-
toggl --json tasks create --data '{"name":"Write release notes","project_id":
|
|
39
|
+
toggl --json tasks create --data '{"name":"Write release notes","project_id":123456}'
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
## Move a Task to a Status
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# Internal Toggl CLI Workflows
|
|
2
|
-
|
|
3
|
-
Install `@toggl/cli-internal` from **GitHub Packages** for internal builds that include staging and MS environment helpers (`toggl-internal` bin).
|
|
4
|
-
|
|
5
|
-
Configure `~/.npmrc` with a GitHub Packages token (`read:packages`) and Toggl org access:
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
@toggl:registry=https://npm.pkg.github.com/
|
|
9
|
-
//npm.pkg.github.com/:_authToken=<GH_NPM_TOKEN>
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
npm install -g @toggl/cli-internal
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Environments
|
|
17
|
-
|
|
18
|
-
Use production by default. Use these flags only when a Toggl engineer asks for staging or a named MS environment.
|
|
19
|
-
|
|
20
|
-
Authenticate against staging:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
toggl-internal auth --staging
|
|
24
|
-
toggl-internal --json profile list
|
|
25
|
-
toggl-internal --json workspace list
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Authenticate against a named MS environment:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
toggl-internal auth --ms <name>
|
|
32
|
-
toggl-internal --json profile list
|
|
33
|
-
toggl-internal --json workspace list
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Generated non-production profiles keep the environment prefix, for example `staging-hazem-12345` or `ms-foo-hazem-12345`.
|
|
37
|
-
|
|
38
|
-
## Environment Variables
|
|
39
|
-
|
|
40
|
-
The internal build also recognizes shorthand environment variables:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
ENV=staging toggl-internal auth
|
|
44
|
-
MS=<name> toggl-internal auth
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Explicit URL overrides still take precedence:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
TOGGL_FOCUS_API_URL=<url> TOGGL_ACCOUNTS_API_URL=<url> toggl-internal auth
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Troubleshooting
|
|
54
|
-
|
|
55
|
-
When data appears missing in an internal environment, verify profile and workspace before assuming the resource does not exist:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
toggl-internal --json profile list
|
|
59
|
-
toggl-internal --json profile current
|
|
60
|
-
toggl-internal --json workspace list --refresh
|
|
61
|
-
toggl-internal --json workspace switch <workspace-id>
|
|
62
|
-
```
|