@doist/todoist-cli 1.26.0 → 1.28.0
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/CHANGELOG.md +365 -0
- package/dist/commands/attachment.d.ts +3 -0
- package/dist/commands/attachment.d.ts.map +1 -0
- package/dist/commands/attachment.js +156 -0
- package/dist/commands/attachment.js.map +1 -0
- package/dist/commands/changelog.d.ts +8 -0
- package/dist/commands/changelog.d.ts.map +1 -0
- package/dist/commands/changelog.js +92 -0
- package/dist/commands/changelog.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +1 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/api/core.d.ts.map +1 -1
- package/dist/lib/api/core.js +1 -0
- package/dist/lib/api/core.js.map +1 -1
- package/dist/lib/skills/content.d.ts +1 -1
- package/dist/lib/skills/content.d.ts.map +1 -1
- package/dist/lib/skills/content.js +20 -0
- package/dist/lib/skills/content.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.28.0](https://github.com/Doist/todoist-cli/compare/v1.27.0...v1.28.0) (2026-03-21)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* add changelog command and post-update hint ([#171](https://github.com/Doist/todoist-cli/issues/171)) ([c5aa3c2](https://github.com/Doist/todoist-cli/commit/c5aa3c2ec92ee97a503c38f69b141730aab6d387))
|
|
14
|
+
|
|
15
|
+
## [1.27.0](https://github.com/Doist/todoist-cli/compare/v1.26.0...v1.27.0) (2026-03-19)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **attachment:** add `td attachment view` command ([#168](https://github.com/Doist/todoist-cli/issues/168)) ([15ef686](https://github.com/Doist/todoist-cli/commit/15ef686ca7ed4e348e1025cb11607747031a3090))
|
|
21
|
+
|
|
22
|
+
## [1.26.0](https://github.com/Doist/todoist-cli/compare/v1.25.1...v1.26.0) (2026-03-17)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* **activity:** remove --all flag to prevent unbounded fetches ([#165](https://github.com/Doist/todoist-cli/issues/165)) ([2342e1c](https://github.com/Doist/todoist-cli/commit/2342e1ce6940061cf1c521b54b10247f3ad02622))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* **deps:** update dependency @doist/todoist-api-typescript to v7.1.1 ([#167](https://github.com/Doist/todoist-cli/issues/167)) ([e3831c0](https://github.com/Doist/todoist-cli/commit/e3831c0e166d0b27019e0d8b91db88d360dc0b6c))
|
|
33
|
+
|
|
34
|
+
## [1.25.1](https://github.com/Doist/todoist-cli/compare/v1.25.0...v1.25.1) (2026-03-17)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Bug Fixes
|
|
38
|
+
|
|
39
|
+
* align skill name with install directory ([#158](https://github.com/Doist/todoist-cli/issues/158)) ([5cffb20](https://github.com/Doist/todoist-cli/commit/5cffb2051d7e4943b167bb06c634118e5fc9083c))
|
|
40
|
+
|
|
41
|
+
## [1.25.0](https://github.com/Doist/todoist-cli/compare/v1.24.1...v1.25.0) (2026-03-15)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Features
|
|
45
|
+
|
|
46
|
+
* add task reschedule command ([#151](https://github.com/Doist/todoist-cli/issues/151)) ([6ac1d69](https://github.com/Doist/todoist-cli/commit/6ac1d6975b06fbe55690d35e7e995852f2d24cf6))
|
|
47
|
+
|
|
48
|
+
## [1.24.1](https://github.com/Doist/todoist-cli/compare/v1.24.0...v1.24.1) (2026-03-15)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
### Bug Fixes
|
|
52
|
+
|
|
53
|
+
* show all subcommands in help for filter, label, and project ([#149](https://github.com/Doist/todoist-cli/issues/149)) ([f72bf1c](https://github.com/Doist/todoist-cli/commit/f72bf1c0bd23a53d79063be7aa35464854e49aae))
|
|
54
|
+
|
|
55
|
+
## [1.24.0](https://github.com/Doist/todoist-cli/compare/v1.23.0...v1.24.0) (2026-03-14)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
### Features
|
|
59
|
+
|
|
60
|
+
* add --json support to mutating commands ([#147](https://github.com/Doist/todoist-cli/issues/147)) ([7a8d116](https://github.com/Doist/todoist-cli/commit/7a8d11624f09deb8e8974d530c4a92ab6d18f907))
|
|
61
|
+
* add --stdin flag to comment add, task add, and task update ([#145](https://github.com/Doist/todoist-cli/issues/145)) ([149d560](https://github.com/Doist/todoist-cli/commit/149d560542e0691edfcb4742f454d1992a2a5bc8))
|
|
62
|
+
|
|
63
|
+
## [1.23.0](https://github.com/Doist/todoist-cli/compare/v1.22.1...v1.23.0) (2026-03-13)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### Features
|
|
67
|
+
|
|
68
|
+
* **task:** add --order flag to task add and update ([#143](https://github.com/Doist/todoist-cli/issues/143)) ([51e6428](https://github.com/Doist/todoist-cli/commit/51e6428ff24dd57d16d34a57d661d21bf56df58c))
|
|
69
|
+
* **task:** add --uncompletable/--completable flags to task add and update ([#142](https://github.com/Doist/todoist-cli/issues/142)) ([545c931](https://github.com/Doist/todoist-cli/commit/545c9315bd24d262e8713801fb32873ff1bafbfd))
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Bug Fixes
|
|
73
|
+
|
|
74
|
+
* **deps:** update dependency @doist/todoist-api-typescript to v6.10.0 ([#127](https://github.com/Doist/todoist-cli/issues/127)) ([b537201](https://github.com/Doist/todoist-cli/commit/b53720185535172490018e6019ddab04d093f4e1))
|
|
75
|
+
* **deps:** update dependency @doist/todoist-api-typescript to v7.0.0 ([#134](https://github.com/Doist/todoist-cli/issues/134)) ([9ac38c1](https://github.com/Doist/todoist-cli/commit/9ac38c1e762be7c883b3ec574abf67488856f259))
|
|
76
|
+
* **deps:** update dependency commander to v14.0.3 ([#131](https://github.com/Doist/todoist-cli/issues/131)) ([75b23f8](https://github.com/Doist/todoist-cli/commit/75b23f8b6a798828be2377136112f7f70de4dba8))
|
|
77
|
+
* **deps:** update dependency yocto-spinner to v1.1.0 ([#136](https://github.com/Doist/todoist-cli/issues/136)) ([b77f479](https://github.com/Doist/todoist-cli/commit/b77f4793d4612c90fbc86baf83be28a28e08d268))
|
|
78
|
+
|
|
79
|
+
## [1.22.1](https://github.com/Doist/todoist-cli/compare/v1.22.0...v1.22.1) (2026-03-11)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
### Bug Fixes
|
|
83
|
+
|
|
84
|
+
* address PR [#121](https://github.com/Doist/todoist-cli/issues/121) review feedback for auth status --json ([#123](https://github.com/Doist/todoist-cli/issues/123)) ([7de6e08](https://github.com/Doist/todoist-cli/commit/7de6e081652f82b319ccb40dc753375ee2afeb74))
|
|
85
|
+
|
|
86
|
+
## [1.22.0](https://github.com/Doist/todoist-cli/compare/v1.21.0...v1.22.0) (2026-03-11)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
### Features
|
|
90
|
+
|
|
91
|
+
* **activity:** add markdown output mode for activity logs ([#85](https://github.com/Doist/todoist-cli/issues/85)) ([fb55786](https://github.com/Doist/todoist-cli/commit/fb55786b6b5eabe8d93d60fe2baeba5a5332b69a))
|
|
92
|
+
* add --json output to auth status command ([#121](https://github.com/Doist/todoist-cli/issues/121)) ([7a0e437](https://github.com/Doist/todoist-cli/commit/7a0e437671e650d58be177a8a96d0a41432bbc8a))
|
|
93
|
+
* store auth tokens in OS credential storage ([#120](https://github.com/Doist/todoist-cli/issues/120)) ([efafcfe](https://github.com/Doist/todoist-cli/commit/efafcfef6857fd9c042172fe46acdc71f9c9bfb3))
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
### Bug Fixes
|
|
97
|
+
|
|
98
|
+
* address PR [#112](https://github.com/Doist/todoist-cli/issues/112) review feedback ([#115](https://github.com/Doist/todoist-cli/issues/115)) ([6e5a0ff](https://github.com/Doist/todoist-cli/commit/6e5a0ffb746797ced326f17af626ad6b7eebf8a7))
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
### Performance Improvements
|
|
102
|
+
|
|
103
|
+
* reduce CLI startup cost by deferring markdown loads and unnecessary project fetches ([#118](https://github.com/Doist/todoist-cli/issues/118)) ([fa9a660](https://github.com/Doist/todoist-cli/commit/fa9a660028a790b6641157868e112075491e9c43))
|
|
104
|
+
|
|
105
|
+
## [1.21.0](https://github.com/Doist/todoist-cli/compare/v1.20.0...v1.21.0) (2026-03-05)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
### Features
|
|
109
|
+
|
|
110
|
+
* add assignee display to completed tasks command ([#112](https://github.com/Doist/todoist-cli/issues/112)) ([863fe8b](https://github.com/Doist/todoist-cli/commit/863fe8b3f42b8528d2302ba69db7992a3ed70484))
|
|
111
|
+
|
|
112
|
+
## [1.20.0](https://github.com/Doist/todoist-cli/compare/v1.19.0...v1.20.0) (2026-02-25)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
### Features
|
|
116
|
+
|
|
117
|
+
* suppress package manager output during update ([#104](https://github.com/Doist/todoist-cli/issues/104)) ([06030b8](https://github.com/Doist/todoist-cli/commit/06030b80917875228ead96973edc6a7782143329))
|
|
118
|
+
|
|
119
|
+
## [1.19.0](https://github.com/Doist/todoist-cli/compare/v1.18.0...v1.19.0) (2026-02-25)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
### Features
|
|
123
|
+
|
|
124
|
+
* replace OAuth page logo with td-cli icon ([#102](https://github.com/Doist/todoist-cli/issues/102)) ([61f0975](https://github.com/Doist/todoist-cli/commit/61f09753611a92695e25a5c19acf6bbed4a79505))
|
|
125
|
+
|
|
126
|
+
## [1.18.0](https://github.com/Doist/todoist-cli/compare/v1.17.0...v1.18.0) (2026-02-21)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
### Features
|
|
130
|
+
|
|
131
|
+
* add --accessible flag for screen reader and color-blind users ([#95](https://github.com/Doist/todoist-cli/issues/95)) ([d1cd90d](https://github.com/Doist/todoist-cli/commit/d1cd90d824c8c5a01f75fce3433a35c456ea3262))
|
|
132
|
+
* add Gemini CLI skill ([#96](https://github.com/Doist/todoist-cli/issues/96)) ([ad85fe3](https://github.com/Doist/todoist-cli/commit/ad85fe31ed1b576bc1d793badf356033bb28d899))
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
### Bug Fixes
|
|
136
|
+
|
|
137
|
+
* use pnpm add instead of pnpm install for global updates ([#92](https://github.com/Doist/todoist-cli/issues/92)) ([eacbbb7](https://github.com/Doist/todoist-cli/commit/eacbbb7bce9c47f98661309c7c77d8cf4c4b2e04))
|
|
138
|
+
|
|
139
|
+
## [1.17.0](https://github.com/Doist/todoist-cli/compare/v1.16.0...v1.17.0) (2026-02-20)
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
### Features
|
|
143
|
+
|
|
144
|
+
* add `td update` self-update command ([#88](https://github.com/Doist/todoist-cli/issues/88)) ([3f9fe80](https://github.com/Doist/todoist-cli/commit/3f9fe80743b195874b437c795ffc38989c832c9e))
|
|
145
|
+
|
|
146
|
+
## [1.16.0](https://github.com/Doist/todoist-cli/compare/v1.15.0...v1.16.0) (2026-02-18)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
### Features
|
|
150
|
+
|
|
151
|
+
* add `td project move` command ([#72](https://github.com/Doist/todoist-cli/issues/72)) ([f71206d](https://github.com/Doist/todoist-cli/commit/f71206d0bb412f360ef7f0728ec14bc69a5ea11d))
|
|
152
|
+
* **view:** improve URL routing passthrough and lazy loading ([#79](https://github.com/Doist/todoist-cli/issues/79)) ([aff25df](https://github.com/Doist/todoist-cli/commit/aff25df1badc536ccf283881bdc4117f71a6f1fb))
|
|
153
|
+
|
|
154
|
+
## [1.15.0](https://github.com/Doist/todoist-cli/compare/v1.14.0...v1.15.0) (2026-02-17)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
### Features
|
|
158
|
+
|
|
159
|
+
* auto-update agent skills on npm package update ([#76](https://github.com/Doist/todoist-cli/issues/76)) ([cb12178](https://github.com/Doist/todoist-cli/commit/cb1217856e9b45769fee9fb7df016f192c6b0604))
|
|
160
|
+
|
|
161
|
+
## [1.14.0](https://github.com/Doist/todoist-cli/compare/v1.13.0...v1.14.0) (2026-02-17)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
### Features
|
|
165
|
+
|
|
166
|
+
* accept Todoist web app task and project URLs as CLI parameters ([#64](https://github.com/Doist/todoist-cli/issues/64)) ([4c637c1](https://github.com/Doist/todoist-cli/commit/4c637c1cc0da85c84020ba3461803596ef0a4943))
|
|
167
|
+
* enhance Todoist URL support for labels, filters, and add view router ([#69](https://github.com/Doist/todoist-cli/issues/69)) ([109ab08](https://github.com/Doist/todoist-cli/commit/109ab0858638ec27b066080d60d5d353db7679da))
|
|
168
|
+
|
|
169
|
+
## [1.13.0](https://github.com/Doist/todoist-cli/compare/v1.12.0...v1.13.0) (2026-02-16)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
### Features
|
|
173
|
+
|
|
174
|
+
* shell completion support (bash, zsh, fish) ([#66](https://github.com/Doist/todoist-cli/issues/66)) ([994e603](https://github.com/Doist/todoist-cli/commit/994e60386f1b467ffc0440f84b212aa17db87b87))
|
|
175
|
+
|
|
176
|
+
## [1.12.0](https://github.com/Doist/todoist-cli/compare/v1.11.0...v1.12.0) (2026-02-13)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
### Features
|
|
180
|
+
|
|
181
|
+
* add verbose/trace output for API latency debugging (-v to -vvvv) ([#56](https://github.com/Doist/todoist-cli/issues/56)) ([8d43e99](https://github.com/Doist/todoist-cli/commit/8d43e9913de2add12345ab34fdd98053669cf3d0))
|
|
182
|
+
* lenient CLI ergonomics (raw IDs, implicit view, flag aliases) ([#60](https://github.com/Doist/todoist-cli/issues/60)) ([46236b3](https://github.com/Doist/todoist-cli/commit/46236b3290569fbc9bba2d92ab4569ba13d8c87e))
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
### Performance Improvements
|
|
186
|
+
|
|
187
|
+
* lazy-load commands and show early spinner for instant feedback ([#65](https://github.com/Doist/todoist-cli/issues/65)) ([9a9b79a](https://github.com/Doist/todoist-cli/commit/9a9b79a8f08dd20baba1c66385a1c9fbf8bc8899))
|
|
188
|
+
|
|
189
|
+
## [1.11.0](https://github.com/Doist/todoist-cli/compare/v1.10.0...v1.11.0) (2026-02-11)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
### Features
|
|
193
|
+
|
|
194
|
+
* positional content arg for `td task add` ([#55](https://github.com/Doist/todoist-cli/issues/55)) ([3f94899](https://github.com/Doist/todoist-cli/commit/3f9489984ce8e7e2f2e461dcfb50fff737613811))
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
### Performance Improvements
|
|
198
|
+
|
|
199
|
+
* server-side assignee scoping and parallel project fetching in today/upcoming ([#59](https://github.com/Doist/todoist-cli/issues/59)) ([94a24b0](https://github.com/Doist/todoist-cli/commit/94a24b08a7c8de127417228bb5a17f5f74f63dc4))
|
|
200
|
+
|
|
201
|
+
## [1.10.0](https://github.com/Doist/todoist-cli/compare/v1.9.0...v1.10.0) (2026-02-10)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
### Features
|
|
205
|
+
|
|
206
|
+
* auto-retry id-like task refs as direct ID lookups ([#53](https://github.com/Doist/todoist-cli/issues/53)) ([bcdb7f3](https://github.com/Doist/todoist-cli/commit/bcdb7f3772f603a7a99f1f0577012ad835ee46e2))
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
### Bug Fixes
|
|
210
|
+
|
|
211
|
+
* use server-side API calls for task list (parent id) and task ref (name search) resolution ([#52](https://github.com/Doist/todoist-cli/issues/52)) ([a2f7776](https://github.com/Doist/todoist-cli/commit/a2f777685c6120e95a84ce8491913513a9bb6d77))
|
|
212
|
+
|
|
213
|
+
## [1.9.0](https://github.com/Doist/todoist-cli/compare/v1.8.1...v1.9.0) (2026-02-09)
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
### Features
|
|
217
|
+
|
|
218
|
+
* redesign OAuth success and error pages ([#47](https://github.com/Doist/todoist-cli/issues/47)) ([08c463a](https://github.com/Doist/todoist-cli/commit/08c463a5a6e34cebfad71f6aa737a6461825553a))
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
### Bug Fixes
|
|
222
|
+
|
|
223
|
+
* clarify id: prefix requirement in error messages ([#49](https://github.com/Doist/todoist-cli/issues/49)) ([317a20a](https://github.com/Doist/todoist-cli/commit/317a20a92c29fb03339efc5135b9c1cd4109649e))
|
|
224
|
+
* normalize dates to UTC midnight for timezone-independent comparisons ([#50](https://github.com/Doist/todoist-cli/issues/50)) ([4d29ef7](https://github.com/Doist/todoist-cli/commit/4d29ef7800f6866cbba255a6919e378b40773ba7))
|
|
225
|
+
|
|
226
|
+
## [1.8.1](https://github.com/Doist/todoist-cli/compare/v1.8.0...v1.8.1) (2026-02-06)
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
### Bug Fixes
|
|
230
|
+
|
|
231
|
+
* add loading spinner to settings view ([#44](https://github.com/Doist/todoist-cli/issues/44)) ([9829519](https://github.com/Doist/todoist-cli/commit/9829519e677df5916609064d1f990d4bccc9c627))
|
|
232
|
+
|
|
233
|
+
## [1.8.0](https://github.com/Doist/todoist-cli/compare/v1.7.0...v1.8.0) (2026-02-06)
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
### Features
|
|
237
|
+
|
|
238
|
+
* resolve entity names in settings view start page ([#43](https://github.com/Doist/todoist-cli/issues/43)) ([b87e034](https://github.com/Doist/todoist-cli/commit/b87e0346cfb8b37cd8f0a962fa4fc38299b4e46a))
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
### Bug Fixes
|
|
242
|
+
|
|
243
|
+
* add all missing commands to agent skill and add skill update command ([#42](https://github.com/Doist/todoist-cli/issues/42)) ([c824675](https://github.com/Doist/todoist-cli/commit/c8246750cc16014896c39a3eb56620b66a0b32c0))
|
|
244
|
+
* use server-side filtering for task list commands ([#39](https://github.com/Doist/todoist-cli/issues/39)) ([abd2993](https://github.com/Doist/todoist-cli/commit/abd29934d1a2b31cc144585147d45fae974c3f54))
|
|
245
|
+
|
|
246
|
+
## [1.7.0](https://github.com/Doist/todoist-cli/compare/v1.6.1...v1.7.0) (2026-02-03)
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
### Features
|
|
250
|
+
|
|
251
|
+
* expose workspaceId in project JSON output ([#37](https://github.com/Doist/todoist-cli/issues/37)) ([a833dba](https://github.com/Doist/todoist-cli/commit/a833dba64df417468b3526ea07f9ffa84cf8a992))
|
|
252
|
+
|
|
253
|
+
## [1.6.1](https://github.com/Doist/todoist-cli/compare/v1.6.0...v1.6.1) (2026-02-02)
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
### Bug Fixes
|
|
257
|
+
|
|
258
|
+
* use server-side filtering for today command ([#34](https://github.com/Doist/todoist-cli/issues/34)) ([d9430aa](https://github.com/Doist/todoist-cli/commit/d9430aab1fe407a988ae9a96db5d010af621937f))
|
|
259
|
+
* use server-side filtering for upcoming command and fix date formatting ([#35](https://github.com/Doist/todoist-cli/issues/35)) ([9f5c98e](https://github.com/Doist/todoist-cli/commit/9f5c98e613a59d49eafb839f52dfb97d9ed9c3ef))
|
|
260
|
+
|
|
261
|
+
## [1.6.0](https://github.com/Doist/todoist-cli/compare/v1.5.0...v1.6.0) (2026-01-29)
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
### Features
|
|
265
|
+
|
|
266
|
+
* add --progress-jsonl flag for machine-readable progress reporting ([#32](https://github.com/Doist/todoist-cli/issues/32)) ([d89adc5](https://github.com/Doist/todoist-cli/commit/d89adc5f9546167b8c7cf8783cab2be275e66f8e))
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
### Bug Fixes
|
|
270
|
+
|
|
271
|
+
* resolve td today missing tasks with specific times ([#30](https://github.com/Doist/todoist-cli/issues/30)) ([06debf4](https://github.com/Doist/todoist-cli/commit/06debf47f3042a403cc78f1bfafad0905347e7a2))
|
|
272
|
+
|
|
273
|
+
## [1.5.0](https://github.com/Doist/todoist-cli/compare/v1.4.0...v1.5.0) (2026-01-25)
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
### Features
|
|
277
|
+
|
|
278
|
+
* add hidden interactive prompt for auth token input ([#25](https://github.com/Doist/todoist-cli/issues/25)) ([aff75a6](https://github.com/Doist/todoist-cli/commit/aff75a6cf51b7dcac137adecb87d095a2a34bbaf))
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
### Bug Fixes
|
|
282
|
+
|
|
283
|
+
* migrate sync API from v9 to v1 ([#23](https://github.com/Doist/todoist-cli/issues/23)) ([74fb4bf](https://github.com/Doist/todoist-cli/commit/74fb4bf6b78470276a18947fd61b4d23698be254))
|
|
284
|
+
|
|
285
|
+
## [1.4.0](https://github.com/Doist/todoist-cli/compare/v1.3.0...v1.4.0) (2026-01-23)
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
### Features
|
|
289
|
+
|
|
290
|
+
* add codex and cursor agent skill support ([#20](https://github.com/Doist/todoist-cli/issues/20)) ([6420afa](https://github.com/Doist/todoist-cli/commit/6420afa5f51cf987802dd6ad15da1bff3214a257))
|
|
291
|
+
|
|
292
|
+
## [1.3.0](https://github.com/Doist/todoist-cli/compare/v1.2.0...v1.3.0) (2026-01-23)
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
### Features
|
|
296
|
+
|
|
297
|
+
* add skill install command for coding agent integrations ([#16](https://github.com/Doist/todoist-cli/issues/16)) ([5c544c0](https://github.com/Doist/todoist-cli/commit/5c544c011178a390fadca82d1faf58c375bb8855))
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
### Bug Fixes
|
|
301
|
+
|
|
302
|
+
* add UTF-8 charset to OAuth callback HTML responses ([#17](https://github.com/Doist/todoist-cli/issues/17)) ([488fe4b](https://github.com/Doist/todoist-cli/commit/488fe4b2f91de52c0669fb4f42a1b16b888e57b2))
|
|
303
|
+
* prevent task creation in archived projects ([#19](https://github.com/Doist/todoist-cli/issues/19)) ([838cdf5](https://github.com/Doist/todoist-cli/commit/838cdf5dbb27181c1763ff3a1d89581a0dea1daa))
|
|
304
|
+
|
|
305
|
+
## [1.2.0](https://github.com/Doist/todoist-cli/compare/v1.1.2...v1.2.0) (2026-01-19)
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
### Features
|
|
309
|
+
|
|
310
|
+
* restore provenance publishing after initial publication ([#14](https://github.com/Doist/todoist-cli/issues/14)) ([8afde59](https://github.com/Doist/todoist-cli/commit/8afde593a2584b452c4e55a823e4834d1e08323b))
|
|
311
|
+
|
|
312
|
+
## [1.1.2](https://github.com/Doist/todoist-cli/compare/v1.1.1...v1.1.2) (2026-01-19)
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
### Bug Fixes
|
|
316
|
+
|
|
317
|
+
* use NPM_TOKEN for initial package publication ([#12](https://github.com/Doist/todoist-cli/issues/12)) ([75cf675](https://github.com/Doist/todoist-cli/commit/75cf6750067ef0227b7f92e658eaee57e95ec8d5))
|
|
318
|
+
|
|
319
|
+
## [1.1.1](https://github.com/Doist/todoist-cli/compare/v1.1.0...v1.1.1) (2026-01-16)
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
### Bug Fixes
|
|
323
|
+
|
|
324
|
+
* exclude CHANGELOG.md from Prettier formatting ([c989d18](https://github.com/Doist/todoist-cli/commit/c989d18f4e62b76df68b3e3c82e127635e10055b))
|
|
325
|
+
|
|
326
|
+
## [1.1.0](https://github.com/Doist/todoist-cli/compare/v1.0.0...v1.1.0) (2026-01-16)
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
### Features
|
|
330
|
+
|
|
331
|
+
* Add Biome linting, upgrade to Node 20, and improve CI/CD pipeline ([#9](https://github.com/Doist/todoist-cli/issues/9)) ([5dc98a5](https://github.com/Doist/todoist-cli/commit/5dc98a5c8f750b16ce9c23df546abee14ce473ec))
|
|
332
|
+
|
|
333
|
+
## 1.0.0 (2026-01-16)
|
|
334
|
+
|
|
335
|
+
### Features
|
|
336
|
+
|
|
337
|
+
- add loading animations with global API proxy integration ([#6](https://github.com/Doist/todoist-cli/issues/6)) ([f8f5db0](https://github.com/Doist/todoist-cli/commit/f8f5db0df5adf1a0d1624ebadb2a9ea6fa422bee))
|
|
338
|
+
- add release-please automation with npm publishing ([#7](https://github.com/Doist/todoist-cli/issues/7)) ([4e3f2c5](https://github.com/Doist/todoist-cli/commit/4e3f2c55d33a1268563fed200c0a3bb504b133e5))
|
|
339
|
+
|
|
340
|
+
### Bug Fixes
|
|
341
|
+
|
|
342
|
+
- ensure OAuth server cleanup on error before callback resolves ([#5](https://github.com/Doist/todoist-cli/issues/5)) ([ac38547](https://github.com/Doist/todoist-cli/commit/ac38547223710d0708bd8bc440b93dae596307f7))
|
|
343
|
+
|
|
344
|
+
## [Unreleased]
|
|
345
|
+
|
|
346
|
+
### Features
|
|
347
|
+
|
|
348
|
+
- Add comprehensive CLI commands for Todoist task management
|
|
349
|
+
- OAuth authentication with PKCE flow
|
|
350
|
+
- JSON/NDJSON output formats for AI/LLM integration
|
|
351
|
+
- Loading animations with global API proxy support
|
|
352
|
+
- Notification management commands
|
|
353
|
+
|
|
354
|
+
### Bug Fixes
|
|
355
|
+
|
|
356
|
+
- Ensure OAuth server cleanup on error before callback resolves
|
|
357
|
+
|
|
358
|
+
### Code Refactoring
|
|
359
|
+
|
|
360
|
+
- Split api.ts into modular api/ directory structure
|
|
361
|
+
- Refactor login command to auth with status/logout subcommands
|
|
362
|
+
|
|
363
|
+
## [0.1.0] - 2024-XX-XX
|
|
364
|
+
|
|
365
|
+
Initial release of the Todoist CLI.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/commands/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0KnC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAchE"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { getApi } from '../lib/api/core.js';
|
|
2
|
+
import { formatFileSize } from '../lib/output.js';
|
|
3
|
+
const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB
|
|
4
|
+
const IMAGE_MIME_TYPES = new Set([
|
|
5
|
+
'image/png',
|
|
6
|
+
'image/jpeg',
|
|
7
|
+
'image/gif',
|
|
8
|
+
'image/webp',
|
|
9
|
+
'image/svg+xml',
|
|
10
|
+
]);
|
|
11
|
+
const TEXT_MIME_TYPES = new Set([
|
|
12
|
+
'text/plain',
|
|
13
|
+
'text/csv',
|
|
14
|
+
'text/html',
|
|
15
|
+
'text/markdown',
|
|
16
|
+
'application/json',
|
|
17
|
+
'application/xml',
|
|
18
|
+
'text/xml',
|
|
19
|
+
]);
|
|
20
|
+
const EXTENSION_TO_MIME = {
|
|
21
|
+
'.png': 'image/png',
|
|
22
|
+
'.jpg': 'image/jpeg',
|
|
23
|
+
'.jpeg': 'image/jpeg',
|
|
24
|
+
'.gif': 'image/gif',
|
|
25
|
+
'.webp': 'image/webp',
|
|
26
|
+
'.svg': 'image/svg+xml',
|
|
27
|
+
'.txt': 'text/plain',
|
|
28
|
+
'.csv': 'text/csv',
|
|
29
|
+
'.html': 'text/html',
|
|
30
|
+
'.md': 'text/markdown',
|
|
31
|
+
'.json': 'application/json',
|
|
32
|
+
'.xml': 'application/xml',
|
|
33
|
+
'.pdf': 'application/pdf',
|
|
34
|
+
};
|
|
35
|
+
function parseMimeType(contentType) {
|
|
36
|
+
const base = contentType.split(';')[0];
|
|
37
|
+
return (base ?? contentType).trim().toLowerCase();
|
|
38
|
+
}
|
|
39
|
+
function parseCharset(contentType) {
|
|
40
|
+
const match = contentType.match(/charset\s*=\s*"?([^";,\s]+)"?/i);
|
|
41
|
+
return match?.[1]?.toLowerCase();
|
|
42
|
+
}
|
|
43
|
+
function getMimeTypeFromUrl(url) {
|
|
44
|
+
try {
|
|
45
|
+
const pathname = new URL(url).pathname;
|
|
46
|
+
const lastDot = pathname.lastIndexOf('.');
|
|
47
|
+
if (lastDot === -1)
|
|
48
|
+
return undefined;
|
|
49
|
+
const ext = pathname.slice(lastDot).toLowerCase();
|
|
50
|
+
return EXTENSION_TO_MIME[ext];
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function getFileNameFromUrl(url) {
|
|
57
|
+
try {
|
|
58
|
+
const pathname = new URL(url).pathname;
|
|
59
|
+
const lastSlash = pathname.lastIndexOf('/');
|
|
60
|
+
if (lastSlash === -1)
|
|
61
|
+
return undefined;
|
|
62
|
+
const name = pathname.slice(lastSlash + 1);
|
|
63
|
+
return name ? decodeURIComponent(name) : undefined;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function getContentCategory(mimeType) {
|
|
70
|
+
if (IMAGE_MIME_TYPES.has(mimeType))
|
|
71
|
+
return 'image';
|
|
72
|
+
if (TEXT_MIME_TYPES.has(mimeType) || mimeType.startsWith('text/'))
|
|
73
|
+
return 'text';
|
|
74
|
+
return 'binary';
|
|
75
|
+
}
|
|
76
|
+
async function viewAttachment(url, options) {
|
|
77
|
+
const api = await getApi();
|
|
78
|
+
const response = await api.viewAttachment(url);
|
|
79
|
+
if (!response.ok) {
|
|
80
|
+
throw new Error(`Failed to fetch attachment: ${response.status} ${response.statusText}`);
|
|
81
|
+
}
|
|
82
|
+
const fileName = getFileNameFromUrl(url) ?? 'unknown';
|
|
83
|
+
// Determine MIME type from Content-Type header, fall back to URL extension
|
|
84
|
+
const rawContentType = response.headers['content-type'];
|
|
85
|
+
const headerMime = rawContentType ? parseMimeType(rawContentType) : undefined;
|
|
86
|
+
const mimeType = headerMime && headerMime !== 'application/octet-stream'
|
|
87
|
+
? headerMime
|
|
88
|
+
: (getMimeTypeFromUrl(url) ?? headerMime ?? 'application/octet-stream');
|
|
89
|
+
// Check content-length header before reading body
|
|
90
|
+
const contentLength = response.headers['content-length'];
|
|
91
|
+
const headerFileSize = contentLength ? Number.parseInt(contentLength, 10) : undefined;
|
|
92
|
+
if (headerFileSize && headerFileSize > MAX_FILE_SIZE) {
|
|
93
|
+
throw new Error(`Attachment "${fileName}" is too large (${formatFileSize(headerFileSize)}, limit is ${formatFileSize(MAX_FILE_SIZE)})`);
|
|
94
|
+
}
|
|
95
|
+
const category = getContentCategory(mimeType);
|
|
96
|
+
// Always read as arrayBuffer for accurate size and charset-aware decoding
|
|
97
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
98
|
+
const fileSize = buffer.byteLength;
|
|
99
|
+
if (fileSize > MAX_FILE_SIZE) {
|
|
100
|
+
throw new Error(`Attachment "${fileName}" is too large (${formatFileSize(fileSize)}, limit is ${formatFileSize(MAX_FILE_SIZE)})`);
|
|
101
|
+
}
|
|
102
|
+
let content;
|
|
103
|
+
let encoding;
|
|
104
|
+
if (category === 'text') {
|
|
105
|
+
const charset = (rawContentType ? parseCharset(rawContentType) : undefined) ?? 'utf-8';
|
|
106
|
+
try {
|
|
107
|
+
const decoder = new TextDecoder(charset, { fatal: true });
|
|
108
|
+
content = decoder.decode(buffer);
|
|
109
|
+
encoding = charset;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Unsupported or invalid charset — fall back to base64
|
|
113
|
+
content = buffer.toString('base64');
|
|
114
|
+
encoding = 'base64';
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
content = buffer.toString('base64');
|
|
119
|
+
encoding = 'base64';
|
|
120
|
+
}
|
|
121
|
+
if (options.json) {
|
|
122
|
+
console.log(JSON.stringify({
|
|
123
|
+
fileName,
|
|
124
|
+
fileSize,
|
|
125
|
+
contentType: mimeType,
|
|
126
|
+
contentCategory: category,
|
|
127
|
+
encoding,
|
|
128
|
+
content,
|
|
129
|
+
}, null, 2));
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
// Default mode: metadata to stderr, content to stdout
|
|
133
|
+
process.stderr.write(`Attachment: ${fileName} (${mimeType}, ${formatFileSize(fileSize)})\n`);
|
|
134
|
+
if (encoding === 'base64') {
|
|
135
|
+
process.stderr.write('Encoding: base64\n');
|
|
136
|
+
console.log(content);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
process.stdout.write(content);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
export function registerAttachmentCommand(program) {
|
|
143
|
+
const attachment = program.command('attachment').description('Manage file attachments');
|
|
144
|
+
attachment
|
|
145
|
+
.command('view [url]', { isDefault: true })
|
|
146
|
+
.description('View/download a file attachment by URL')
|
|
147
|
+
.option('--json', 'Output as JSON with metadata and content')
|
|
148
|
+
.action((url, options) => {
|
|
149
|
+
if (!url) {
|
|
150
|
+
attachment.help();
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
return viewAttachment(url, options);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=attachment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/commands/attachment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
interface ChangelogOptions {
|
|
3
|
+
count: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function changelogAction(options: ChangelogOptions): Promise<void>;
|
|
6
|
+
export declare function registerChangelogCommand(program: Command): void;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=changelog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/commands/changelog.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqEnC,UAAU,gBAAgB;IACtB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB9E;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAM/D"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import packageJson from '../../package.json' with { type: 'json' };
|
|
6
|
+
const CHANGELOG_PATH = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'CHANGELOG.md');
|
|
7
|
+
const CHANGELOG_URL = `https://github.com/Doist/todoist-cli/blob/v${packageJson.version}/CHANGELOG.md`;
|
|
8
|
+
function formatInline(text) {
|
|
9
|
+
return text
|
|
10
|
+
.replace(/\*\*([^*]+)\*\*/g, (_, content) => chalk.bold(content))
|
|
11
|
+
.replace(/`([^`]+)`/g, (_, code) => chalk.cyan(code));
|
|
12
|
+
}
|
|
13
|
+
function formatForTerminal(text) {
|
|
14
|
+
return text
|
|
15
|
+
.split('\n')
|
|
16
|
+
.map((line) => {
|
|
17
|
+
// Version headers: ## 1.25.0 (date) → bold green
|
|
18
|
+
if (line.startsWith('## ')) {
|
|
19
|
+
return chalk.green.bold(line.slice(3));
|
|
20
|
+
}
|
|
21
|
+
// Section headers: ### Features → bold
|
|
22
|
+
if (line.startsWith('### ')) {
|
|
23
|
+
return chalk.bold(line.slice(4));
|
|
24
|
+
}
|
|
25
|
+
// Bullet items: * description → dimmed bullet + text
|
|
26
|
+
if (line.startsWith('* ')) {
|
|
27
|
+
return ` ${chalk.dim('•')} ${formatInline(line.slice(2))}`;
|
|
28
|
+
}
|
|
29
|
+
return formatInline(line);
|
|
30
|
+
})
|
|
31
|
+
.join('\n');
|
|
32
|
+
}
|
|
33
|
+
function cleanChangelog(text) {
|
|
34
|
+
return (text
|
|
35
|
+
// Version headers: ## [1.25.0](https://...) (date) → ## 1.25.0 (date)
|
|
36
|
+
.replace(/## \[([^\]]+)\]\([^)]*\)/g, '## $1')
|
|
37
|
+
// Remove commit hash links: ([abc1234](https://...))
|
|
38
|
+
.replace(/ \([a-f0-9]{7}\)/g, '')
|
|
39
|
+
.replace(/ \(\[[a-f0-9]{7}\]\([^)]*\)\)/g, '')
|
|
40
|
+
// Issue/PR links: [#151](https://...) → #151
|
|
41
|
+
.replace(/\[#(\d+)\]\([^)]*\)/g, '#$1')
|
|
42
|
+
// Remove **deps:** dependency update lines (not useful to end users)
|
|
43
|
+
.replace(/^\* \*\*deps:\*\*.*$/gm, '')
|
|
44
|
+
// Remove **scope:** prefixes but keep the text: **task:** foo → foo
|
|
45
|
+
.replace(/\*\*[\w-]+:\*\* /g, '')
|
|
46
|
+
// Clean up blank lines left by removed dep lines
|
|
47
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
48
|
+
// Remove section headers left empty after filtering (e.g. ### Bug Fixes with no items)
|
|
49
|
+
.replace(/### [\w ]+\n\n(?=##|$)/gm, ''));
|
|
50
|
+
}
|
|
51
|
+
function parseChangelog(content, count) {
|
|
52
|
+
const sections = content.split(/\n(?=## \[)/);
|
|
53
|
+
const versionSections = sections.slice(1);
|
|
54
|
+
const selected = versionSections.slice(0, count);
|
|
55
|
+
if (selected.length === 0) {
|
|
56
|
+
return { text: 'No changelog entries found.', hasMore: false };
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
text: cleanChangelog(selected.join('\n').trimEnd()),
|
|
60
|
+
hasMore: versionSections.length > count,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export async function changelogAction(options) {
|
|
64
|
+
const count = parseInt(options.count, 10);
|
|
65
|
+
if (isNaN(count) || count < 1) {
|
|
66
|
+
console.error(chalk.red('Error:'), 'Count must be a positive number');
|
|
67
|
+
process.exitCode = 1;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
let content;
|
|
71
|
+
try {
|
|
72
|
+
content = await readFile(CHANGELOG_PATH, 'utf-8');
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
console.error(chalk.red('Error:'), 'Could not read changelog file');
|
|
76
|
+
process.exitCode = 1;
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const { text, hasMore } = parseChangelog(content, count);
|
|
80
|
+
console.log(formatForTerminal(text));
|
|
81
|
+
if (hasMore) {
|
|
82
|
+
console.log(chalk.dim(`\nView full changelog: ${CHANGELOG_URL}`));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export function registerChangelogCommand(program) {
|
|
86
|
+
program
|
|
87
|
+
.command('changelog')
|
|
88
|
+
.description('Show recent changelog entries')
|
|
89
|
+
.option('-n, --count <number>', 'Number of versions to show', '5')
|
|
90
|
+
.action(changelogAction);
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=changelog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/commands/changelog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2CnC,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2CnC,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE9E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAM5D"}
|
package/dist/commands/update.js
CHANGED
|
@@ -78,6 +78,7 @@ export async function updateAction(options) {
|
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
console.log(chalk.green('✓'), `Updated to v${latestVersion}`);
|
|
81
|
+
console.log(chalk.dim(' Run'), chalk.cyan('td changelog'), chalk.dim('to see what changed'));
|
|
81
82
|
}
|
|
82
83
|
export function registerUpdateCommand(program) {
|
|
83
84
|
program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,YAAY,GAAG,oBAAoB,CAAA;AACzC,MAAM,YAAY,GAAG,8BAA8B,YAAY,SAAS,CAAA;AAMxE,KAAK,UAAU,kBAAkB;IAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqB,CAAA;IACxD,OAAO,IAAI,CAAC,OAAO,CAAA;AACvB,CAAC;AAED,SAAS,oBAAoB;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;IAC/C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IAC5C,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,EAAU;IAC1B,MAAM,OAAO,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,SAAS,CAAC,EAAE;YAC/D,KAAK,EAAE,MAAM;SAChB,CAAC,CAAA;QAEF,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACtC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC7B,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA4B;IAC3D,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAA;IAE1C,IAAI,aAAqB,CAAA;IACzB,IAAI,CAAC;QACD,aAAa,GAAG,MAAM,WAAW,CAC7B,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAE,EAClD,kBAAkB,CACrB,CAAA;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,gCAAgC,OAAO,EAAE,CAAC,CAAA;QAC7E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACV,CAAC;IAED,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,wBAAwB,cAAc,GAAG,CAAC,CAAA;QACxE,OAAM;IACV,CAAC;IAED,OAAO,CAAC,GAAG,CACP,qBAAqB,KAAK,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC,EAAE,CAC/F,CAAA;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAM;IACV,CAAC;IAED,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAEjC,IAAI,MAA4C,CAAA;IAChD,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,WAAW,CACtB,EAAE,IAAI,EAAE,gBAAgB,aAAa,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAC3D,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CACvB,CAAA;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,2CAA2C,CAAC,CAAA;YAC/E,OAAO,CAAC,KAAK,CACT,KAAK,CAAC,GAAG,CACL,UAAU,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,OAAO,YAAY,SAAS,CAChF,CACJ,CAAA;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,mBAAmB,OAAO,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACV,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACV,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,eAAe,aAAa,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,10 @@ const commands = {
|
|
|
23
23
|
'Quick add task with natural language (e.g., "Buy milk tomorrow p1 #Shopping")',
|
|
24
24
|
async () => (await import('./commands/add.js')).registerAddCommand,
|
|
25
25
|
],
|
|
26
|
+
changelog: [
|
|
27
|
+
'Show recent changelog entries',
|
|
28
|
+
async () => (await import('./commands/changelog.js')).registerChangelogCommand,
|
|
29
|
+
],
|
|
26
30
|
today: [
|
|
27
31
|
'Show tasks due today and overdue',
|
|
28
32
|
async () => (await import('./commands/today.js')).registerTodayCommand,
|
|
@@ -52,6 +56,10 @@ const commands = {
|
|
|
52
56
|
'Manage comments',
|
|
53
57
|
async () => (await import('./commands/comment.js')).registerCommentCommand,
|
|
54
58
|
],
|
|
59
|
+
attachment: [
|
|
60
|
+
'Manage file attachments',
|
|
61
|
+
async () => (await import('./commands/attachment.js')).registerAttachmentCommand,
|
|
62
|
+
],
|
|
55
63
|
section: [
|
|
56
64
|
'Manage project sections',
|
|
57
65
|
async () => (await import('./commands/section.js')).registerSectionCommand,
|
|
@@ -142,7 +150,9 @@ else {
|
|
|
142
150
|
// Preload markdown renderer in parallel with the command module
|
|
143
151
|
// when output will be pretty-printed (not JSON/NDJSON/raw)
|
|
144
152
|
const args = process.argv.slice(2);
|
|
145
|
-
const
|
|
153
|
+
const noMarkdownCommands = new Set(['changelog', 'update', 'completion']);
|
|
154
|
+
const needsMarkdown = !noMarkdownCommands.has(commandName) &&
|
|
155
|
+
!args.some((a) => a === '--json' || a === '--ndjson' || a === '--raw');
|
|
146
156
|
const markdownReady = needsMarkdown ? preloadMarkdown() : undefined;
|
|
147
157
|
const register = await loader();
|
|
148
158
|
await markdownReady;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/lib/api/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EACf,OAAO,EACP,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,gBAAgB,EAChB,KAAK,OAAO,EACf,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/lib/api/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EACf,OAAO,EACP,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,gBAAgB,EAChB,KAAK,OAAO,EACf,MAAM,+BAA+B,CAAA;AAmItC,wBAAsB,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAOlD;AAED,MAAM,MAAM,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAA;AAExD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAEhF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,eAAe,CAE9E;AAID,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAMxD;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUvE;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,CAOnF;AAED,wBAAsB,cAAc,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEjF;AAED,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA"}
|
package/dist/lib/api/core.js
CHANGED
|
@@ -31,6 +31,7 @@ const API_SPINNER_MESSAGES = {
|
|
|
31
31
|
moveProjectToWorkspace: { text: 'Moving project to workspace...', color: 'yellow' },
|
|
32
32
|
moveProjectToPersonal: { text: 'Moving project to personal...', color: 'yellow' },
|
|
33
33
|
sync: { text: 'Syncing...', color: 'blue' },
|
|
34
|
+
viewAttachment: { text: 'Fetching attachment...', color: 'blue' },
|
|
34
35
|
};
|
|
35
36
|
function createSpinnerWrappedApi(api) {
|
|
36
37
|
return new Proxy(api, {
|
package/dist/lib/api/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/lib/api/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAIb,UAAU,GAIb,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,IAAI,SAAS,GAAsB,IAAI,CAAA;AAEvC,gEAAgE;AAChE,MAAM,oBAAoB,GACtB;IACI,OAAO,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE;IAC9D,QAAQ,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE;IACrD,WAAW,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3D,SAAS,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE;IACvD,eAAe,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE;IACpE,WAAW,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3D,WAAW,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3D,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE;IACrD,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,SAAS,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;IACzD,UAAU,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC1D,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzD,UAAU,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC3D,aAAa,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC/D,aAAa,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE;IACvD,WAAW,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3D,WAAW,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3D,UAAU,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE;IAC3D,aAAa,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC/D,aAAa,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC/D,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;IACxD,gBAAgB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE;IAC7D,sBAAsB,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACnF,qBAAqB,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,QAAQ,EAAE;IACjF,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/lib/api/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const SKILL_NAME = "todoist-cli";
|
|
2
2
|
export declare const SKILL_DESCRIPTION = "Manage Todoist tasks, projects, labels, comments, and more via the td CLI";
|
|
3
|
-
export declare const SKILL_CONTENT = "# Todoist CLI (td)\n\nUse this skill when the user wants to interact with their Todoist tasks.\n\n## Quick Reference\n\n- `td today` - Tasks due today and overdue\n- `td inbox` - Inbox tasks\n- `td upcoming` - Tasks due in next N days\n- `td completed` - Recently completed tasks\n- `td auth login` - Authenticate and store the token securely\n- `td task add \"content\"` - Add a task\n- `td task list` - List tasks with filters\n- `td task complete <ref>` - Complete a task\n- `td project list` - List projects\n- `td label list` - List labels\n- `td filter list/view` - Manage and use saved filters\n- `td workspace list` - List workspaces\n- `td activity` - Activity logs\n- `td notification list` - Notifications\n- `td reminder add` - Task reminders\n- `td auth status` - Authentication status\n- `td stats` - Productivity stats\n- `td settings view` - User settings\n- `td completion install` - Install shell completions\n- `td view <url>` - View supported Todoist entities/pages by URL\n- `td update` - Self-update the CLI to the latest version\n\n## Output Formats\n\nAll list commands support:\n- `--json` - JSON output (essential fields)\n- `--ndjson` - Newline-delimited JSON (streaming)\n- `--full` - Include all fields in JSON\n- `--raw` - Disable markdown rendering\n\nThe following mutating commands also support `--json` to return the created or updated entity as machine-readable JSON instead of plain-text confirmation:\n- `task add`, `task update`\n- `project create`, `project update`\n- `label create`, `label update`\n- `comment add`, `comment update`\n- `section create`, `section update`\n- `filter create`\n- `reminder add`\n\nAll mutating commands support `--dry-run` to preview what would happen without executing:\n- Shows a preview of the action and parameters\n- The mutating action is skipped; read-only API calls may still be made to resolve references\n- On destructive commands (delete, project move) that use `--yes`, `--dry-run` takes precedence: even with `--yes`, the action will not execute\n\n## Shared List Options\n\nMost list commands also support:\n- `--limit <n>` - Limit number of results\n- `--all` - Fetch all results (no limit, not available on `activity`)\n- `--cursor <cursor>` - Continue from pagination cursor\n- `--show-urls` - Show web app URLs for each item\n\n## Global Options\n\n- `--no-spinner` - Disable loading animations\n- `--progress-jsonl` - Machine-readable progress events (JSONL to stderr)\n- `-v, --verbose` - Verbose output to stderr (repeat: -v info, -vv detail, -vvv debug, -vvvv trace)\n- `--accessible` - Add text labels to color-coded output (due:/deadline:/~ prefixes, \u2605 for favorites). Also: `TD_ACCESSIBLE=1`\n\n## Authentication\n\n```bash\ntd auth login # OAuth login; stores token in OS credential manager\ntd auth token \"your-token\" # Save a manual API token\ntd auth status # Check whether auth works\ntd auth logout # Remove the saved token\nexport TODOIST_API_TOKEN=\"your-token\" # Highest priority; overrides stored token\n```\n\nIf OS credential storage is unavailable, `td` warns and falls back to `~/.config/todoist-cli/config.json`. Legacy plaintext config tokens are migrated automatically when secure storage becomes available.\n\n## References\n\nTasks, projects, labels, and filters can be referenced by:\n- Name (fuzzy matched within context)\n- `id:xxx` - Explicit ID\n- Todoist URL - Paste directly from the web app (e.g., `https://app.todoist.com/app/task/buy-milk-8Jx4mVr72kPn3QwB` or `https://app.todoist.com/app/project/work-2pN7vKx49mRq6YhT`)\n\n## Priority Mapping\n\n- p1 = Highest priority (API value 4)\n- p2 = High priority (API value 3)\n- p3 = Medium priority (API value 2)\n- p4 = Lowest priority (API value 1, default)\n\n## Commands\n\n### Today\n```bash\ntd today # Due today + overdue\ntd today --json # JSON output\ntd today --workspace \"Work\" # Filter to workspace\ntd today --personal # Personal projects only\ntd today --any-assignee # Include tasks assigned to others\n```\n\n### Inbox\n```bash\ntd inbox # Inbox tasks\ntd inbox --priority p1 # Filter by priority\ntd inbox --due today # Filter by due date\n```\n\n### Upcoming\n```bash\ntd upcoming # Next 7 days\ntd upcoming 14 # Next 14 days\ntd upcoming --workspace \"Work\" # Filter to workspace\ntd upcoming --personal # Personal projects only\ntd upcoming --any-assignee # Include tasks assigned to others\n```\n\n### Completed\n```bash\ntd completed # Completed today\ntd completed --since 2024-01-01 --until 2024-01-31\ntd completed --project \"Work\" # Filter by project\n```\n\n### Task Management\n```bash\n# List with filters\ntd task list --project \"Work\"\ntd task list --label \"urgent\" --priority p1\ntd task list --due today\ntd task list --filter \"today | overdue\"\ntd task list --assignee me\ntd task list --assignee \"john@example.com\"\ntd task list --unassigned\ntd task list --workspace \"Work\"\ntd task list --personal\ntd task list --parent \"Parent task\"\n\n# View, complete, uncomplete\ntd task view \"task name\"\ntd task complete \"task name\"\ntd task complete id:123456\ntd task complete \"task name\" --forever # Stop recurrence\ntd task uncomplete id:123456 # Reopen completed task\n\n# Add tasks\ntd task add \"New task\" --due \"tomorrow\" --priority p2\ntd task add \"Task\" --deadline \"2024-03-01\" --project \"Work\"\ntd task add \"Task\" --duration 1h --section \"Planning\" --project \"Work\"\ntd task add \"Task\" --labels \"urgent,review\" --parent \"Parent task\"\ntd task add \"Task\" --description \"Details here\" --assignee me\ntd task add \"My task\" --stdin < description.md # Read description from file\ncat notes.md | td task add \"My task\" --stdin\ntd task add \"Reference header\" --uncompletable # Non-actionable reference/header task\ntd task add \"Reference header\" --order 0 # Pin task to top of project\ntd task add \"New task\" --json # Return created task as JSON\n\n# Update\ntd task update \"task name\" --due \"next week\"\ntd task update \"task name\" --deadline \"2024-06-01\"\ntd task update \"task name\" --no-deadline\ntd task update \"task name\" --duration 2h\ntd task update \"task name\" --assignee \"john@example.com\"\ntd task update \"task name\" --unassign\ntd task update \"task name\" --stdin < description.md # Read description from file\ntd task update \"task name\" --uncompletable # Mark as non-completable reference item\ntd task update \"task name\" --completable # Revert to completable (undo --uncompletable)\ntd task update \"Reference header\" --order 0 # Move task to top of project\ntd task update \"task name\" --content \"New\" --json # Return updated task as JSON\n\n# Reschedule (preserves recurrence patterns, unlike update --due)\ntd task reschedule \"task name\" 2026-03-20 # Date only (YYYY-MM-DD)\ntd task reschedule id:123456 2026-03-20T14:00:00 # With time\ntd task reschedule \"task name\" 2026-03-20 --json # Return as JSON\n\n# Move\ntd task move \"task name\" --project \"Personal\"\ntd task move \"task name\" --section \"In Progress\"\ntd task move \"task name\" --parent \"Parent task\"\ntd task move \"task name\" --no-parent # Move to project root\ntd task move \"task name\" --no-section # Remove from section\n\n# Dry run (preview any mutating command without executing)\ntd task add \"New task\" --due \"tomorrow\" --dry-run # Preview task creation\ntd task delete \"task name\" --dry-run # Preview deletion\n\n# Delete and browse\ntd task delete \"task name\" --yes\ntd task browse \"task name\" # Open in browser\n```\n\n### Projects\n```bash\ntd project list\ntd project list --personal # Personal projects only\ntd project view \"Project Name\"\ntd project collaborators \"Project Name\"\ntd project create --name \"New Project\" --color \"blue\"\ntd project create --name \"New Project\" --json # Return created project as JSON\ntd project update \"Project Name\" --favorite\ntd project update \"Project Name\" --name \"New Name\" --json # Return updated project as JSON\ntd project archive \"Project Name\"\ntd project unarchive \"Project Name\"\ntd project delete \"Project Name\" --yes\ntd project browse \"Project Name\" # Open in browser\ntd project move \"Project Name\" --to-workspace \"Acme\"\ntd project move \"Project Name\" --to-workspace \"Acme\" --folder \"Engineering\"\ntd project move \"Project Name\" --to-workspace \"Acme\" --visibility team\ntd project move \"Project Name\" --to-personal\n# move requires --yes to confirm (without it, shows a dry-run preview)\ntd project create --name \"New Project\" --dry-run # Preview project creation\ntd project delete \"Project Name\" --dry-run # Preview deletion\n```\n\n### Labels\n```bash\ntd label list # Lists personal + shared labels\ntd label view \"urgent\" # View label details and tasks\ntd label view \"team-review\" # Works for shared labels too\ntd label create --name \"urgent\" --color \"red\"\ntd label create --name \"urgent\" --json # Return created label as JSON\ntd label update \"urgent\" --color \"orange\"\ntd label update \"urgent\" --color \"orange\" --json # Return updated label as JSON\ntd label delete \"urgent\" --yes\ntd label create --name \"urgent\" --dry-run # Preview label creation\ntd label browse \"urgent\" # Open in browser\n```\n\nNote: Shared labels (from collaborative projects) appear in `list` and can be viewed, but cannot be deleted/updated via the standard label commands since they have no ID.\n\n### Comments\n```bash\ntd comment list \"task name\"\ntd comment list \"Project Name\" -P # Project comments\ntd comment add \"task name\" --content \"Comment text\"\ntd comment add \"task name\" --content \"Note\" --json # Return created comment as JSON\ntd comment add \"task name\" --stdin < note.md # Read content from file\ncat note.md | td comment add \"task name\" --stdin\ntd comment add \"task name\" --content \"See attached\" --file ./report.pdf\ntd comment view id:123 # View full comment\ntd comment update id:123 --content \"Updated text\"\ntd comment update id:123 --content \"Updated text\" --json # Return updated comment as JSON\ntd comment delete id:123 --yes\ntd comment add \"task name\" --content \"Note\" --dry-run # Preview comment creation\ntd comment browse id:123 # Open in browser\n```\n\n### Sections\n```bash\ntd section list \"Work\" # List sections in project (or --project \"Work\")\ntd section list --project \"Work\" # Same, using named flag\ntd section create --project \"Work\" --name \"In Progress\"\ntd section create --project \"Work\" --name \"In Progress\" --json # Return created section as JSON\ntd section update id:123 --name \"Done\"\ntd section update id:123 --name \"Done\" --json # Return updated section as JSON\ntd section delete id:123 --yes\ntd section create --project \"Work\" --name \"In Progress\" --dry-run # Preview section creation\ntd section browse id:123 # Open in browser\n```\n\n### Filters\n```bash\ntd filter list\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\"\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\" --json # Return created filter as JSON\ntd filter view \"Urgent work\" # Show tasks matching filter (alias: show)\ntd filter update \"Urgent work\" --query \"p1 & #Work & today\"\ntd filter delete \"Urgent work\" --yes\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\" --dry-run # Preview filter creation\ntd filter browse \"Urgent work\" # Open in browser\n```\n\n### Workspaces\n```bash\ntd workspace list\ntd workspace view \"Workspace Name\"\ntd workspace projects \"Workspace Name\" # or --workspace \"Workspace Name\"\ntd workspace users \"Workspace Name\" --role ADMIN,MEMBER # or --workspace \"...\"\n```\n\n### Activity\n```bash\ntd activity # Recent activity\ntd activity --since 2024-01-01 --until 2024-01-31\ntd activity --type task --event completed\ntd activity --project \"Work\"\ntd activity --by me\ntd activity --markdown # LLM-friendly Markdown output\n```\n\n### Notifications\n```bash\ntd notification list\ntd notification list --unread\ntd notification list --type \"item_assign\"\ntd notification view id:123\ntd notification read --all --yes # Mark all as read\ntd notification accept id:123 # Accept share invitation\ntd notification reject id:123 # Reject share invitation\n```\n\n### Reminders\n```bash\ntd reminder list \"task name\" # or --task \"task name\"\ntd reminder add \"task name\" --before 30m # or --task \"task name\" --before 30m\ntd reminder add \"task name\" --before 30m --json # Return created reminder as JSON\ntd reminder add \"task name\" --at \"2024-01-15 10:00\"\ntd reminder update id:123 --before 1h\ntd reminder add \"task name\" --before 30m --dry-run # Preview reminder creation\ntd reminder delete id:123 --yes\n```\n\n### Auth\n```bash\ntd auth status # Check authentication\ntd auth status --json # JSON: { id, email, fullName }\ntd auth login # OAuth login\ntd auth token <token> # Save API token\ntd auth logout # Remove saved token\n```\n\n### Stats\n```bash\ntd stats # View karma and productivity\ntd stats --json\ntd stats goals --daily 10 --weekly 50\ntd stats vacation --on # Enable vacation mode\ntd stats vacation --off # Disable vacation mode\n```\n\n### Settings\n```bash\ntd settings view\ntd settings view --json\ntd settings update --timezone \"America/New_York\"\ntd settings update --time-format 24 --date-format intl\ntd settings themes # List available themes\n```\n\n### Shell Completions\n```bash\ntd completion install # Install tab completions (prompts for shell)\ntd completion install bash # Install for specific shell\ntd completion install zsh\ntd completion install fish\ntd completion uninstall # Remove completions\n```\n\n### View (URL Router)\n```bash\ntd view <todoist-url> # Auto-route to appropriate view by URL type\ntd view https://app.todoist.com/app/task/buy-milk-abc123\ntd view https://app.todoist.com/app/project/work-def456\ntd view https://app.todoist.com/app/label/urgent-ghi789\ntd view https://app.todoist.com/app/filter/work-tasks-jkl012\ntd view https://app.todoist.com/app/today\ntd view https://app.todoist.com/app/upcoming\ntd view <url> --json # JSON output for entity views\ntd view <url> --limit 25 --ndjson # Passthrough list options where supported\n```\n\n### Update\n```bash\ntd update # Update CLI to latest version\ntd update --check # Check for updates without installing\n```\n\n## Examples\n\n### Daily workflow\n```bash\ntd today --json | jq '.results | length' # Count today's tasks\ntd inbox --limit 5 # Quick inbox check\ntd upcoming # What's coming this week\ntd completed # What I finished today\n```\n\n### Filter by multiple criteria\n```bash\ntd task list --project \"Work\" --label \"urgent\" --priority p1\ntd task list --filter \"today & #Work\"\ntd task list --workspace \"Work\" --due today\n```\n\n### Complete tasks efficiently\n```bash\ntd task complete \"Review PR\"\ntd task complete id:123456789\ntd task uncomplete id:123456789 # Reopen if needed\n```\n";
|
|
3
|
+
export declare const SKILL_CONTENT = "# Todoist CLI (td)\n\nUse this skill when the user wants to interact with their Todoist tasks.\n\n## Quick Reference\n\n- `td today` - Tasks due today and overdue\n- `td inbox` - Inbox tasks\n- `td upcoming` - Tasks due in next N days\n- `td completed` - Recently completed tasks\n- `td auth login` - Authenticate and store the token securely\n- `td task add \"content\"` - Add a task\n- `td task list` - List tasks with filters\n- `td task complete <ref>` - Complete a task\n- `td project list` - List projects\n- `td label list` - List labels\n- `td filter list/view` - Manage and use saved filters\n- `td workspace list` - List workspaces\n- `td activity` - Activity logs\n- `td notification list` - Notifications\n- `td reminder add` - Task reminders\n- `td auth status` - Authentication status\n- `td stats` - Productivity stats\n- `td settings view` - User settings\n- `td completion install` - Install shell completions\n- `td attachment view <url>` - View/download a file attachment\n- `td view <url>` - View supported Todoist entities/pages by URL\n- `td update` - Self-update the CLI to the latest version\n- `td changelog` - Show recent changelog entries\n\n## Output Formats\n\nAll list commands support:\n- `--json` - JSON output (essential fields)\n- `--ndjson` - Newline-delimited JSON (streaming)\n- `--full` - Include all fields in JSON\n- `--raw` - Disable markdown rendering\n\nThe following mutating commands also support `--json` to return the created or updated entity as machine-readable JSON instead of plain-text confirmation:\n- `task add`, `task update`\n- `project create`, `project update`\n- `label create`, `label update`\n- `comment add`, `comment update`\n- `section create`, `section update`\n- `filter create`\n- `reminder add`\n\nAll mutating commands support `--dry-run` to preview what would happen without executing:\n- Shows a preview of the action and parameters\n- The mutating action is skipped; read-only API calls may still be made to resolve references\n- On destructive commands (delete, project move) that use `--yes`, `--dry-run` takes precedence: even with `--yes`, the action will not execute\n\n## Shared List Options\n\nMost list commands also support:\n- `--limit <n>` - Limit number of results\n- `--all` - Fetch all results (no limit, not available on `activity`)\n- `--cursor <cursor>` - Continue from pagination cursor\n- `--show-urls` - Show web app URLs for each item\n\n## Global Options\n\n- `--no-spinner` - Disable loading animations\n- `--progress-jsonl` - Machine-readable progress events (JSONL to stderr)\n- `-v, --verbose` - Verbose output to stderr (repeat: -v info, -vv detail, -vvv debug, -vvvv trace)\n- `--accessible` - Add text labels to color-coded output (due:/deadline:/~ prefixes, \u2605 for favorites). Also: `TD_ACCESSIBLE=1`\n\n## Authentication\n\n```bash\ntd auth login # OAuth login; stores token in OS credential manager\ntd auth token \"your-token\" # Save a manual API token\ntd auth status # Check whether auth works\ntd auth logout # Remove the saved token\nexport TODOIST_API_TOKEN=\"your-token\" # Highest priority; overrides stored token\n```\n\nIf OS credential storage is unavailable, `td` warns and falls back to `~/.config/todoist-cli/config.json`. Legacy plaintext config tokens are migrated automatically when secure storage becomes available.\n\n## References\n\nTasks, projects, labels, and filters can be referenced by:\n- Name (fuzzy matched within context)\n- `id:xxx` - Explicit ID\n- Todoist URL - Paste directly from the web app (e.g., `https://app.todoist.com/app/task/buy-milk-8Jx4mVr72kPn3QwB` or `https://app.todoist.com/app/project/work-2pN7vKx49mRq6YhT`)\n\n## Priority Mapping\n\n- p1 = Highest priority (API value 4)\n- p2 = High priority (API value 3)\n- p3 = Medium priority (API value 2)\n- p4 = Lowest priority (API value 1, default)\n\n## Commands\n\n### Today\n```bash\ntd today # Due today + overdue\ntd today --json # JSON output\ntd today --workspace \"Work\" # Filter to workspace\ntd today --personal # Personal projects only\ntd today --any-assignee # Include tasks assigned to others\n```\n\n### Inbox\n```bash\ntd inbox # Inbox tasks\ntd inbox --priority p1 # Filter by priority\ntd inbox --due today # Filter by due date\n```\n\n### Upcoming\n```bash\ntd upcoming # Next 7 days\ntd upcoming 14 # Next 14 days\ntd upcoming --workspace \"Work\" # Filter to workspace\ntd upcoming --personal # Personal projects only\ntd upcoming --any-assignee # Include tasks assigned to others\n```\n\n### Completed\n```bash\ntd completed # Completed today\ntd completed --since 2024-01-01 --until 2024-01-31\ntd completed --project \"Work\" # Filter by project\n```\n\n### Task Management\n```bash\n# List with filters\ntd task list --project \"Work\"\ntd task list --label \"urgent\" --priority p1\ntd task list --due today\ntd task list --filter \"today | overdue\"\ntd task list --assignee me\ntd task list --assignee \"john@example.com\"\ntd task list --unassigned\ntd task list --workspace \"Work\"\ntd task list --personal\ntd task list --parent \"Parent task\"\n\n# View, complete, uncomplete\ntd task view \"task name\"\ntd task complete \"task name\"\ntd task complete id:123456\ntd task complete \"task name\" --forever # Stop recurrence\ntd task uncomplete id:123456 # Reopen completed task\n\n# Add tasks\ntd task add \"New task\" --due \"tomorrow\" --priority p2\ntd task add \"Task\" --deadline \"2024-03-01\" --project \"Work\"\ntd task add \"Task\" --duration 1h --section \"Planning\" --project \"Work\"\ntd task add \"Task\" --labels \"urgent,review\" --parent \"Parent task\"\ntd task add \"Task\" --description \"Details here\" --assignee me\ntd task add \"My task\" --stdin < description.md # Read description from file\ncat notes.md | td task add \"My task\" --stdin\ntd task add \"Reference header\" --uncompletable # Non-actionable reference/header task\ntd task add \"Reference header\" --order 0 # Pin task to top of project\ntd task add \"New task\" --json # Return created task as JSON\n\n# Update\ntd task update \"task name\" --due \"next week\"\ntd task update \"task name\" --deadline \"2024-06-01\"\ntd task update \"task name\" --no-deadline\ntd task update \"task name\" --duration 2h\ntd task update \"task name\" --assignee \"john@example.com\"\ntd task update \"task name\" --unassign\ntd task update \"task name\" --stdin < description.md # Read description from file\ntd task update \"task name\" --uncompletable # Mark as non-completable reference item\ntd task update \"task name\" --completable # Revert to completable (undo --uncompletable)\ntd task update \"Reference header\" --order 0 # Move task to top of project\ntd task update \"task name\" --content \"New\" --json # Return updated task as JSON\n\n# Reschedule (preserves recurrence patterns, unlike update --due)\ntd task reschedule \"task name\" 2026-03-20 # Date only (YYYY-MM-DD)\ntd task reschedule id:123456 2026-03-20T14:00:00 # With time\ntd task reschedule \"task name\" 2026-03-20 --json # Return as JSON\n\n# Move\ntd task move \"task name\" --project \"Personal\"\ntd task move \"task name\" --section \"In Progress\"\ntd task move \"task name\" --parent \"Parent task\"\ntd task move \"task name\" --no-parent # Move to project root\ntd task move \"task name\" --no-section # Remove from section\n\n# Dry run (preview any mutating command without executing)\ntd task add \"New task\" --due \"tomorrow\" --dry-run # Preview task creation\ntd task delete \"task name\" --dry-run # Preview deletion\n\n# Delete and browse\ntd task delete \"task name\" --yes\ntd task browse \"task name\" # Open in browser\n```\n\n### Projects\n```bash\ntd project list\ntd project list --personal # Personal projects only\ntd project view \"Project Name\"\ntd project collaborators \"Project Name\"\ntd project create --name \"New Project\" --color \"blue\"\ntd project create --name \"New Project\" --json # Return created project as JSON\ntd project update \"Project Name\" --favorite\ntd project update \"Project Name\" --name \"New Name\" --json # Return updated project as JSON\ntd project archive \"Project Name\"\ntd project unarchive \"Project Name\"\ntd project delete \"Project Name\" --yes\ntd project browse \"Project Name\" # Open in browser\ntd project move \"Project Name\" --to-workspace \"Acme\"\ntd project move \"Project Name\" --to-workspace \"Acme\" --folder \"Engineering\"\ntd project move \"Project Name\" --to-workspace \"Acme\" --visibility team\ntd project move \"Project Name\" --to-personal\n# move requires --yes to confirm (without it, shows a dry-run preview)\ntd project create --name \"New Project\" --dry-run # Preview project creation\ntd project delete \"Project Name\" --dry-run # Preview deletion\n```\n\n### Labels\n```bash\ntd label list # Lists personal + shared labels\ntd label view \"urgent\" # View label details and tasks\ntd label view \"team-review\" # Works for shared labels too\ntd label create --name \"urgent\" --color \"red\"\ntd label create --name \"urgent\" --json # Return created label as JSON\ntd label update \"urgent\" --color \"orange\"\ntd label update \"urgent\" --color \"orange\" --json # Return updated label as JSON\ntd label delete \"urgent\" --yes\ntd label create --name \"urgent\" --dry-run # Preview label creation\ntd label browse \"urgent\" # Open in browser\n```\n\nNote: Shared labels (from collaborative projects) appear in `list` and can be viewed, but cannot be deleted/updated via the standard label commands since they have no ID.\n\n### Comments\n```bash\ntd comment list \"task name\"\ntd comment list \"Project Name\" -P # Project comments\ntd comment add \"task name\" --content \"Comment text\"\ntd comment add \"task name\" --content \"Note\" --json # Return created comment as JSON\ntd comment add \"task name\" --stdin < note.md # Read content from file\ncat note.md | td comment add \"task name\" --stdin\ntd comment add \"task name\" --content \"See attached\" --file ./report.pdf\ntd comment view id:123 # View full comment\ntd comment update id:123 --content \"Updated text\"\ntd comment update id:123 --content \"Updated text\" --json # Return updated comment as JSON\ntd comment delete id:123 --yes\ntd comment add \"task name\" --content \"Note\" --dry-run # Preview comment creation\ntd comment browse id:123 # Open in browser\n```\n\n### Attachments\n```bash\ntd attachment view \"https://files.todoist.com/...\" # Fetch and display attachment content\ntd attachment view \"https://files.todoist.com/...\" --json # JSON output with metadata + content\n```\n\nText files are output directly to stdout. Images and binary files are output as base64.\nWith `--json`, returns: `fileName`, `fileSize`, `contentType`, `contentCategory`, `encoding` (`utf-8` or `base64`), `content`.\nThe file URL comes from a comment's `fileAttachment.fileUrl` field (visible in `td comment list --json` output).\n10MB file size limit.\n\n### Sections\n```bash\ntd section list \"Work\" # List sections in project (or --project \"Work\")\ntd section list --project \"Work\" # Same, using named flag\ntd section create --project \"Work\" --name \"In Progress\"\ntd section create --project \"Work\" --name \"In Progress\" --json # Return created section as JSON\ntd section update id:123 --name \"Done\"\ntd section update id:123 --name \"Done\" --json # Return updated section as JSON\ntd section delete id:123 --yes\ntd section create --project \"Work\" --name \"In Progress\" --dry-run # Preview section creation\ntd section browse id:123 # Open in browser\n```\n\n### Filters\n```bash\ntd filter list\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\"\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\" --json # Return created filter as JSON\ntd filter view \"Urgent work\" # Show tasks matching filter (alias: show)\ntd filter update \"Urgent work\" --query \"p1 & #Work & today\"\ntd filter delete \"Urgent work\" --yes\ntd filter create --name \"Urgent work\" --query \"p1 & #Work\" --dry-run # Preview filter creation\ntd filter browse \"Urgent work\" # Open in browser\n```\n\n### Workspaces\n```bash\ntd workspace list\ntd workspace view \"Workspace Name\"\ntd workspace projects \"Workspace Name\" # or --workspace \"Workspace Name\"\ntd workspace users \"Workspace Name\" --role ADMIN,MEMBER # or --workspace \"...\"\n```\n\n### Activity\n```bash\ntd activity # Recent activity\ntd activity --since 2024-01-01 --until 2024-01-31\ntd activity --type task --event completed\ntd activity --project \"Work\"\ntd activity --by me\ntd activity --markdown # LLM-friendly Markdown output\n```\n\n### Notifications\n```bash\ntd notification list\ntd notification list --unread\ntd notification list --type \"item_assign\"\ntd notification view id:123\ntd notification read --all --yes # Mark all as read\ntd notification accept id:123 # Accept share invitation\ntd notification reject id:123 # Reject share invitation\n```\n\n### Reminders\n```bash\ntd reminder list \"task name\" # or --task \"task name\"\ntd reminder add \"task name\" --before 30m # or --task \"task name\" --before 30m\ntd reminder add \"task name\" --before 30m --json # Return created reminder as JSON\ntd reminder add \"task name\" --at \"2024-01-15 10:00\"\ntd reminder update id:123 --before 1h\ntd reminder add \"task name\" --before 30m --dry-run # Preview reminder creation\ntd reminder delete id:123 --yes\n```\n\n### Auth\n```bash\ntd auth status # Check authentication\ntd auth status --json # JSON: { id, email, fullName }\ntd auth login # OAuth login\ntd auth token <token> # Save API token\ntd auth logout # Remove saved token\n```\n\n### Stats\n```bash\ntd stats # View karma and productivity\ntd stats --json\ntd stats goals --daily 10 --weekly 50\ntd stats vacation --on # Enable vacation mode\ntd stats vacation --off # Disable vacation mode\n```\n\n### Settings\n```bash\ntd settings view\ntd settings view --json\ntd settings update --timezone \"America/New_York\"\ntd settings update --time-format 24 --date-format intl\ntd settings themes # List available themes\n```\n\n### Shell Completions\n```bash\ntd completion install # Install tab completions (prompts for shell)\ntd completion install bash # Install for specific shell\ntd completion install zsh\ntd completion install fish\ntd completion uninstall # Remove completions\n```\n\n### View (URL Router)\n```bash\ntd view <todoist-url> # Auto-route to appropriate view by URL type\ntd view https://app.todoist.com/app/task/buy-milk-abc123\ntd view https://app.todoist.com/app/project/work-def456\ntd view https://app.todoist.com/app/label/urgent-ghi789\ntd view https://app.todoist.com/app/filter/work-tasks-jkl012\ntd view https://app.todoist.com/app/today\ntd view https://app.todoist.com/app/upcoming\ntd view <url> --json # JSON output for entity views\ntd view <url> --limit 25 --ndjson # Passthrough list options where supported\n```\n\n### Update\n```bash\ntd update # Update CLI to latest version\ntd update --check # Check for updates without installing\n```\n\n### Changelog\n```bash\ntd changelog # Show last 5 versions\ntd changelog -n 3 # Show last 3 versions\ntd changelog --count 10 # Show last 10 versions\n```\n\n## Examples\n\n### Daily workflow\n```bash\ntd today --json | jq '.results | length' # Count today's tasks\ntd inbox --limit 5 # Quick inbox check\ntd upcoming # What's coming this week\ntd completed # What I finished today\n```\n\n### Filter by multiple criteria\n```bash\ntd task list --project \"Work\" --label \"urgent\" --priority p1\ntd task list --filter \"today & #Work\"\ntd task list --workspace \"Work\" --due today\n```\n\n### Complete tasks efficiently\n```bash\ntd task complete \"Review PR\"\ntd task complete id:123456789\ntd task uncomplete id:123456789 # Reopen if needed\n```\n";
|
|
4
4
|
//# sourceMappingURL=content.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,gBAAgB,CAAA;AACvC,eAAO,MAAM,iBAAiB,8EACiD,CAAA;AAE/E,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,gBAAgB,CAAA;AACvC,eAAO,MAAM,iBAAiB,8EACiD,CAAA;AAE/E,eAAO,MAAM,aAAa,88hBA2ZzB,CAAA"}
|
|
@@ -25,8 +25,10 @@ Use this skill when the user wants to interact with their Todoist tasks.
|
|
|
25
25
|
- \`td stats\` - Productivity stats
|
|
26
26
|
- \`td settings view\` - User settings
|
|
27
27
|
- \`td completion install\` - Install shell completions
|
|
28
|
+
- \`td attachment view <url>\` - View/download a file attachment
|
|
28
29
|
- \`td view <url>\` - View supported Todoist entities/pages by URL
|
|
29
30
|
- \`td update\` - Self-update the CLI to the latest version
|
|
31
|
+
- \`td changelog\` - Show recent changelog entries
|
|
30
32
|
|
|
31
33
|
## Output Formats
|
|
32
34
|
|
|
@@ -248,6 +250,17 @@ td comment add "task name" --content "Note" --dry-run # Preview comment creatio
|
|
|
248
250
|
td comment browse id:123 # Open in browser
|
|
249
251
|
\`\`\`
|
|
250
252
|
|
|
253
|
+
### Attachments
|
|
254
|
+
\`\`\`bash
|
|
255
|
+
td attachment view "https://files.todoist.com/..." # Fetch and display attachment content
|
|
256
|
+
td attachment view "https://files.todoist.com/..." --json # JSON output with metadata + content
|
|
257
|
+
\`\`\`
|
|
258
|
+
|
|
259
|
+
Text files are output directly to stdout. Images and binary files are output as base64.
|
|
260
|
+
With \`--json\`, returns: \`fileName\`, \`fileSize\`, \`contentType\`, \`contentCategory\`, \`encoding\` (\`utf-8\` or \`base64\`), \`content\`.
|
|
261
|
+
The file URL comes from a comment's \`fileAttachment.fileUrl\` field (visible in \`td comment list --json\` output).
|
|
262
|
+
10MB file size limit.
|
|
263
|
+
|
|
251
264
|
### Sections
|
|
252
265
|
\`\`\`bash
|
|
253
266
|
td section list "Work" # List sections in project (or --project "Work")
|
|
@@ -368,6 +381,13 @@ td update # Update CLI to latest version
|
|
|
368
381
|
td update --check # Check for updates without installing
|
|
369
382
|
\`\`\`
|
|
370
383
|
|
|
384
|
+
### Changelog
|
|
385
|
+
\`\`\`bash
|
|
386
|
+
td changelog # Show last 5 versions
|
|
387
|
+
td changelog -n 3 # Show last 3 versions
|
|
388
|
+
td changelog --count 10 # Show last 10 versions
|
|
389
|
+
\`\`\`
|
|
390
|
+
|
|
371
391
|
## Examples
|
|
372
392
|
|
|
373
393
|
### Daily workflow
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAC1B,2EAA2E,CAAA;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAC1B,2EAA2E,CAAA;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Z5B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doist/todoist-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.28.0",
|
|
4
4
|
"description": "TypeScript CLI for Todoist",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -44,10 +44,11 @@
|
|
|
44
44
|
"node": ">=20"
|
|
45
45
|
},
|
|
46
46
|
"files": [
|
|
47
|
-
"dist"
|
|
47
|
+
"dist",
|
|
48
|
+
"CHANGELOG.md"
|
|
48
49
|
],
|
|
49
50
|
"dependencies": {
|
|
50
|
-
"@doist/todoist-api-typescript": "7.
|
|
51
|
+
"@doist/todoist-api-typescript": "7.2.0",
|
|
51
52
|
"@napi-rs/keyring": "1.2.0",
|
|
52
53
|
"@pnpm/tabtab": "0.5.4",
|
|
53
54
|
"chalk": "5.6.2",
|