@todoist/outline-cli 0.0.1 → 3.0.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.
Files changed (108) hide show
  1. package/CHANGELOG.md +359 -0
  2. package/README.md +145 -29
  3. package/dist/commands/account.d.ts +2 -0
  4. package/dist/commands/account.js +107 -0
  5. package/dist/commands/account.js.map +1 -0
  6. package/dist/commands/auth.d.ts +2 -0
  7. package/dist/commands/auth.js +169 -0
  8. package/dist/commands/auth.js.map +1 -0
  9. package/dist/commands/changelog.d.ts +2 -0
  10. package/dist/commands/changelog.js +15 -0
  11. package/dist/commands/changelog.js.map +1 -0
  12. package/dist/commands/collection.d.ts +2 -0
  13. package/dist/commands/collection.js +106 -0
  14. package/dist/commands/collection.js.map +1 -0
  15. package/dist/commands/document.d.ts +2 -0
  16. package/dist/commands/document.js +291 -0
  17. package/dist/commands/document.js.map +1 -0
  18. package/dist/commands/search.d.ts +2 -0
  19. package/dist/commands/search.js +49 -0
  20. package/dist/commands/search.js.map +1 -0
  21. package/dist/commands/skill.d.ts +2 -0
  22. package/dist/commands/skill.js +80 -0
  23. package/dist/commands/skill.js.map +1 -0
  24. package/dist/commands/update/index.d.ts +2 -0
  25. package/dist/commands/update/index.js +14 -0
  26. package/dist/commands/update/index.js.map +1 -0
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.js +56 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/lib/api.d.ts +18 -0
  31. package/dist/lib/api.js +107 -0
  32. package/dist/lib/api.js.map +1 -0
  33. package/dist/lib/auth-constants.d.ts +18 -0
  34. package/dist/lib/auth-constants.js +25 -0
  35. package/dist/lib/auth-constants.js.map +1 -0
  36. package/dist/lib/auth-output.d.ts +21 -0
  37. package/dist/lib/auth-output.js +38 -0
  38. package/dist/lib/auth-output.js.map +1 -0
  39. package/dist/lib/auth-pages.d.ts +2 -0
  40. package/dist/lib/auth-pages.js +101 -0
  41. package/dist/lib/auth-pages.js.map +1 -0
  42. package/dist/lib/auth-provider.d.ts +85 -0
  43. package/dist/lib/auth-provider.js +363 -0
  44. package/dist/lib/auth-provider.js.map +1 -0
  45. package/dist/lib/auth.d.ts +73 -0
  46. package/dist/lib/auth.js +188 -0
  47. package/dist/lib/auth.js.map +1 -0
  48. package/dist/lib/config.d.ts +45 -0
  49. package/dist/lib/config.js +20 -0
  50. package/dist/lib/config.js.map +1 -0
  51. package/dist/lib/errors.d.ts +8 -0
  52. package/dist/lib/errors.js +9 -0
  53. package/dist/lib/errors.js.map +1 -0
  54. package/dist/lib/global-args.d.ts +30 -0
  55. package/dist/lib/global-args.js +66 -0
  56. package/dist/lib/global-args.js.map +1 -0
  57. package/dist/lib/markdown.d.ts +2 -0
  58. package/dist/lib/markdown.js +12 -0
  59. package/dist/lib/markdown.js.map +1 -0
  60. package/dist/lib/migrate-auth.d.ts +11 -0
  61. package/dist/lib/migrate-auth.js +92 -0
  62. package/dist/lib/migrate-auth.js.map +1 -0
  63. package/dist/lib/outline-account.d.ts +32 -0
  64. package/dist/lib/outline-account.js +22 -0
  65. package/dist/lib/outline-account.js.map +1 -0
  66. package/dist/lib/output.d.ts +15 -0
  67. package/dist/lib/output.js +85 -0
  68. package/dist/lib/output.js.map +1 -0
  69. package/dist/lib/refs.d.ts +33 -0
  70. package/dist/lib/refs.js +182 -0
  71. package/dist/lib/refs.js.map +1 -0
  72. package/dist/lib/skills/content.d.ts +3 -0
  73. package/dist/lib/skills/content.js +160 -0
  74. package/dist/lib/skills/content.js.map +1 -0
  75. package/dist/lib/skills/create-installer.d.ts +9 -0
  76. package/dist/lib/skills/create-installer.js +77 -0
  77. package/dist/lib/skills/create-installer.js.map +1 -0
  78. package/dist/lib/skills/index.d.ts +5 -0
  79. package/dist/lib/skills/index.js +40 -0
  80. package/dist/lib/skills/index.js.map +1 -0
  81. package/dist/lib/skills/types.d.ts +10 -0
  82. package/dist/lib/skills/types.js +2 -0
  83. package/dist/lib/skills/types.js.map +1 -0
  84. package/dist/lib/skills/update-installed.d.ts +6 -0
  85. package/dist/lib/skills/update-installed.js +23 -0
  86. package/dist/lib/skills/update-installed.js.map +1 -0
  87. package/dist/lib/spinner.d.ts +2 -0
  88. package/dist/lib/spinner.js +5 -0
  89. package/dist/lib/spinner.js.map +1 -0
  90. package/dist/lib/user-records.d.ts +21 -0
  91. package/dist/lib/user-records.js +126 -0
  92. package/dist/lib/user-records.js.map +1 -0
  93. package/dist/lib/user-ref-store.d.ts +16 -0
  94. package/dist/lib/user-ref-store.js +37 -0
  95. package/dist/lib/user-ref-store.js.map +1 -0
  96. package/dist/postinstall.d.ts +1 -0
  97. package/dist/postinstall.js +16 -0
  98. package/dist/postinstall.js.map +1 -0
  99. package/dist/transport/fetch-with-retry.d.ts +15 -0
  100. package/dist/transport/fetch-with-retry.js +144 -0
  101. package/dist/transport/fetch-with-retry.js.map +1 -0
  102. package/dist/transport/http-dispatcher.d.ts +37 -0
  103. package/dist/transport/http-dispatcher.js +95 -0
  104. package/dist/transport/http-dispatcher.js.map +1 -0
  105. package/package.json +71 -8
  106. package/scripts/check-skill-sync.js +40 -0
  107. package/scripts/postinstall.js +12 -0
  108. package/scripts/sync-skill.js +30 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,359 @@
