## [3.0.0](https://github.com/Doist/twist-cli/compare/v2.45.8...v3.0.0) (2026-07-16)

### ⚠ BREAKING CHANGES

- require node >=24, test on 24 & 26, support npm >=11 (#299)

### Features

- require node >=24, test on 24 & 26, support npm >=11 ([#299](https://github.com/Doist/twist-cli/issues/299)) ([1b763b1](https://github.com/Doist/twist-cli/commit/1b763b1218a90b3e257f8bb18387c2631f8b220b))

## [2.45.8](https://github.com/Doist/twist-cli/compare/v2.45.7...v2.45.8) (2026-07-14)

### Bug Fixes

- **deps:** update dependency marked to v18.0.6 ([#297](https://github.com/Doist/twist-cli/issues/297)) ([bc5155a](https://github.com/Doist/twist-cli/commit/bc5155ad6f1ace368a4c3ec912fd332c88d89247))

## [2.45.7](https://github.com/Doist/twist-cli/compare/v2.45.6...v2.45.7) (2026-07-07)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.9.4 ([#291](https://github.com/Doist/twist-cli/issues/291)) ([ab6dbdb](https://github.com/Doist/twist-cli/commit/ab6dbdb89526d52e3aa32c74b607566e1f1e7f7a))

## [2.45.6](https://github.com/Doist/twist-cli/compare/v2.45.5...v2.45.6) (2026-06-23)

### Bug Fixes

- **deps:** update dependency @doist/cli-core to v0.26.0 ([#286](https://github.com/Doist/twist-cli/issues/286)) ([4b2a5b9](https://github.com/Doist/twist-cli/commit/4b2a5b92d376009b4f6e5386714dd3e917950c39))

## [2.45.5](https://github.com/Doist/twist-cli/compare/v2.45.4...v2.45.5) (2026-06-15)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.9.3 ([#276](https://github.com/Doist/twist-cli/issues/276)) ([29115fa](https://github.com/Doist/twist-cli/commit/29115fa2d8cf1886fcb717a62d9cf7822785e317))

## [2.45.4](https://github.com/Doist/twist-cli/compare/v2.45.3...v2.45.4) (2026-06-11)

### Bug Fixes

- **deps:** update dependency @doist/cli-core to v0.25.1 ([#274](https://github.com/Doist/twist-cli/issues/274)) ([acde4ba](https://github.com/Doist/twist-cli/commit/acde4baa22e8d8b014c4b61e0c93db05da5ba168))

## [2.45.3](https://github.com/Doist/twist-cli/compare/v2.45.2...v2.45.3) (2026-06-10)

### Bug Fixes

- **deps:** update dependency @doist/cli-core to v0.25.0 ([#273](https://github.com/Doist/twist-cli/issues/273)) ([a17cd98](https://github.com/Doist/twist-cli/commit/a17cd98fd2ace98000de4cf4b0dbbf444090ec35))

## [2.45.2](https://github.com/Doist/twist-cli/compare/v2.45.1...v2.45.2) (2026-06-10)

### Bug Fixes

- **deps:** update dependency marked to v18.0.5 ([#272](https://github.com/Doist/twist-cli/issues/272)) ([6ae5a12](https://github.com/Doist/twist-cli/commit/6ae5a125deb609144758da4654d4b62a77df30cb))

## [2.45.1](https://github.com/Doist/twist-cli/compare/v2.45.0...v2.45.1) (2026-06-08)

### Bug Fixes

- **channels:** Include unjoined public channels in public-channel allowlist ([#266](https://github.com/Doist/twist-cli/issues/266)) ([6de6209](https://github.com/Doist/twist-cli/commit/6de62091582d06f3b2805d5ebc4b27ff95fb6d8a)), closes [#263](https://github.com/Doist/twist-cli/issues/263)

## [2.45.0](https://github.com/Doist/twist-cli/compare/v2.44.2...v2.45.0) (2026-05-31)

### Features

- **attachments:** support uploading files on replies ([#260](https://github.com/Doist/twist-cli/issues/260)) ([1e8dab6](https://github.com/Doist/twist-cli/commit/1e8dab6f2a6bd9ebbac2b962ec195e282e36f593))

## [2.44.2](https://github.com/Doist/twist-cli/compare/v2.44.1...v2.44.2) (2026-05-28)

### Bug Fixes

- **refs:** resolve unjoined-but-public channels by name ([#249](https://github.com/Doist/twist-cli/issues/249)) ([74ad85a](https://github.com/Doist/twist-cli/commit/74ad85acc883ccacb1e509352d4ec5dc7e991647)), closes [#246](https://github.com/Doist/twist-cli/issues/246)

## [2.44.1](https://github.com/Doist/twist-cli/compare/v2.44.0...v2.44.1) (2026-05-27)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.8.1 ([#259](https://github.com/Doist/twist-cli/issues/259)) ([a00bc9e](https://github.com/Doist/twist-cli/commit/a00bc9e8b3cb987aebb90859af36dc7477641917))
- **users:** filter removed members from `tw users` by default ([#245](https://github.com/Doist/twist-cli/issues/245)) ([c921a19](https://github.com/Doist/twist-cli/commit/c921a1944c0add4a5fa9ebcd518e5a6b26df54cf)), closes [#3](https://github.com/Doist/twist-cli/issues/3)

## [2.44.0](https://github.com/Doist/twist-cli/compare/v2.43.1...v2.44.0) (2026-05-27)

### Features

- **channel:** add create, delete, archive, unarchive subcommands ([#246](https://github.com/Doist/twist-cli/issues/246)) ([62dbda9](https://github.com/Doist/twist-cli/commit/62dbda9b7def44f9da9aa952bb7d4ca621eac790))

## [2.43.1](https://github.com/Doist/twist-cli/compare/v2.43.0...v2.43.1) (2026-05-25)

### Bug Fixes

- **deps:** update dependency marked to v18.0.4 ([#254](https://github.com/Doist/twist-cli/issues/254)) ([3c1e0e2](https://github.com/Doist/twist-cli/commit/3c1e0e2a9c8be11cf60db8a5c5a88d5e821ccdee))

## [2.43.0](https://github.com/Doist/twist-cli/compare/v2.42.0...v2.43.0) (2026-05-22)

### Features

- **channel:** channel membership control (members/add/remove/sync) ([#244](https://github.com/Doist/twist-cli/issues/244)) ([84ea32b](https://github.com/Doist/twist-cli/commit/84ea32b6498597ecfbc0ce9ce5094c19dbc0ee07))

## [2.42.0](https://github.com/Doist/twist-cli/compare/v2.41.2...v2.42.0) (2026-05-21)

### Features

- **auth:** adopt cli-core createDcrProvider for OAuth ([#243](https://github.com/Doist/twist-cli/issues/243)) ([670d6df](https://github.com/Doist/twist-cli/commit/670d6dfac79c0e9059ff62a5a8defb4a7a2c00c7))

## [2.41.2](https://github.com/Doist/twist-cli/compare/v2.41.1...v2.41.2) (2026-05-20)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.7.0 ([#240](https://github.com/Doist/twist-cli/issues/240)) ([1ae4864](https://github.com/Doist/twist-cli/commit/1ae4864837c26859402d442a776793d4ff81be1b))

## [2.41.1](https://github.com/Doist/twist-cli/compare/v2.41.0...v2.41.1) (2026-05-18)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.6.0 ([#234](https://github.com/Doist/twist-cli/issues/234)) ([ad17a78](https://github.com/Doist/twist-cli/commit/ad17a7840d04e2d60cd546ae14ecf3a9fba3cd9a))

## [2.41.0](https://github.com/Doist/twist-cli/compare/v2.40.0...v2.41.0) (2026-05-17)

### Features

- **auth:** tw account commands + multi-account config view ([#233](https://github.com/Doist/twist-cli/issues/233)) ([5a3741f](https://github.com/Doist/twist-cli/commit/5a3741f63ae0c69a09e32727a162d4a24b710662))

## [2.40.0](https://github.com/Doist/twist-cli/compare/v2.39.0...v2.40.0) (2026-05-17)

### Features

- **auth:** schema v2 + multi-account migration foundation ([#232](https://github.com/Doist/twist-cli/issues/232)) ([8ca3382](https://github.com/Doist/twist-cli/commit/8ca3382378506ddb27cdcb521103d06bd567a3fb))

## [2.39.0](https://github.com/Doist/twist-cli/compare/v2.38.0...v2.39.0) (2026-05-16)

### Features

- **auth:** support pre-subcommand `tw --user <ref> <subcommand>` ([#228](https://github.com/Doist/twist-cli/issues/228)) ([423f429](https://github.com/Doist/twist-cli/commit/423f429622c5589e59e289cda803db84f8091e41))

## [2.38.0](https://github.com/Doist/twist-cli/compare/v2.37.0...v2.38.0) (2026-05-16)

### Features

- **auth:** add `tw auth token view` via cli-core attachTokenViewCommand ([#227](https://github.com/Doist/twist-cli/issues/227)) ([9ae4388](https://github.com/Doist/twist-cli/commit/9ae43882bc3f7d443438cf4469fba1c127f60fab))

## [2.37.0](https://github.com/Doist/twist-cli/compare/v2.36.5...v2.37.0) (2026-05-15)

### Features

- **auth:** adopt cli-core 0.12.0 multi-user TokenStore shape ([#225](https://github.com/Doist/twist-cli/issues/225)) ([f5e806e](https://github.com/Doist/twist-cli/commit/f5e806e766f43aa0d603f7e6b9a3acca08c43ad6))

## [2.36.5](https://github.com/Doist/twist-cli/compare/v2.36.4...v2.36.5) (2026-05-13)

### Bug Fixes

- guard unreadResp.data against null in channel threads command ([#224](https://github.com/Doist/twist-cli/issues/224)) ([617a617](https://github.com/Doist/twist-cli/commit/617a61770188615d7ce2bfbc63f0329c5ee8ba2f))

## [2.36.4](https://github.com/Doist/twist-cli/compare/v2.36.3...v2.36.4) (2026-05-13)

### Bug Fixes

- surface batch API errors in commands ([#159](https://github.com/Doist/twist-cli/issues/159)) ([3b30c3c](https://github.com/Doist/twist-cli/commit/3b30c3ccc17138b257e850562b4e80e500c68d34))

## [2.36.3](https://github.com/Doist/twist-cli/compare/v2.36.2...v2.36.3) (2026-05-09)

### Bug Fixes

- **deps:** bump @doist/twist-sdk to 2.5.1 for Node 26 gzip fix ([#207](https://github.com/Doist/twist-cli/issues/207)) ([46732c6](https://github.com/Doist/twist-cli/commit/46732c6df42c13f15349e003fde379f25509f608))

## [2.36.2](https://github.com/Doist/twist-cli/compare/v2.36.1...v2.36.2) (2026-05-08)

### Bug Fixes

- emit empty JSON/NDJSON when inbox/unread results empty ([#205](https://github.com/Doist/twist-cli/issues/205)) ([bde7cdc](https://github.com/Doist/twist-cli/commit/bde7cdc48b1701814e5a555ea91e73680f8be6c6))

## [2.36.1](https://github.com/Doist/twist-cli/compare/v2.36.0...v2.36.1) (2026-05-08)

### Bug Fixes

- **deps:** update dependency yocto-spinner to v1.2.0 ([#204](https://github.com/Doist/twist-cli/issues/204)) ([7a09bb9](https://github.com/Doist/twist-cli/commit/7a09bb9c1fd8595280474a82e3d5c54f936e3fb9))

## [2.36.0](https://github.com/Doist/twist-cli/compare/v2.35.2...v2.36.0) (2026-05-07)

### Features

- **groups:** add membership and CRUD subcommands ([#202](https://github.com/Doist/twist-cli/issues/202)) ([a8e56f0](https://github.com/Doist/twist-cli/commit/a8e56f0d6e691a37d6b50f2489d8303d2de29247))

## [2.35.2](https://github.com/Doist/twist-cli/compare/v2.35.1...v2.35.2) (2026-05-06)

### Bug Fixes

- **deps:** update dependency marked to v18.0.3 ([#203](https://github.com/Doist/twist-cli/issues/203)) ([69d4ac9](https://github.com/Doist/twist-cli/commit/69d4ac997ddf5f8db5373955ddaf476633574119))

## [2.35.1](https://github.com/Doist/twist-cli/compare/v2.35.0...v2.35.1) (2026-05-05)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.5.0 ([#200](https://github.com/Doist/twist-cli/issues/200)) ([639f200](https://github.com/Doist/twist-cli/commit/639f200ff329cc6eda22696dcbc41cecc8c41f42))

## [2.35.0](https://github.com/Doist/twist-cli/compare/v2.34.0...v2.35.0) (2026-04-29)

### Features

- add mentions command and search pagination ([#197](https://github.com/Doist/twist-cli/issues/197)) ([0fe72bf](https://github.com/Doist/twist-cli/commit/0fe72bf7bf80bf4627df29f6c1ba9d1df61fb6c1))

## [2.34.0](https://github.com/Doist/twist-cli/compare/v2.33.0...v2.34.0) (2026-04-27)

### Features

- **thread:** opt-in unarchive of newly-created threads ([#196](https://github.com/Doist/twist-cli/issues/196)) ([1872225](https://github.com/Doist/twist-cli/commit/1872225d3ae23b0322c1ed6c6e08d088fb872580))

## [2.33.0](https://github.com/Doist/twist-cli/compare/v2.32.2...v2.33.0) (2026-04-23)

### Features

- **channel:** add channel threads listing with pagination ([#191](https://github.com/Doist/twist-cli/issues/191)) ([f17f09f](https://github.com/Doist/twist-cli/commit/f17f09fbfc3a11ee3bf641bc40a9e5702d3b311f))
- **config:** add `tw config view` to inspect the CLI config file ([#192](https://github.com/Doist/twist-cli/issues/192)) ([f7d0d9b](https://github.com/Doist/twist-cli/commit/f7d0d9bbc3fbee03825032d6c54f293429bee45f))

### Bug Fixes

- **deps:** update dependency marked to v18.0.2 ([#189](https://github.com/Doist/twist-cli/issues/189)) ([f4caf89](https://github.com/Doist/twist-cli/commit/f4caf8978a12a547050a7649de2285d41330abe6))

## [2.32.2](https://github.com/Doist/twist-cli/compare/v2.32.1...v2.32.2) (2026-04-22)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.4.1 ([#186](https://github.com/Doist/twist-cli/issues/186)) ([d25249c](https://github.com/Doist/twist-cli/commit/d25249c287e938f3dd315cee2e9aa7d91cb621e5))

## [2.32.1](https://github.com/Doist/twist-cli/compare/v2.32.0...v2.32.1) (2026-04-22)

### Bug Fixes

- **deps:** update dependency marked to v18.0.1 ([#184](https://github.com/Doist/twist-cli/issues/184)) ([4df1671](https://github.com/Doist/twist-cli/commit/4df1671b08c626ff2315af70ed419e3777216a0b))

## [2.32.0](https://github.com/Doist/twist-cli/compare/v2.31.2...v2.32.0) (2026-04-19)

### Features

- **skill:** align with agentskills.io spec and validate in CI ([#179](https://github.com/Doist/twist-cli/issues/179)) ([4fda70e](https://github.com/Doist/twist-cli/commit/4fda70e9812f2e8db443decc7a8a6c71d77043c1))

## [2.31.2](https://github.com/Doist/twist-cli/compare/v2.31.1...v2.31.2) (2026-04-16)

### Bug Fixes

- **dry-run:** fetch resources in the remaining five commands ([#178](https://github.com/Doist/twist-cli/issues/178)) ([5f1ab22](https://github.com/Doist/twist-cli/commit/5f1ab2261930543b3b01762b33157c19ea627b5f))

## [2.31.1](https://github.com/Doist/twist-cli/compare/v2.31.0...v2.31.1) (2026-04-16)

### Bug Fixes

- **dry-run:** run validation before short-circuit and print structured preview ([#177](https://github.com/Doist/twist-cli/issues/177)) ([d552e45](https://github.com/Doist/twist-cli/commit/d552e45b8e6d0b8e443ab1abd51b2cc987c77cc9))

## [2.31.0](https://github.com/Doist/twist-cli/compare/v2.30.0...v2.31.0) (2026-04-16)

### Features

- consistency pass for --json across tw react/unreact, comment view, conversation with ([#176](https://github.com/Doist/twist-cli/issues/176)) ([5db95cc](https://github.com/Doist/twist-cli/commit/5db95cc498b1d3d4619d8f7bfa4099afc3f73aaa))

## [2.30.0](https://github.com/Doist/twist-cli/compare/v2.29.2...v2.30.0) (2026-04-16)

### Features

- **user:** add --json and --full support to tw user ([#175](https://github.com/Doist/twist-cli/issues/175)) ([00aae9f](https://github.com/Doist/twist-cli/commit/00aae9f97f4a422ef268a28a8ae8ffaf2c0cd10b))

## [2.29.2](https://github.com/Doist/twist-cli/compare/v2.29.1...v2.29.2) (2026-04-16)

### Bug Fixes

- add groups:read scope and handle 403 errors globally ([#172](https://github.com/Doist/twist-cli/issues/172)) ([7d62fc3](https://github.com/Doist/twist-cli/commit/7d62fc338ff19b19dc2405045da5e366b53f806a)), closes [#171](https://github.com/Doist/twist-cli/issues/171)

## [2.29.1](https://github.com/Doist/twist-cli/compare/v2.29.0...v2.29.1) (2026-04-16)

### Bug Fixes

- add missing groups:read OAuth scope for --notify group IDs ([#173](https://github.com/Doist/twist-cli/issues/173)) ([c2a0002](https://github.com/Doist/twist-cli/commit/c2a000231f2275822d01b7228a0d6520e8b2ac70)), closes [#171](https://github.com/Doist/twist-cli/issues/171)

## [2.29.0](https://github.com/Doist/twist-cli/compare/v2.28.0...v2.29.0) (2026-04-16)

### Features

- **inbox:** add --archive-filter option ([#169](https://github.com/Doist/twist-cli/issues/169)) ([ed9ed7f](https://github.com/Doist/twist-cli/commit/ed9ed7fa0ae04c12c42cd492629e4e6f55a23612))

## [2.28.0](https://github.com/Doist/twist-cli/compare/v2.27.1...v2.28.0) (2026-04-16)

### Features

- add `tw thread update` command to edit thread bodies ([#168](https://github.com/Doist/twist-cli/issues/168)) ([4ae0cfa](https://github.com/Doist/twist-cli/commit/4ae0cfa779d04a4b8d5c536d1949d900d35292f3))

## [2.27.1](https://github.com/Doist/twist-cli/compare/v2.27.0...v2.27.1) (2026-04-16)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.3.1 ([#170](https://github.com/Doist/twist-cli/issues/170)) ([2c0decd](https://github.com/Doist/twist-cli/commit/2c0decdcf09c13dec703695327233cbefe3ca335))

## [2.27.0](https://github.com/Doist/twist-cli/compare/v2.26.0...v2.27.0) (2026-04-08)

### Features

- add thread rename command ([#157](https://github.com/Doist/twist-cli/issues/157)) ([399094f](https://github.com/Doist/twist-cli/commit/399094f1a41007a640a7d3f676b4eb9e4321c3ef))

## [2.26.0](https://github.com/Doist/twist-cli/compare/v2.25.0...v2.26.0) (2026-04-07)

### Features

- add tw doctor command ([#150](https://github.com/Doist/twist-cli/issues/150)) ([0993103](https://github.com/Doist/twist-cli/commit/09931034c8aea01799e14ccbf5500169b48563dc))

## [2.25.0](https://github.com/Doist/twist-cli/compare/v2.24.1...v2.25.0) (2026-04-07)

### Features

- add channel discovery and archive filters ([#151](https://github.com/Doist/twist-cli/issues/151)) ([3d89761](https://github.com/Doist/twist-cli/commit/3d897616104351b24d8c193025436638794d53ef))

## [2.24.1](https://github.com/Doist/twist-cli/compare/v2.24.0...v2.24.1) (2026-04-07)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.3.0 ([#154](https://github.com/Doist/twist-cli/issues/154)) ([36ca610](https://github.com/Doist/twist-cli/commit/36ca6109abeb54141eb74d88ce8ae742b1435845))

## [2.24.0](https://github.com/Doist/twist-cli/compare/v2.23.3...v2.24.0) (2026-04-06)

### Features

- add group support to --notify and new tw groups command ([#129](https://github.com/Doist/twist-cli/issues/129)) ([cba3f3f](https://github.com/Doist/twist-cli/commit/cba3f3f86451ef570b051ae3c9210530863f6bbf))

## [2.23.3](https://github.com/Doist/twist-cli/compare/v2.23.2...v2.23.3) (2026-04-05)

### Bug Fixes

- route auth errors to stderr and add actionable hints ([#145](https://github.com/Doist/twist-cli/issues/145)) ([3ab872c](https://github.com/Doist/twist-cli/commit/3ab872c82d45342cd4518aa7c96b8581a5dc361c))

## [2.23.2](https://github.com/Doist/twist-cli/compare/v2.23.1...v2.23.2) (2026-04-05)

### Bug Fixes

- centralize error handling with CliError and global handler ([#144](https://github.com/Doist/twist-cli/issues/144)) ([b1ef8d3](https://github.com/Doist/twist-cli/commit/b1ef8d39df9eae218bc0bff579f992352fb28551))

## [2.23.1](https://github.com/Doist/twist-cli/compare/v2.23.0...v2.23.1) (2026-04-05)

### Bug Fixes

- add non-interactive mode to prevent editor/prompt hangs ([#142](https://github.com/Doist/twist-cli/issues/142)) ([182dcc8](https://github.com/Doist/twist-cli/commit/182dcc882571f0e39143a6835baf46f4813c8a94))

## [2.23.0](https://github.com/Doist/twist-cli/compare/v2.22.1...v2.23.0) (2026-04-03)

### Features

- add thread deletion support ([#133](https://github.com/Doist/twist-cli/issues/133)) ([eed878c](https://github.com/Doist/twist-cli/commit/eed878c1c04e244ebf614ea3fe7b31c844beb8d2))

## [2.22.1](https://github.com/Doist/twist-cli/compare/v2.22.0...v2.22.1) (2026-04-02)

### Bug Fixes

- secure config permissions and address update channel review feedback ([#127](https://github.com/Doist/twist-cli/issues/127)) ([017c8fa](https://github.com/Doist/twist-cli/commit/017c8fa203e543471c286021bbbbde86eb12ddbf))

## [2.22.0](https://github.com/Doist/twist-cli/compare/v2.21.3...v2.22.0) (2026-04-02)

### Features

- allow switching between stable and pre-release update channels ([#126](https://github.com/Doist/twist-cli/issues/126)) ([78ee76f](https://github.com/Doist/twist-cli/commit/78ee76f0776e98b5f5782ffde24044115cc9f658))

## [2.21.3](https://github.com/Doist/twist-cli/compare/v2.21.2...v2.21.3) (2026-04-01)

### Bug Fixes

- suppress credential manager warning on every command ([#121](https://github.com/Doist/twist-cli/issues/121)) ([8423867](https://github.com/Doist/twist-cli/commit/8423867c7c43db7ae13cb7a78d027e8d9cbb98f5))

## [2.21.2](https://github.com/Doist/twist-cli/compare/v2.21.1...v2.21.2) (2026-03-29)

### Bug Fixes

- add prepublishOnly script for release safety ([#115](https://github.com/Doist/twist-cli/issues/115)) ([7b50727](https://github.com/Doist/twist-cli/commit/7b5072700f8fac968161ade717cde247ff5e87fe))

## [2.21.1](https://github.com/Doist/twist-cli/compare/v2.21.0...v2.21.1) (2026-03-28)

### Bug Fixes

- use Node 22 for release workflow ([#114](https://github.com/Doist/twist-cli/issues/114)) ([3c1463d](https://github.com/Doist/twist-cli/commit/3c1463d23ffcf74e182414f80b3adf1a81790899))

# [2.21.0](https://github.com/Doist/twist-cli/compare/v2.20.0...v2.21.0) (2026-03-27)

### Features

- add mute and unmute commands for threads and conversations ([#111](https://github.com/Doist/twist-cli/issues/111)) ([57eae83](https://github.com/Doist/twist-cli/commit/57eae8386fc582ac8981b415deb2386fcc5a8e9c))

# [2.20.0](https://github.com/Doist/twist-cli/compare/v2.19.0...v2.20.0) (2026-03-27)

### Features

- add --close and --reopen flags to thread reply ([#110](https://github.com/Doist/twist-cli/issues/110)) ([fc3880e](https://github.com/Doist/twist-cli/commit/fc3880ed7f8365c58cbdff2f643caf2a28b40130))

# [2.19.0](https://github.com/Doist/twist-cli/compare/v2.18.4...v2.19.0) (2026-03-27)

### Features

- add comment edit and delete commands ([#109](https://github.com/Doist/twist-cli/issues/109)) ([2c740e5](https://github.com/Doist/twist-cli/commit/2c740e5677e78f019e85fdb96ee098884972f902))

## [2.18.4](https://github.com/Doist/twist-cli/compare/v2.18.3...v2.18.4) (2026-03-26)

### Bug Fixes

- upgrade Twist SDK for proxy env var support ([#107](https://github.com/Doist/twist-cli/issues/107)) ([ad5bfc4](https://github.com/Doist/twist-cli/commit/ad5bfc4363975b45857cc0b799c40e6fe5f94718))

## [2.18.3](https://github.com/Doist/twist-cli/compare/v2.18.2...v2.18.3) (2026-03-26)

### Bug Fixes

- remove inline token placeholder from skill auth example ([#106](https://github.com/Doist/twist-cli/issues/106)) ([ce0683d](https://github.com/Doist/twist-cli/commit/ce0683dea1645d33f456f2812c4d02a1a21ba0eb))

## [2.18.2](https://github.com/Doist/twist-cli/compare/v2.18.1...v2.18.2) (2026-03-25)

### Bug Fixes

- use JSON.stringify for robust YAML description escaping ([#103](https://github.com/Doist/twist-cli/issues/103)) ([9adab77](https://github.com/Doist/twist-cli/commit/9adab777b395e43e7ebc23ed73930b188c768290))

## [2.18.1](https://github.com/Doist/twist-cli/compare/v2.18.0...v2.18.1) (2026-03-25)

### Bug Fixes

- use cross-platform postinstall script ([#102](https://github.com/Doist/twist-cli/issues/102)) ([dabe906](https://github.com/Doist/twist-cli/commit/dabe9069eb106349488ae79b1b0e92f21fae979b))

# [2.18.0](https://github.com/Doist/twist-cli/compare/v2.17.1...v2.18.0) (2026-03-25)

### Features

- add new agent skills ([#101](https://github.com/Doist/twist-cli/issues/101)) ([37fa53f](https://github.com/Doist/twist-cli/commit/37fa53f899a9031c957a81d6266ad4073023440e))

## [2.17.1](https://github.com/Doist/twist-cli/compare/v2.17.0...v2.17.1) (2026-03-23)

### Bug Fixes

- **deps:** update dependency @doist/twist-sdk to v2.1.2 ([#100](https://github.com/Doist/twist-cli/issues/100)) ([cd5d313](https://github.com/Doist/twist-cli/commit/cd5d3135868b28ae38c32d9b7850a752b0e99cd7))

# [2.17.0](https://github.com/Doist/twist-cli/compare/v2.16.0...v2.17.0) (2026-03-21)

### Features

- add changelog command and post-update hint ([#96](https://github.com/Doist/twist-cli/issues/96)) ([daed3da](https://github.com/Doist/twist-cli/commit/daed3da5c11d79c8c3da9d102c8f73f10276817e))

# [2.16.0](https://github.com/Doist/twist-cli/compare/v2.15.0...v2.16.0) (2026-03-21)

### Features

- add thread create command and document stdin piping ([#95](https://github.com/Doist/twist-cli/issues/95)) ([5d9a9c3](https://github.com/Doist/twist-cli/commit/5d9a9c373a138647c70b3a953287d7f2e6be7732))

# [2.15.0](https://github.com/Doist/twist-cli/compare/v2.14.2...v2.15.0) (2026-03-19)

### Features

- add --json output to auth status command ([#93](https://github.com/Doist/twist-cli/issues/93)) ([7bdec70](https://github.com/Doist/twist-cli/commit/7bdec7071e4e711f1c67d6a300d8db6d857c7eb1))

## [2.14.2](https://github.com/Doist/twist-cli/compare/v2.14.1...v2.14.2) (2026-03-18)

### Bug Fixes

- handle batch response errors in thread view ([#91](https://github.com/Doist/twist-cli/issues/91)) ([a6e7fd6](https://github.com/Doist/twist-cli/commit/a6e7fd6ae81ef50a5fc7575dcaa95056de9c0af8))

## [2.14.1](https://github.com/Doist/twist-cli/compare/v2.14.0...v2.14.1) (2026-03-15)

### Bug Fixes

- make thread view --unread filter correctly across all output modes ([#86](https://github.com/Doist/twist-cli/issues/86)) ([92478c9](https://github.com/Doist/twist-cli/commit/92478c98811124d3d87738f7288a0451574562b0))

# [2.14.0](https://github.com/Doist/twist-cli/compare/v2.13.0...v2.14.0) (2026-03-15)

### Features

- Add read-only OAuth mode for safe autonomous tool use ([#81](https://github.com/Doist/twist-cli/issues/81)) ([6e4ea5d](https://github.com/Doist/twist-cli/commit/6e4ea5dfffa89fe1bf176753e57ad93879a9cd25))

# [2.13.0](https://github.com/Doist/twist-cli/compare/v2.12.0...v2.13.0) (2026-03-15)

### Features

- show version transition during tw update ([#85](https://github.com/Doist/twist-cli/issues/85)) ([99134d8](https://github.com/Doist/twist-cli/commit/99134d8280283ecd2f72a6f300d3a356d89a592b))

# [2.12.0](https://github.com/Doist/twist-cli/compare/v2.11.0...v2.12.0) (2026-03-14)

### Features

- add --json support to mutating commands ([#84](https://github.com/Doist/twist-cli/issues/84)) ([738ecf2](https://github.com/Doist/twist-cli/commit/738ecf209fccf3675f52b92fe8c697d94c562496))

# [2.11.0](https://github.com/Doist/twist-cli/compare/v2.10.0...v2.11.0) (2026-03-12)

### Features

- add away status command ([#79](https://github.com/Doist/twist-cli/issues/79)) ([9fd71e7](https://github.com/Doist/twist-cli/commit/9fd71e7a7ce05c4092e65944be52390ddec9b7ff))

# [2.10.0](https://github.com/Doist/twist-cli/compare/v2.9.1...v2.10.0) (2026-03-11)

### Features

- store auth tokens in OS credential storage ([#77](https://github.com/Doist/twist-cli/issues/77)) ([b67a11b](https://github.com/Doist/twist-cli/commit/b67a11b36ecf82aed2f21a9e5deecc52146f801e))

## [2.9.1](https://github.com/Doist/twist-cli/compare/v2.9.0...v2.9.1) (2026-03-11)

### Bug Fixes

- **deps:** update dependency open to v11 ([#66](https://github.com/Doist/twist-cli/issues/66)) ([3503e7f](https://github.com/Doist/twist-cli/commit/3503e7fb52b0b5e471a81b63fedf6a099ec2836e))

# [2.9.0](https://github.com/Doist/twist-cli/compare/v2.8.0...v2.9.0) (2026-03-11)

### Features

- add conversation lookup by user ([#76](https://github.com/Doist/twist-cli/issues/76)) ([50ebe3b](https://github.com/Doist/twist-cli/commit/50ebe3bd43019703e80a7fc5dace94c82182aad7))

# [2.8.0](https://github.com/Doist/twist-cli/compare/v2.7.2...v2.8.0) (2026-03-09)

### Features

- include reactions in essential JSON output fields ([72b6bca](https://github.com/Doist/twist-cli/commit/72b6bca15422252db0fbd5ebbaa721cc11becd8f))

## [2.7.2](https://github.com/Doist/twist-cli/compare/v2.7.1...v2.7.2) (2026-02-26)

### Bug Fixes

- **deps:** update dependency yocto-spinner to v1.1.0 ([#63](https://github.com/Doist/twist-cli/issues/63)) ([e1ddeb2](https://github.com/Doist/twist-cli/commit/e1ddeb260c193e23d1dd38bc9a3c99394f1e277c))

## [2.7.1](https://github.com/Doist/twist-cli/compare/v2.7.0...v2.7.1) (2026-02-25)

### Bug Fixes

- **deps:** update dependency commander to v14.0.3 ([#57](https://github.com/Doist/twist-cli/issues/57)) ([5e92b39](https://github.com/Doist/twist-cli/commit/5e92b398973c09c76dfae8cad3c03b45305a3038))

# [2.7.0](https://github.com/Doist/twist-cli/compare/v2.6.0...v2.7.0) (2026-02-25)

### Features

- suppress package manager output during `tw update` ([#55](https://github.com/Doist/twist-cli/issues/55)) ([fdc9d88](https://github.com/Doist/twist-cli/commit/fdc9d88026f481d1063722fdeedfcf6847fbdf5b))

# [2.6.0](https://github.com/Doist/twist-cli/compare/v2.5.1...v2.6.0) (2026-02-25)

### Features

- upgrade OAuth pages with twist-cli branding icon ([#52](https://github.com/Doist/twist-cli/issues/52)) ([880649f](https://github.com/Doist/twist-cli/commit/880649fcdc381e6e6e94503d7173cdd60e3f1f6e))

## [2.5.1](https://github.com/Doist/twist-cli/compare/v2.5.0...v2.5.1) (2026-02-21)

### Bug Fixes

- remove inaccessible renovate-config-internal preset ([#50](https://github.com/Doist/twist-cli/issues/50)) ([b36a16d](https://github.com/Doist/twist-cli/commit/b36a16db0835e10d79f34c44027c336d6af42eb9))

# [2.5.0](https://github.com/Doist/twist-cli/compare/v2.4.0...v2.5.0) (2026-02-21)

### Features

- add --accessible flag for screen-reader-friendly output ([#47](https://github.com/Doist/twist-cli/issues/47)) ([5317cdf](https://github.com/Doist/twist-cli/commit/5317cdf729e6faa43f339cbb4ef4ab1a0e7ad02a))
- add Gemini CLI skill ([#48](https://github.com/Doist/twist-cli/issues/48)) ([7992c26](https://github.com/Doist/twist-cli/commit/7992c26f11eb9d5b23d00270a3779a05b4ed9e6c))

# [2.4.0](https://github.com/Doist/twist-cli/compare/v2.3.0...v2.4.0) (2026-02-21)

### Features

- add `tw update` self-update command ([#46](https://github.com/Doist/twist-cli/issues/46)) ([b6a019b](https://github.com/Doist/twist-cli/commit/b6a019bf3f8a0178754125165591ae8fe71f7a67))

# [2.3.0](https://github.com/Doist/twist-cli/compare/v2.2.0...v2.3.0) (2026-02-20)

### Features

- add shell completions for tw CLI ([#40](https://github.com/Doist/twist-cli/issues/40)) ([3ad6797](https://github.com/Doist/twist-cli/commit/3ad6797075013f9b0c7ee7947025f0cba9d800af))

# [2.2.0](https://github.com/Doist/twist-cli/compare/v2.1.0...v2.2.0) (2026-02-20)

### Features

- Improve lenient reference handling across CLI commands ([#38](https://github.com/Doist/twist-cli/issues/38)) ([bbf3a9b](https://github.com/Doist/twist-cli/commit/bbf3a9b550a3cf2f03299d2c81ab2d440d016291))

# [2.1.0](https://github.com/Doist/twist-cli/compare/v2.0.0...v2.1.0) (2026-02-19)

### Features

- add `tw view <url>` router command ([#42](https://github.com/Doist/twist-cli/issues/42)) ([b5263fa](https://github.com/Doist/twist-cli/commit/b5263faaded723964b7c65f50a2efac78d491288))

# [2.0.0](https://github.com/Doist/twist-cli/compare/v1.11.0...v2.0.0) (2026-02-19)

- feat!: rename `tw msg` to `tw conversation`, repurpose `tw msg` for message operations ([#41](https://github.com/Doist/twist-cli/issues/41)) ([786e97a](https://github.com/Doist/twist-cli/commit/786e97a6d20572a8edb5beccb233c93f9091c38b))

### BREAKING CHANGES

- `tw msg` no longer operates on conversations. Use `tw conversation`
  (alias: `convo`) for conversation-level operations (unread, view, reply, done).
  `tw msg` (alias: `message`) now operates on individual conversation messages
  (view, update, delete).

Also adds alias support to the lazy-loading system and a missing spinner entry
for `conversationMessages.getMessage`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

- fix: apply field filtering to ndjson output in msg view

Ensures --ndjson applies the same essential field filtering as --json,
as flagged in PR review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

# [1.11.0](https://github.com/Doist/twist-cli/compare/v1.10.1...v1.11.0) (2026-02-17)

### Features

- add `tw skill update` command and postinstall auto-update ([#37](https://github.com/Doist/twist-cli/issues/37)) ([6b977f0](https://github.com/Doist/twist-cli/commit/6b977f0b232889656ee9e4903a844e1d2af60b52))

## [1.10.1](https://github.com/Doist/twist-cli/compare/v1.10.0...v1.10.1) (2026-02-13)

### Performance Improvements

- lazy-load commands and show early spinner for instant feedback ([#35](https://github.com/Doist/twist-cli/issues/35)) ([1f3629f](https://github.com/Doist/twist-cli/commit/1f3629fddb06bf8524faea5680b4918d3a363dfa))

# [1.10.0](https://github.com/Doist/twist-cli/compare/v1.9.1...v1.10.0) (2026-02-12)

### Features

- lenient CLI ergonomics — implicit view, workspace flag aliases, conflict detection ([#34](https://github.com/Doist/twist-cli/issues/34)) ([d5c8339](https://github.com/Doist/twist-cli/commit/d5c83391a6bf37edca365bd47d66a1e44a0373bd))

## [1.9.1](https://github.com/Doist/twist-cli/compare/v1.9.0...v1.9.1) (2026-02-10)

### Bug Fixes

- **deps:** Update to 2.0.2 of `@doist/twist-sdk` ([#32](https://github.com/Doist/twist-cli/issues/32)) ([bd33220](https://github.com/Doist/twist-cli/commit/bd332208901b1d45396e9227d6117b7b4a226e0c))

# [1.9.0](https://github.com/Doist/twist-cli/compare/v1.8.0...v1.9.0) (2026-02-09)

### Features

- upgrade twist-sdk to v2.0.1 and use entity.url instead of getFullTwistURL() ([#31](https://github.com/Doist/twist-cli/issues/31)) ([ce8742b](https://github.com/Doist/twist-cli/commit/ce8742b5e134ab6ee119720f5688ed651c581ed0))

# [1.8.0](https://github.com/Doist/twist-cli/compare/v1.7.0...v1.8.0) (2026-02-09)

### Features

- Default to public channels only, add --include-private-channels option ([#27](https://github.com/Doist/twist-cli/issues/27)) ([77c0a18](https://github.com/Doist/twist-cli/commit/77c0a181ab9b2b21db828687cdfd71f25a33800a))

# [1.7.0](https://github.com/Doist/twist-cli/compare/v1.6.1...v1.7.0) (2026-02-09)

### Features

- add --comment flag to thread view ([#28](https://github.com/Doist/twist-cli/issues/28)) ([60fd075](https://github.com/Doist/twist-cli/commit/60fd075a8562b0bd18ad6f10f8805dd87fef2574))

## [1.6.1](https://github.com/Doist/twist-cli/compare/v1.6.0...v1.6.1) (2026-02-08)

### Bug Fixes

- add missing flags and commands to skill content ([#30](https://github.com/Doist/twist-cli/issues/30)) ([479485a](https://github.com/Doist/twist-cli/commit/479485a387acd1e99894f15bda0078b30efda891))

# [1.6.0](https://github.com/Doist/twist-cli/compare/v1.5.0...v1.6.0) (2026-02-07)

### Bug Fixes

- strictly validate user IDs in --notify to reject non-numeric input ([d8e9ee5](https://github.com/Doist/twist-cli/commit/d8e9ee598e970dca1e5d1d98b9f74d8985b9b0f8))

### Features

- add recipients option ([91fdc05](https://github.com/Doist/twist-cli/commit/91fdc0592e567fb4832bdb59473de746f3034f5f))

# [1.5.0](https://github.com/Doist/twist-cli/compare/v1.4.0...v1.5.0) (2026-01-29)

### Features

- add --progress-jsonl flag for machine-readable progress reporting ([#24](https://github.com/Doist/twist-cli/issues/24)) ([3d7a266](https://github.com/Doist/twist-cli/commit/3d7a266574f97bcc480f5023d5251f1839309318))

# [1.4.0](https://github.com/Doist/twist-cli/compare/v1.3.1...v1.4.0) (2026-01-29)

### Bug Fixes

- **deps:** update to latest `@doist/twist-sdk` package ([8a8cd6d](https://github.com/Doist/twist-cli/commit/8a8cd6de86bcce56bb01f2f64edd9835fe89407d))

### Features

- add GitHub Action workflow for automated @doist/twist-sdk updates ([7cbdeb1](https://github.com/Doist/twist-cli/commit/7cbdeb184876b244ef26d948fc751c8b6a98b94a))

## [1.3.1](https://github.com/Doist/twist-cli/compare/v1.3.0...v1.3.1) (2026-01-27)

### Bug Fixes

- Ensure that client registration provides a logo ([#21](https://github.com/Doist/twist-cli/issues/21)) ([ad5333c](https://github.com/Doist/twist-cli/commit/ad5333cb451c5766555d4b0fa88671ec48475b17))

# [1.3.0](https://github.com/Doist/twist-cli/compare/v1.2.0...v1.3.0) (2026-01-24)

### Features

- add hidden interactive prompt for auth token input ([#20](https://github.com/Doist/twist-cli/issues/20)) ([1a5b7be](https://github.com/Doist/twist-cli/commit/1a5b7bef835fa5b752285e1954d7857e07c6c28c))

# [1.2.0](https://github.com/Doist/twist-cli/compare/v1.1.0...v1.2.0) (2026-01-23)

### Features

- add codex and cursor agent skill support ([#18](https://github.com/Doist/twist-cli/issues/18)) ([1a3b182](https://github.com/Doist/twist-cli/commit/1a3b182ae6f4cd5d439e26bfba6df65ab66c7684))

# [1.1.0](https://github.com/Doist/twist-cli/compare/v1.0.1...v1.1.0) (2026-01-23)

### Bug Fixes

- Format error message on single line ([89f3ef8](https://github.com/Doist/twist-cli/commit/89f3ef8b410565e3e0186447d7cf57ab50a12011))

### Features

- Add tw skill command for agent skill integrations ([1228ce6](https://github.com/Doist/twist-cli/commit/1228ce63f2dc0b7ac2ed17b3121660ff7c760514))

## [1.0.1](https://github.com/Doist/twist-cli/compare/v1.0.0...v1.0.1) (2026-01-22)

### Bug Fixes

- remove registry-url from setup-node for provenance publishing ([#14](https://github.com/Doist/twist-cli/issues/14)) ([1fe3f49](https://github.com/Doist/twist-cli/commit/1fe3f49e9c504c9c17b29b4e36494bc76e7829fe))
- upgrade semantic-release to v25 and fix trusted publishing ([#16](https://github.com/Doist/twist-cli/issues/16)) ([7d45c08](https://github.com/Doist/twist-cli/commit/7d45c0841343d35ef1eb4ba4cee99497d90937e6))
- use Node 22 for release job to satisfy semantic-release v25 requirements ([#17](https://github.com/Doist/twist-cli/issues/17)) ([96b0d9d](https://github.com/Doist/twist-cli/commit/96b0d9de8b95dd0b39eac78f56f492ff01671ca9))

# 1.0.0 (2026-01-22)

### Bug Fixes

- add UTF-8 charset to OAuth callback HTML responses ([#8](https://github.com/Doist/twist-cli/issues/8)) ([fcb2d49](https://github.com/Doist/twist-cli/commit/fcb2d49664720292d066993dacab5c0cb7ee5f53))

### Features

- Add Biome linting, upgrade to Node 20, and add CI workflows ([#3](https://github.com/Doist/twist-cli/issues/3)) ([57f802e](https://github.com/Doist/twist-cli/commit/57f802e60f7133b7cc4fedfe7a9fd0058faa4e61))
- add loading animations with global API proxy integration ([#7](https://github.com/Doist/twist-cli/issues/7)) ([bf53bfb](https://github.com/Doist/twist-cli/commit/bf53bfbcc99daa086b9883b33848c7226ee33499))
- Add OAuth authentication with dynamic client registration ([#6](https://github.com/Doist/twist-cli/issues/6)) ([2845ebd](https://github.com/Doist/twist-cli/commit/2845ebd916b3d7a5e390135d8ebe52c668641a71)), closes [#5](https://github.com/Doist/twist-cli/issues/5)
- add semantic release automation for NPM publishing ([#10](https://github.com/Doist/twist-cli/issues/10)) ([c756324](https://github.com/Doist/twist-cli/commit/c7563244f20f769c6573b89562e9f9c3b2728444))
- Refactor login command to auth with status/logout subcommands ([#4](https://github.com/Doist/twist-cli/issues/4)) ([59e6493](https://github.com/Doist/twist-cli/commit/59e6493455f3f6034a3a7183b423fdf1ceddee91))

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