1
+ ## [3.0.0](https://github.com/todoist/outline-cli/compare/v2.5.4...v3.0.0) (2026-11-11)
2
+
3
+ ### ⚠ BREAKING CHANGES
4
+
5
+ * publish as @todoist/outline-cli (#174)
6
+
7
+ ### Features
8
+
9
+ * publish as @todoist/outline-cli ([#174](https://github.com/todoist/outline-cli/issues/174)) ([d1ddf8b](https://github.com/todoist/outline-cli/commit/d1ddf8b7d331bbbf4e9e13a3f20763de560ff512))
10
+
11
+ ## [2.5.4](https://github.com/todoist/outline-cli/compare/v2.5.3...v2.5.4) (2026-11-11)
12
+
13
+ ### Bug Fixes
14
+
15
+ * **ci:** use the todoist GitHub org after the rename ([#173](https://github.com/todoist/outline-cli/issues/173)) ([b9938ef](https://github.com/todoist/outline-cli/commit/b9938efe45f9188a9c1bfaf45e27b87ca34bb9c9))
16
+
17
+ ## [2.5.3](https://github.com/Doist/outline-cli/compare/v2.5.2...v2.5.3) (2026-11-11)
18
+
19
+ ### Bug Fixes
20
+
21
+ * **deps:** update dependency @doist/cli-core to v1.10.0 ([#172](https://github.com/Doist/outline-cli/issues/172)) ([6acaa6a](https://github.com/Doist/outline-cli/commit/6acaa6a6e15dcbb3e7506a15c772b17fb621b6d0))
22
+
23
+ ## [2.5.2](https://github.com/Doist/outline-cli/compare/v2.5.1...v2.5.2) (2026-11-10)
24
+
25
+ ### Bug Fixes
26
+
27
+ * **deps:** update dependency undici to v7.30.2 ([#171](https://github.com/Doist/outline-cli/issues/171)) ([c8d92d7](https://github.com/Doist/outline-cli/commit/c8d92d7e80b7469eeb42e271a3a16217cfce359d))
28
+
29
+ ## [2.5.1](https://github.com/Doist/outline-cli/compare/v2.5.0...v2.5.1) (2026-11-09)
30
+
31
+ ### Bug Fixes
32
+
33
+ * **deps:** update dependency marked to v18.1.3 ([#168](https://github.com/Doist/outline-cli/issues/168)) ([b1a1d23](https://github.com/Doist/outline-cli/commit/b1a1d237059d31f5ea6646d7e1598f43211d5683))
34
+
35
+ ## [2.5.0](https://github.com/Doist/outline-cli/compare/v2.4.0...v2.5.0) (2026-11-07)
36
+
37
+ ### Features
38
+
39
+ * read markdown from stdin with `--stdin` ([#166](https://github.com/Doist/outline-cli/issues/166)) ([c82d17e](https://github.com/Doist/outline-cli/commit/c82d17e2963ea9ebb49520c68f4de0052ea30712))
40
+
41
+ ## [2.4.0](https://github.com/Doist/outline-cli/compare/v2.3.2...v2.4.0) (2026-11-07)
42
+
43
+ ### Features
44
+
45
+ * add `doc restore` to restore documents from the trash ([#165](https://github.com/Doist/outline-cli/issues/165)) ([b1e86eb](https://github.com/Doist/outline-cli/commit/b1e86eb21ef299e6b2c524eddeadc55b0b092c02))
46
+
47
+ ## [2.3.2](https://github.com/Doist/outline-cli/compare/v2.3.1...v2.3.2) (2026-11-02)
48
+
49
+ ### Bug Fixes
50
+
51
+ * **deps:** update dependency marked to v18.1.2 ([#162](https://github.com/Doist/outline-cli/issues/162)) ([a73eae3](https://github.com/Doist/outline-cli/commit/a73eae3c05e039be19c2e0dbc803f45f7c9520c9))
52
+
53
+ ## [2.3.1](https://github.com/Doist/outline-cli/compare/v2.3.0...v2.3.1) (2026-10-24)
54
+
55
+ ### Bug Fixes
56
+
57
+ * **deps:** update dependency @doist/cli-core to v1.7.2 ([#159](https://github.com/Doist/outline-cli/issues/159)) ([3e54b58](https://github.com/Doist/outline-cli/commit/3e54b58c482972dff1f00d9dc408cdd9092773ff)), closes [Doist/cli-core#155](https://github.com/Doist/cli-core/issues/155) [Doist/todoist-cli#577](https://github.com/Doist/todoist-cli/issues/577)
58
+
59
+ ## [2.3.0](https://github.com/Doist/outline-cli/compare/v2.2.0...v2.3.0) (2026-10-23)
60
+
61
+ ### Features
62
+
63
+ * add `doc update --if-updated-at` to refuse overwriting newer changes ([#157](https://github.com/Doist/outline-cli/issues/157)) ([7fd2e15](https://github.com/Doist/outline-cli/commit/7fd2e15c89ac5af7a779d6517778867d863bc3a2))
64
+
65
+ ## [2.2.0](https://github.com/Doist/outline-cli/compare/v2.1.12...v2.2.0) (2026-10-23)
66
+
67
+ ### Features
68
+
69
+ * add `doc update --publish` to publish drafts ([#156](https://github.com/Doist/outline-cli/issues/156)) ([e155c92](https://github.com/Doist/outline-cli/commit/e155c92f7c02ace1e8693e546debd7a9077d39b5))
70
+
71
+ ## [2.1.12](https://github.com/Doist/outline-cli/compare/v2.1.11...v2.1.12) (2026-10-23)
72
+
73
+ ### Bug Fixes
74
+
75
+ * resolve document refs from browser URLs with anchors, queries or trailing paths ([#155](https://github.com/Doist/outline-cli/issues/155)) ([78b0087](https://github.com/Doist/outline-cli/commit/78b008750500ddf54adb6172fc151e0fdef2e647))
76
+
77
+ ## [2.1.11](https://github.com/Doist/outline-cli/compare/v2.1.10...v2.1.11) (2026-10-21)
78
+
79
+ ### Bug Fixes
80
+
81
+ * **deps:** update dependency undici to v7.30.1 ([#154](https://github.com/Doist/outline-cli/issues/154)) ([2dc878d](https://github.com/Doist/outline-cli/commit/2dc878dedea498c862819aede563c51372648887))
82
+
83
+ ## [2.1.10](https://github.com/Doist/outline-cli/compare/v2.1.9...v2.1.10) (2026-10-20)
84
+
85
+ ### Bug Fixes
86
+
87
+ * **deps:** update dependency marked to v18.1.1 ([#151](https://github.com/Doist/outline-cli/issues/151)) ([d4c9013](https://github.com/Doist/outline-cli/commit/d4c9013296e7bd7b6d7d9cbcd93b147590122b4b))
88
+
89
+ ## [2.1.9](https://github.com/Doist/outline-cli/compare/v2.1.8...v2.1.9) (2026-10-14)
90
+
91
+ ### Bug Fixes
92
+
93
+ * **search:** accept --offset, which the more-results hint suggests ([#148](https://github.com/Doist/outline-cli/issues/148)) ([0b3dc79](https://github.com/Doist/outline-cli/commit/0b3dc79222fe52c19f3329f8bedd2c747b32e104))
94
+
95
+ ## [2.1.8](https://github.com/Doist/outline-cli/compare/v2.1.7...v2.1.8) (2026-10-12)
96
+
97
+ ### Bug Fixes
98
+
99
+ * **deps:** update dependency marked to v18.1.0 ([#145](https://github.com/Doist/outline-cli/issues/145)) ([c5043ac](https://github.com/Doist/outline-cli/commit/c5043aca1bf05e541c71e9dd87c91e0c637280e9))
100
+
101
+ ## [2.1.7](https://github.com/Doist/outline-cli/compare/v2.1.6...v2.1.7) (2026-10-02)
102
+
103
+ ### Bug Fixes
104
+
105
+ * **deps:** update dependency chalk to v6.0.1 ([#137](https://github.com/Doist/outline-cli/issues/137)) ([66cdac7](https://github.com/Doist/outline-cli/commit/66cdac7a29ec08217ab8c80165b2764bc1289bd2))
106
+
107
+ ## [2.1.6](https://github.com/Doist/outline-cli/compare/v2.1.5...v2.1.6) (2026-10-01)
108
+
109
+ ### Bug Fixes
110
+
111
+ * **deps:** update dependency undici to v7.30.0 ([#136](https://github.com/Doist/outline-cli/issues/136)) ([23acd1d](https://github.com/Doist/outline-cli/commit/23acd1d94f6ba5a792550b10b2ef8f6cb87a3f43))
112
+
113
+ ## [2.1.5](https://github.com/Doist/outline-cli/compare/v2.1.4...v2.1.5) (2026-09-30)
114
+
115
+ ### Bug Fixes
116
+
117
+ * **deps:** update dependency @doist/cli-core to v1.7.0 ([#134](https://github.com/Doist/outline-cli/issues/134)) ([0bad4c9](https://github.com/Doist/outline-cli/commit/0bad4c9bda026ea68f3d0d6913bd7d6c0cea3f34))
118
+
119
+ ## [2.1.4](https://github.com/Doist/outline-cli/compare/v2.1.3...v2.1.4) (2026-09-29)
120
+
121
+ ### Bug Fixes
122
+
123
+ * **deps:** update dependency marked to v18.0.14 ([#132](https://github.com/Doist/outline-cli/issues/132)) ([bac5f8e](https://github.com/Doist/outline-cli/commit/bac5f8e24b39dda6283722bce7a1442f7c96a5cd))
124
+
125
+ ## [2.1.3](https://github.com/Doist/outline-cli/compare/v2.1.2...v2.1.3) (2026-09-22)
126
+
127
+ ### Bug Fixes
128
+
129
+ * **deps:** update dependency open to v11.0.4 ([#129](https://github.com/Doist/outline-cli/issues/129)) ([0c97777](https://github.com/Doist/outline-cli/commit/0c977770ccc58c3f2814efc994427d2ef7ede9c5))
130
+
131
+ ## [2.1.2](https://github.com/Doist/outline-cli/compare/v2.1.1...v2.1.2) (2026-09-18)
132
+
133
+ ### Bug Fixes
134
+
135
+ * **deps:** update dependency marked to v18.0.13 ([#125](https://github.com/Doist/outline-cli/issues/125)) ([6e092d9](https://github.com/Doist/outline-cli/commit/6e092d9fac39778deca4def3614669b2c97cf36f))
136
+
137
+ ## [2.1.1](https://github.com/Doist/outline-cli/compare/v2.1.0...v2.1.1) (2026-09-17)
138
+
139
+ ### Bug Fixes
140
+
141
+ * **deps:** update dependency open to v11.0.3 ([#124](https://github.com/Doist/outline-cli/issues/124)) ([53b8d97](https://github.com/Doist/outline-cli/commit/53b8d97bf8f70dded0c1d7f44242c168ced1c10f))
142
+
143
+ ## [2.1.0](https://github.com/Doist/outline-cli/compare/v2.0.9...v2.1.0) (2026-09-16)
144
+
145
+ ### Features
146
+
147
+ * **auth:** refresh an expiring OAuth token before `token view` / `status` ([#123](https://github.com/Doist/outline-cli/issues/123)) ([2584eaf](https://github.com/Doist/outline-cli/commit/2584eaf33f0368285ee47e4d3d94adcd6696d66f))
148
+
149
+ ## [2.0.9](https://github.com/Doist/outline-cli/compare/v2.0.8...v2.0.9) (2026-09-15)
150
+
151
+ ### Bug Fixes
152
+
153
+ * **deps:** update dependency @doist/cli-core to v1.5.0 ([#121](https://github.com/Doist/outline-cli/issues/121)) ([ebf2ac8](https://github.com/Doist/outline-cli/commit/ebf2ac82c1b64b3f5da3554b4bb62d26e3e79e3f))
154
+
155
+ ## [2.0.8](https://github.com/Doist/outline-cli/compare/v2.0.7...v2.0.8) (2026-09-14)
156
+
157
+ ### Bug Fixes
158
+
159
+ * **deps:** update dependency marked to v18.0.12 ([#119](https://github.com/Doist/outline-cli/issues/119)) ([fa615c5](https://github.com/Doist/outline-cli/commit/fa615c5bf4cfcb99a3f320e79e9880ee4330ed08))
160
+
161
+ ## [2.0.7](https://github.com/Doist/outline-cli/compare/v2.0.6...v2.0.7) (2026-09-11)
162
+
163
+ ### Bug Fixes
164
+
165
+ * **deps:** update dependency oauth4webapi to v3.8.8 ([#118](https://github.com/Doist/outline-cli/issues/118)) ([bdbdb0b](https://github.com/Doist/outline-cli/commit/bdbdb0baf954b2ee2157a8e655c617a9d010f086))
166
+
167
+ ## [2.0.6](https://github.com/Doist/outline-cli/compare/v2.0.5...v2.0.6) (2026-09-10)
168
+
169
+ ### Bug Fixes
170
+
171
+ * **deps:** update dependency undici to v7.29.1 ([#117](https://github.com/Doist/outline-cli/issues/117)) ([f961e02](https://github.com/Doist/outline-cli/commit/f961e0217ab3bc371f5a9589581f9eab23c01a68))
172
+
173
+ ## [2.0.5](https://github.com/Doist/outline-cli/compare/v2.0.4...v2.0.5) (2026-09-04)
174
+
175
+ ### Bug Fixes
176
+
177
+ * **deps:** update dependency open to v11.0.2 ([#114](https://github.com/Doist/outline-cli/issues/114)) ([7af2e84](https://github.com/Doist/outline-cli/commit/7af2e842aee6dc3f91b2d537737045687fbe912a))
178
+
179
+ ## [2.0.4](https://github.com/Doist/outline-cli/compare/v2.0.3...v2.0.4) (2026-08-29)
180
+
181
+ ### Bug Fixes
182
+
183
+ * **deps:** update dependency marked to v18.0.11 ([#111](https://github.com/Doist/outline-cli/issues/111)) ([535077a](https://github.com/Doist/outline-cli/commit/535077affb092a85c38bb807283cfe19b7d3db6b))
184
+
185
+ ## [2.0.3](https://github.com/Doist/outline-cli/compare/v2.0.2...v2.0.3) (2026-08-28)
186
+
187
+ ### Bug Fixes
188
+
189
+ * **deps:** update dependency chalk to v6 ([#107](https://github.com/Doist/outline-cli/issues/107)) ([0cff6e4](https://github.com/Doist/outline-cli/commit/0cff6e4b7e7718047fe7178172a6fd6218c67927))
190
+
191
+ ## [2.0.2](https://github.com/Doist/outline-cli/compare/v2.0.1...v2.0.2) (2026-08-28)
192
+
193
+ ### Bug Fixes
194
+
195
+ * **deps:** update dependency commander to v15 ([#108](https://github.com/Doist/outline-cli/issues/108)) ([3f82933](https://github.com/Doist/outline-cli/commit/3f82933964955c588caf54515d4a1f75d99ffa2e))
196
+ * **deps:** update dependency open to v11 ([#109](https://github.com/Doist/outline-cli/issues/109)) ([23d2525](https://github.com/Doist/outline-cli/commit/23d2525f3c91f547369b2d07cc79a5240ac07274))
197
+
198
+ ## [2.0.1](https://github.com/Doist/outline-cli/compare/v2.0.0...v2.0.1) (2026-08-28)
199
+
200
+ ### Bug Fixes
201
+
202
+ * **deps:** pin dependency undici to 7.29.0 ([#94](https://github.com/Doist/outline-cli/issues/94)) ([1049dec](https://github.com/Doist/outline-cli/commit/1049dec715dd77ecb6621cebe068b3a06a5d2d89))
203
+ * **deps:** update dependency marked to v18.0.10 ([#100](https://github.com/Doist/outline-cli/issues/100)) ([b57defd](https://github.com/Doist/outline-cli/commit/b57defd917f1e63a765baf13b04832cfe87899fd))
204
+ * **deps:** update dependency oauth4webapi to v3.8.7 ([#101](https://github.com/Doist/outline-cli/issues/101)) ([5e456b7](https://github.com/Doist/outline-cli/commit/5e456b7cd2a0966c72b28e533b6ab564d38ca6b6))
205
+
206
+ ## [2.0.0](https://github.com/Doist/outline-cli/compare/v1.10.5...v2.0.0) (2026-08-27)
207
+
208
+ ### ⚠ BREAKING CHANGES
209
+
210
+ * update @doist/cli-core to 1.4.0 and require Node 24 (#93)
211
+
212
+ ### Features
213
+
214
+ * update @doist/cli-core to 1.4.0 and require Node 24 ([#93](https://github.com/Doist/outline-cli/issues/93)) ([e695029](https://github.com/Doist/outline-cli/commit/e6950291d895133887505c67c984601825320407))
215
+
216
+ ## [1.10.5](https://github.com/Doist/outline-cli/compare/v1.10.4...v1.10.5) (2026-08-27)
217
+
218
+ ### Bug Fixes
219
+
220
+ * pair the undici dispatcher with its own fetch and bump to 7.29.0 ([#92](https://github.com/Doist/outline-cli/issues/92)) ([173d857](https://github.com/Doist/outline-cli/commit/173d857df858615b81e7d903630fdd379eb93db6))
221
+
222
+ ## [1.10.4](https://github.com/Doist/outline-cli/compare/v1.10.3...v1.10.4) (2026-07-29)
223
+
224
+ ### Bug Fixes
225
+
226
+ * set Comms audience to thread ([#90](https://github.com/Doist/outline-cli/issues/90)) ([c54be07](https://github.com/Doist/outline-cli/commit/c54be07e95c7c63f29a84d0e51b16673a0e5f519))
227
+
228
+ ## [1.10.3](https://github.com/Doist/outline-cli/compare/v1.10.2...v1.10.3) (2026-07-01)
229
+
230
+ ### Bug Fixes
231
+
232
+ * **docs:** Update readme with correct token command ([#88](https://github.com/Doist/outline-cli/issues/88)) ([8bfe8a0](https://github.com/Doist/outline-cli/commit/8bfe8a0d4f5a7b8e1be8a5bef1de3c6661cfd205))
233
+
234
+ ## [1.10.2](https://github.com/Doist/outline-cli/compare/v1.10.1...v1.10.2) (2026-06-09)
235
+
236
+ ### Bug Fixes
237
+
238
+ * build a working dispatcher on runtimes without undici's decompress interceptor (e.g. Bun) ([#84](https://github.com/Doist/outline-cli/issues/84)) ([c2c69d2](https://github.com/Doist/outline-cli/commit/c2c69d2f1c9eddb08f3f2b0d8236d93770219203))
239
+
240
+ ## [1.10.1](https://github.com/Doist/outline-cli/compare/v1.10.0...v1.10.1) (2026-06-08)
241
+
242
+ ### Bug Fixes
243
+
244
+ * pin undici to 7.24.8 and block renovate updates ([#82](https://github.com/Doist/outline-cli/issues/82)) ([1f7cdc9](https://github.com/Doist/outline-cli/commit/1f7cdc9d575d1f99968b088abbeafd9182e52c84))
245
+
246
+ ## [1.10.0](https://github.com/Doist/outline-cli/compare/v1.9.0...v1.10.0) (2026-05-24)
247
+
248
+ ### Features
249
+
250
+ * **auth:** add `token` command group (save + view) ([#80](https://github.com/Doist/outline-cli/issues/80)) ([99789cc](https://github.com/Doist/outline-cli/commit/99789cc48b9afa9fc53959427f9121f8d3c12cd9))
251
+
252
+ ## [1.9.0](https://github.com/Doist/outline-cli/compare/v1.8.0...v1.9.0) (2026-05-24)
253
+
254
+ ### Features
255
+
256
+ * **account:** account command group (cli-core attachers) ([#79](https://github.com/Doist/outline-cli/issues/79)) ([01bd6a6](https://github.com/Doist/outline-cli/commit/01bd6a60af135bbfda894b56d5a6d2b2229b70a8)), closes [#77](https://github.com/Doist/outline-cli/issues/77)
257
+
258
+ ## [1.8.0](https://github.com/Doist/outline-cli/compare/v1.7.0...v1.8.0) (2026-05-21)
259
+
260
+ ### Features
261
+
262
+ * **auth:** silent OAuth token refresh ([#75](https://github.com/Doist/outline-cli/issues/75)) ([83996d5](https://github.com/Doist/outline-cli/commit/83996d56810e28e608d91a981fd3b313dcdeb4d3))
263
+
264
+ ## [1.7.0](https://github.com/Doist/outline-cli/compare/v1.6.0...v1.7.0) (2026-05-17)
265
+
266
+ ### Features
267
+
268
+ * **auth:** store API tokens in the OS keyring via @doist/cli-core ([#73](https://github.com/Doist/outline-cli/issues/73)) ([b353aea](https://github.com/Doist/outline-cli/commit/b353aeae3cdcc63308ec8de899f08c1dda23f22c))
269
+
270
+ ## [1.6.0](https://github.com/Doist/outline-cli/compare/v1.5.3...v1.6.0) (2026-05-15)
271
+
272
+ ### Features
273
+
274
+ * **auth:** adopt cli-core 0.12.0 multi-user TokenStore shape ([#71](https://github.com/Doist/outline-cli/issues/71)) ([53487b7](https://github.com/Doist/outline-cli/commit/53487b707b9a980c401ef19b3e37c08299aa6abe))
275
+
276
+ ## [1.5.3](https://github.com/Doist/outline-cli/compare/v1.5.2...v1.5.3) (2026-05-11)
277
+
278
+ ### Bug Fixes
279
+
280
+ * `ol --version` shows the wrong version ([#60](https://github.com/Doist/outline-cli/issues/60)) ([3ed8b10](https://github.com/Doist/outline-cli/commit/3ed8b10d19d727c131b87b2dc6939b5ab0b04a09))
281
+
282
+ ## [1.5.2](https://github.com/Doist/outline-cli/compare/v1.5.1...v1.5.2) (2026-05-09)
283
+
284
+ ### Bug Fixes
285
+
286
+ * decompress gzipped responses on Node 24+ (undici 7) ([#63](https://github.com/Doist/outline-cli/issues/63)) ([c44fbea](https://github.com/Doist/outline-cli/commit/c44fbeaafa13489505e70d1f829454982f24e07d))
287
+
288
+ ## [1.5.1](https://github.com/Doist/outline-cli/compare/v1.5.0...v1.5.1) (2026-04-02)
289
+
290
+ ### Bug Fixes
291
+
292
+ * secure config permissions and address update channel review feedback ([#53](https://github.com/Doist/outline-cli/issues/53)) ([63e64f8](https://github.com/Doist/outline-cli/commit/63e64f8b3e54251b74c11f8cbf100339422d43dc))
293
+
294
+ ## [1.5.0](https://github.com/Doist/outline-cli/compare/v1.4.0...v1.5.0) (2026-04-02)
295
+
296
+ ### Features
297
+
298
+ * allow switching between stable and pre-release update channels ([#52](https://github.com/Doist/outline-cli/issues/52)) ([6834688](https://github.com/Doist/outline-cli/commit/683468819423e93b3f1ca8b38af9ce6788a2e675))
299
+
300
+ ## [1.4.0](https://github.com/Doist/outline-cli/compare/v1.3.0...v1.4.0) (2026-04-02)
301
+
302
+ ### Features
303
+
304
+ * add `ol changelog` command ([#50](https://github.com/Doist/outline-cli/issues/50)) ([60656e5](https://github.com/Doist/outline-cli/commit/60656e5d816af6080f5084e3f44d0d9763e6c354))
305
+
306
+ ## [1.3.0](https://github.com/Doist/outline-cli/compare/v1.2.1...v1.3.0) (2026-04-02)
307
+
308
+ ### Features
309
+
310
+ * add `ol update` command ([#49](https://github.com/Doist/outline-cli/issues/49)) ([fa5608e](https://github.com/Doist/outline-cli/commit/fa5608ea50392a71150f7d1140204f0160680d8a))
311
+
312
+ ## [1.2.1](https://github.com/Doist/outline-cli/compare/v1.2.0...v1.2.1) (2026-03-31)
313
+
314
+ ### Bug Fixes
315
+
316
+ * Capture previous tag before release ([#45](https://github.com/Doist/outline-cli/issues/45)) ([6a00294](https://github.com/Doist/outline-cli/commit/6a002949587a17313f96bc2fb1a93fba7e605e9b))
317
+
318
+ ## [1.2.0](https://github.com/Doist/outline-cli/compare/v1.1.0...v1.2.0) (2026-03-30)
319
+
320
+ ### Features
321
+
322
+ * Announce releases on Twist ([#44](https://github.com/Doist/outline-cli/issues/44)) ([5e2f86b](https://github.com/Doist/outline-cli/commit/5e2f86b9bf20ca97b50df74f0552028b6f6b94b2))
323
+
324
+ # [1.1.0](https://github.com/Doist/outline-cli/compare/v1.0.2...v1.1.0) (2026-03-27)
325
+
326
+
327
+ ### Features
328
+
329
+ * add --parent option to doc create and doc move ([#41](https://github.com/Doist/outline-cli/issues/41)) ([2514b06](https://github.com/Doist/outline-cli/commit/2514b06e097938b1c0833ea2147509fa0916be28))
330
+
331
+ ## [1.0.2](https://github.com/Doist/outline-cli/compare/v1.0.1...v1.0.2) (2026-03-26)
332
+
333
+
334
+ ### Bug Fixes
335
+
336
+ * honor proxy env vars by default ([#33](https://github.com/Doist/outline-cli/issues/33)) ([5bb8e77](https://github.com/Doist/outline-cli/commit/5bb8e77fa8cabe17d2cba478a01c1c64957d7f6b))
337
+
338
+ ## [1.0.1](https://github.com/Doist/outline-cli/compare/v1.0.0...v1.0.1) (2026-03-25)
339
+
340
+
341
+ ### Bug Fixes
342
+
343
+ * correct skill name and quote YAML description ([#38](https://github.com/Doist/outline-cli/issues/38)) ([e0e4fa4](https://github.com/Doist/outline-cli/commit/e0e4fa435dcfc89b1e29e4b8d02d6ba911dfdb7f))
344
+
345
+ # 1.0.0 (2026-03-25)
346
+
347
+ ### Bug Fixes
348
+
349
+ - broaden CI detection to handle all truthy values ([7dc2806](https://github.com/Doist/outline-cli/commit/7dc2806a344d8be841fb9fae80dce59dc6667fac))
350
+ - exclude dist from biome checks ([0dc49a3](https://github.com/Doist/outline-cli/commit/0dc49a38515ae75005f253413b171c6c6b48e99a))
351
+
352
+ ### Features
353
+
354
+ - add API Spinner Proxy ([#17](https://github.com/Doist/outline-cli/issues/17)) ([a3bc75a](https://github.com/Doist/outline-cli/commit/a3bc75afaf81b684703b0e821d5fec0cf05a29cb))
355
+ - add fuzzy reference resolution ([#19](https://github.com/Doist/outline-cli/issues/19)) ([6c1c6f9](https://github.com/Doist/outline-cli/commit/6c1c6f97762809ddf3e4d912892c3582cf9f8b36))
356
+ - add npm publishing, new agent skills, and skill auto-update ([#36](https://github.com/Doist/outline-cli/issues/36)) ([bcb2e75](https://github.com/Doist/outline-cli/commit/bcb2e7593447ca35069316636cbfda02bb86fb91)), closes [Doist/todoist-cli#176](https://github.com/Doist/todoist-cli/issues/176) [Doist/bob-cli#17](https://github.com/Doist/bob-cli/issues/17) [Doist/twist-cli#101](https://github.com/Doist/twist-cli/issues/101)
357
+ - add structured error formatting with codes and hints ([#18](https://github.com/Doist/outline-cli/issues/18)) ([17658d2](https://github.com/Doist/outline-cli/commit/17658d2a66d30939146b1fb5625782df122ff315))
358
+ - implement OAuth PKCE browser login ([#20](https://github.com/Doist/outline-cli/issues/20)) ([b7f6eec](https://github.com/Doist/outline-cli/commit/b7f6eec84250b6d8ceea5e5f1b282bdb550b8092)), closes [#7](https://github.com/Doist/outline-cli/issues/7) [outline/outline#11254](https://github.com/outline/outline/issues/11254)
359
+ - improve oauth login inputs and callback UX ([#31](https://github.com/Doist/outline-cli/issues/31)) ([3011b28](https://github.com/Doist/outline-cli/commit/3011b28a2f3a0b04460ad8def9ed39426b7a1df3))
package/README.md CHANGED
@@ -1,45 +1,161 @@
1
- # @todoist/outline-cli
1
+ # Outline CLI
2
2
 
3
- ## ⚠️ IMPORTANT NOTICE ⚠️
3
+ CLI for the [Outline](https://www.getoutline.com) wiki/knowledge base API.
4
4
 
5
- **This package is created solely for the purpose of setting up OIDC (OpenID Connect) trusted publishing with npm.**
5
+ ## Installation
6
6
 
7
- This is **NOT** a functional package and contains **NO** code or functionality beyond the OIDC setup configuration.
7
+ Requires Node 24+.
8
8
 
9
- ## Purpose
9
+ > ```bash
10
+ > npm install -g @todoist/outline-cli
11
+ > ```
10
12
 
11
- This package exists to:
12
- 1. Configure OIDC trusted publishing for the package name `@todoist/outline-cli`
13
- 2. Enable secure, token-less publishing from CI/CD workflows
14
- 3. Establish provenance for packages published under this name
13
+ Previously published as `@doist/outline-cli`. Both packages install the `ol` binary, so uninstall the old one first: `npm uninstall -g @doist/outline-cli`.
15
14
 
16
- ## What is OIDC Trusted Publishing?
15
+ ### Agent Skills
17
16
 
18
- OIDC trusted publishing allows package maintainers to publish packages directly from their CI/CD workflows without needing to manage npm access tokens. Instead, it uses OpenID Connect to establish trust between the CI/CD provider (like GitHub Actions) and npm.
17
+ Install skills for your coding agent:
19
18
 
20
- ## Setup Instructions
19
+ ```bash
20
+ ol skill install claude-code
21
+ ol skill install codex
22
+ ol skill install cursor
23
+ ol skill install gemini
24
+ ol skill install pi
25
+ ol skill install universal
26
+ ```
21
27
 
22
- To properly configure OIDC trusted publishing for this package:
28
+ Skills are installed to `~/<agent-dir>/skills/outline-cli/SKILL.md` (e.g. `~/.claude/` for claude-code, `~/.agents/` for universal, etc.). When updating the CLI, installed skills are updated automatically. The `universal` agent is compatible with Amp, OpenCode, and other agents that read from `~/.agents/`.
23
29
 
24
- 1. Go to [npmjs.com](https://www.npmjs.com/) and navigate to your package settings
25
- 2. Configure the trusted publisher (e.g., GitHub Actions)
26
- 3. Specify the repository and workflow that should be allowed to publish
27
- 4. Use the configured workflow to publish your actual package
30
+ ```bash
31
+ ol skill list
32
+ ol skill uninstall <agent>
33
+ ```
28
34
 
29
- ## DO NOT USE THIS PACKAGE
35
+ ## Uninstallation
30
36
 
31
- This package is a placeholder for OIDC configuration only. It:
32
- - Contains no executable code
33
- - Provides no functionality
34
- - Should not be installed as a dependency
35
- - Exists only for administrative purposes
37
+ First, remove any installed agent skills:
36
38
 
37
- ## More Information
39
+ ```bash
40
+ ol skill uninstall <agent>
41
+ ```
38
42
 
39
- For more details about npm's trusted publishing feature, see:
40
- - [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
41
- - [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
43
+ Then uninstall the CLI:
42
44
 
43
- ---
45
+ ```bash
46
+ npm uninstall -g @todoist/outline-cli
47
+ ```
44
48
 
45
- **Maintained for OIDC setup purposes only**
49
+ ## Local Setup
50
+
51
+ ```bash
52
+ git clone https://github.com/todoist/outline-cli.git
53
+ cd outline-cli
54
+ npm install
55
+ npm run build
56
+ npm link
57
+ ```
58
+
59
+ ## Setup
60
+
61
+ ### OAuth login (recommended)
62
+
63
+ ```bash
64
+ ol auth login
65
+ ol auth login --base-url <your-outline-url>
66
+ ol auth login --client-id <your-client-id>
67
+ ol auth login --callback-port 54969
68
+ ol auth status
69
+ ol auth logout
70
+ ```
71
+
72
+ **Setup:**
73
+
74
+ 1. Create a public OAuth app in Outline (Settings → Applications)
75
+ 2. Set the redirect URI to `http://localhost:54969/callback`
76
+ 3. Run `ol auth login` and enter your OAuth client ID when prompted
77
+ (or pass it directly with `--client-id <your-client-id>`)
78
+ 4. If needed, pass `--base-url <your-outline-url>` or set `OUTLINE_URL`
79
+ (for self-hosted instances or non-default URLs)
80
+ 5. If needed, pass `--callback-port <port>` or set `OUTLINE_OAUTH_CALLBACK_PORT`
81
+ and register `http://localhost:<port>/callback` in your OAuth app
82
+
83
+ The client ID is saved for future logins. You can also set `OUTLINE_OAUTH_CLIENT_ID`
84
+ for your local environment.
85
+
86
+ ### Manual token login
87
+
88
+ If you prefer using an API token directly:
89
+
90
+ ```bash
91
+ ol auth token <your-api-token> # save a token (verifies it against your instance)
92
+ ol auth token # prompt for the token interactively
93
+ ol auth token view # print the stored token to stdout (refreshes an expiring OAuth token first)
94
+ ```
95
+
96
+ Generate a token in Outline under Settings → API Tokens. Pass
97
+ `--base-url <your-outline-url>` if the token belongs to a self-hosted instance.
98
+
99
+ You can also skip storing a token entirely by setting `OUTLINE_API_TOKEN` in
100
+ your environment.
101
+
102
+ ### Configuration
103
+
104
+ Token resolution: `OUTLINE_API_TOKEN` env var → `~/.config/outline-cli/config.json`.
105
+
106
+ Base URL resolution: `OUTLINE_URL` env var → config file → `https://app.getoutline.com`.
107
+
108
+ Callback port resolution for OAuth login:
109
+ `--callback-port` → `OUTLINE_OAUTH_CALLBACK_PORT` → `54969`.
110
+
111
+ Self-hosted instances: pass `--base-url` or set `OUTLINE_URL` (you can still provide it interactively).
112
+
113
+ ## Commands
114
+
115
+ ```bash
116
+ # Search
117
+ ol search "query" --limit 10 --offset 10 --collection <id> --status published
118
+
119
+ # Documents (alias: ol doc)
120
+ ol document list --collection <id> --sort updatedAt --direction DESC
121
+ ol document get <urlId> # renders markdown for terminal
122
+ ol document get <urlId> --raw # outputs raw markdown
123
+ ol document open <urlId> # opens in browser
124
+ ol document create --title "Title" --collection <id> --file doc.md --publish
125
+ ol document update <urlId> --file updated.md
126
+ cat notes.md | ol document update <urlId> --stdin # reads markdown from stdin
127
+ ol document update <urlId> --publish # publishes a draft
128
+ ol document update <urlId> --publish --collection <id> # publishes a draft that has no collection
129
+ ol document update <urlId> --file updated.md --if-updated-at <updatedAt> # fails if saved since then
130
+ ol document delete <urlId> --confirm
131
+ ol document restore <urlId> # restores from trash
132
+ ol document move <urlId> --collection <target-id>
133
+ ol document archive <urlId>
134
+ ol document unarchive <urlId>
135
+
136
+ # Collections (alias: ol col)
137
+ ol collection list
138
+ ol collection get <id>
139
+ ol collection create --name "Engineering" --color "#4CAF50"
140
+ ol collection update <id> --name "New Name"
141
+ ol collection delete <id> --confirm
142
+ ```
143
+
144
+ ## Output modes
145
+
146
+ All commands support:
147
+
148
+ - Default: colored human-readable output
149
+ - `--json`: pretty-printed JSON (essential fields)
150
+ - `--json --full`: all fields
151
+ - `--ndjson`: one JSON object per line (for piping)
152
+
153
+ ## Development
154
+
155
+ ```bash
156
+ npm install
157
+ npm run dev # watch mode
158
+ npm run type-check # typecheck without emitting
159
+ npm run test # run tests
160
+ npm run build # compile to dist/
161
+ ```
@@ -0,0 +1,2 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerAccountCommand(program: Command): void;
@@ -0,0 +1,107 @@
1
+ import { emitView } from '@todoist/cli-core';
2
+ import { attachAccountListCommand, attachAccountRemoveCommand, attachAccountUseCommand, } from '@todoist/cli-core/auth';
3
+ import chalk from 'chalk';
4
+ import { TOKEN_ENV_VAR } from '../lib/auth-constants.js';
5
+ import { logClearResult } from '../lib/auth-output.js';
6
+ import { createOutlineTokenStore, resolveActiveAccountSource, } from '../lib/auth-provider.js';
7
+ import { CliError } from '../lib/errors.js';
8
+ import { getRequestedUserRef, isAccessible } from '../lib/global-args.js';
9
+ /** `<label> (id:<id>)` with an accessibility-aware default marker. */
10
+ function accountLine(account, isDefault) {
11
+ const marker = isDefault ? (isAccessible() ? ' [default]' : chalk.green(' (default)')) : '';
12
+ return `${account.label} ${chalk.dim(`(id:${account.id})`)}${marker}`;
13
+ }
14
+ /** Tidy machine projection shared by `list` and `current` — drops the OAuth client id. */
15
+ function projectAccount(account, isDefault) {
16
+ return {
17
+ id: account.id,
18
+ label: account.label,
19
+ teamName: account.teamName,
20
+ baseUrl: account.baseUrl,
21
+ isDefault,
22
+ };
23
+ }
24
+ export function registerAccountCommand(program) {
25
+ const account = program.command('account').description('Manage stored CLI accounts');
26
+ const store = createOutlineTokenStore();
27
+ const list = attachAccountListCommand(account, {
28
+ store,
29
+ description: 'List stored Outline accounts',
30
+ renderText: ({ accounts }) => {
31
+ if (accounts.length === 0) {
32
+ return 'No stored accounts. Run `ol auth login` to add one.';
33
+ }
34
+ return accounts.map(({ account, isDefault }) => accountLine(account, isDefault));
35
+ },
36
+ renderJson: ({ account, isDefault }) => projectAccount(account, isDefault),
37
+ });
38
+ attachAccountUseCommand(account, {
39
+ store,
40
+ description: 'Set the default account (matched by Outline user id or display name)',
41
+ });
42
+ // `current` resolves the active credential's source directly (env / stored /
43
+ // legacy) rather than going through the generic account attacher, which only
44
+ // models stored accounts. `--json` / `--ndjson` emit a discriminated envelope.
45
+ account
46
+ .command('current')
47
+ .description('Show the active account (honours --user and OUTLINE_API_TOKEN)')
48
+ .option('--json', 'Emit machine-readable JSON output')
49
+ .option('--ndjson', 'Emit machine-readable NDJSON output')
50
+ .action(async (options) => {
51
+ const view = { json: Boolean(options.json), ndjson: Boolean(options.ndjson) };
52
+ const requested = getRequestedUserRef();
53
+ const resolution = await resolveActiveAccountSource(requested);
54
+ if (resolution?.source === 'stored') {
55
+ const { account: acc, isDefault } = resolution;
56
+ emitView(view, { source: 'stored', account: projectAccount(acc, isDefault) }, () => {
57
+ const lines = [accountLine(acc, isDefault), ` Base URL: ${acc.baseUrl}`];
58
+ if (acc.teamName)
59
+ lines.push(` Team: ${acc.teamName}`);
60
+ return lines;
61
+ });
62
+ return;
63
+ }
64
+ if (resolution?.source === 'env') {
65
+ emitView(view, { source: 'env' }, () => [
66
+ `Using ${TOKEN_ENV_VAR} environment variable (no stored account).`,
67
+ ]);
68
+ return;
69
+ }
70
+ if (resolution?.source === 'legacy') {
71
+ emitView(view, { source: 'legacy' }, () => [
72
+ 'Using legacy single-user credentials. Run `ol auth login` to migrate to a stored account.',
73
+ ]);
74
+ return;
75
+ }
76
+ if (requested !== undefined) {
77
+ throw new CliError('ACCOUNT_NOT_FOUND', `No stored account matches "${requested}".`, ['Check the account id or display name, or run `ol auth login` to add it.']);
78
+ }
79
+ throw new CliError('NOT_AUTHENTICATED', 'Not authenticated. Run: ol auth login');
80
+ });
81
+ attachAccountRemoveCommand(account, {
82
+ store,
83
+ description: 'Remove a stored account (clears keyring + config entry)',
84
+ renderText: ({ account, wasDefault }) => {
85
+ const lines = [`${chalk.green('✓')} Removed ${account.label}`];
86
+ if (wasDefault) {
87
+ lines.push(chalk.dim('Cleared default account. Set a new one with `ol account use <id|name>`.'));
88
+ }
89
+ return lines;
90
+ },
91
+ onRemoved: ({ view }) => logClearResult(store, view.json || view.ndjson),
92
+ });
93
+ // Make bare `ol account` list. A parent action runs only when no subcommand
94
+ // matches, so `ol account list` still routes to the subcommand directly —
95
+ // this just delegates the no-subcommand case via the public API (no reliance
96
+ // on commander internals).
97
+ account.action(async () => {
98
+ await list.parseAsync([], { from: 'user' });
99
+ });
100
+ account.addHelpText('after', `
101
+ Examples:
102
+ ol account # list stored accounts (default subcommand)
103
+ ol account current # show the active account
104
+ ol account use "Ada Lovelace" # set the default account (id or display name)
105
+ ol account remove id-bob # forget an account (clears keyring + config entry)`);
106
+ }
107
+ //# sourceMappingURL=account.js.map