@kyaukyuai/linear-cli 2.11.0 → 2.12.1
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 +25 -0
- package/README.md +52 -4
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [2.12.1] - 2026-03-30
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- added `stateName` to `issue list --json` as an additive convenience field while keeping the nested `state` object unchanged
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- refreshed the README, agent workflow docs, and skills.sh install guidance to better position `linear-cli` as an agent-first Linear CLI
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- preserved agent-first generated skill docs so `deno task generate-skill-docs` no longer reverts the published skill description and command guidance
|
|
18
|
+
|
|
19
|
+
## [2.12.0] - 2026-03-30
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- added schema-style metadata to `linear capabilities --json` so agents can inspect command arguments, input modes, output semantics, and exit codes without scraping docs
|
|
24
|
+
- added Automation Contract v5 coverage for `initiative list/view --json`, `project-update list --json`, and `initiative-update list --json`
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- upgraded write timeout handling to reconcile against Linear after client-side confirmation timeouts, distinguishing `probably_succeeded`, `definitely_failed`, and `partial_success` outcomes for high-value write commands
|
|
29
|
+
|
|
5
30
|
## [2.11.0] - 2026-03-30
|
|
6
31
|
|
|
7
32
|
### Added
|
package/README.md
CHANGED
|
@@ -16,6 +16,22 @@ linear notification list --json
|
|
|
16
16
|
|
|
17
17
|
interactive commands still exist for humans, but the primary design goal is that an agent can discover commands incrementally, pass all important input as flags or stdin, and get machine-readable success or failure back.
|
|
18
18
|
|
|
19
|
+
## for agents
|
|
20
|
+
|
|
21
|
+
If an agent only reads one page, it should be this README plus the two contract docs below.
|
|
22
|
+
|
|
23
|
+
- start with `linear capabilities --json` to discover which commands support `--json`, `--dry-run`, stdin, confirmation bypass, and stable automation contracts
|
|
24
|
+
- prefer stable read surfaces such as `issue`, `project`, `cycle`, `milestone`, `document`, `webhook`, `notification`, `team`, `user`, `workflow-state`, `label`, `initiative`, and update feeds with `--json`
|
|
25
|
+
- preview writes with `--dry-run --json` before mutating Linear
|
|
26
|
+
- apply writes with `--json`, then inspect exit codes and `error.details` instead of parsing terminal text
|
|
27
|
+
- use stdin or file flags for Markdown-heavy descriptions and comments instead of long inline shell strings
|
|
28
|
+
|
|
29
|
+
Recommended docs:
|
|
30
|
+
|
|
31
|
+
- [Agent workflow guide](docs/agent-first.md)
|
|
32
|
+
- [Automation contracts](docs/json-contracts.md)
|
|
33
|
+
- [stdin and pipeline policy](docs/stdin-policy.md)
|
|
34
|
+
|
|
19
35
|
## screencast demos
|
|
20
36
|
|
|
21
37
|
<details>
|
|
@@ -36,6 +52,24 @@ interactive commands still exist for humans, but the primary design goal is that
|
|
|
36
52
|
|
|
37
53
|
for agents and scripts, prefer a pinned install in the repo or runtime you control.
|
|
38
54
|
|
|
55
|
+
### install as a skill
|
|
56
|
+
|
|
57
|
+
If you want to expose `linear-cli` as a reusable skill on top of an existing agent runtime, install it from the repo root and select the public skill explicitly:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx skills add https://github.com/kyaukyuai/linear-cli --skill linear-cli
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
This is the most compatible form for `skills` and `skills.sh`.
|
|
64
|
+
|
|
65
|
+
If you want to point directly at the skill directory instead, this also works:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx skills add https://github.com/kyaukyuai/linear-cli/tree/main/skills/linear-cli
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Once installed, agents can load the skill and then call the local `linear` binary using the agent-first guidance in [skills/linear-cli/SKILL.md](skills/linear-cli/SKILL.md).
|
|
72
|
+
|
|
39
73
|
### npm / bun / pnpm
|
|
40
74
|
|
|
41
75
|
install as a dependency to pin a version in your project:
|
|
@@ -59,6 +93,8 @@ bunx linear issue list
|
|
|
59
93
|
|
|
60
94
|
package on npm: [@kyaukyuai/linear-cli](https://www.npmjs.com/package/@kyaukyuai/linear-cli)
|
|
61
95
|
|
|
96
|
+
skills directory on GitHub: [skills/linear-cli](https://github.com/kyaukyuai/linear-cli/tree/main/skills/linear-cli)
|
|
97
|
+
|
|
62
98
|
### deno via jsr
|
|
63
99
|
|
|
64
100
|
```bash
|
|
@@ -88,7 +124,7 @@ deno task install
|
|
|
88
124
|
compared to upstream, this fork adds and maintains capabilities aimed at automation-heavy workflows:
|
|
89
125
|
|
|
90
126
|
- stable JSON contracts for the automation tier, with machine-readable failures for parser, validation, and runtime errors
|
|
91
|
-
- a self-describing `linear capabilities --json` surface so agents can discover contract coverage and command traits without scraping docs
|
|
127
|
+
- a self-describing `linear capabilities --json` surface so agents can discover contract coverage, primary input schema, output semantics, and command traits without scraping docs
|
|
92
128
|
- `--dry-run` previews for high-value write commands, including `issue start`, issue writes, and non-issue writes
|
|
93
129
|
- stdin and pipeline support for high-value write paths
|
|
94
130
|
- retry-safe semantics for relation add/delete, project label add/remove, notification read/archive, and structured partial-failure details
|
|
@@ -101,26 +137,38 @@ compared to upstream, this fork adds and maintains capabilities aimed at automat
|
|
|
101
137
|
- workflow state commands for `list` and `view`
|
|
102
138
|
- user commands for `list` and `view`
|
|
103
139
|
- project label commands for `list` and `project label add/remove`
|
|
104
|
-
-
|
|
140
|
+
- initiative commands for `list` and `view`, plus project update and initiative update feeds
|
|
141
|
+
- JSON output for scripting across issue, cycle, project, milestone, initiative, document, webhook, notification, and update-feed commands
|
|
105
142
|
- workspace-aware auth management with keyring migration and default workspace support
|
|
106
143
|
- generated AI-agent skill docs, Claude plugin metadata, npm publishing, and Homebrew tap release plumbing
|
|
107
144
|
|
|
145
|
+
## docs map
|
|
146
|
+
|
|
147
|
+
Use the docs in this order if you are building an agent integration:
|
|
148
|
+
|
|
149
|
+
1. [docs/agent-first.md](docs/agent-first.md) for the recommended discover/read/preview/apply/recover loop
|
|
150
|
+
2. [docs/json-contracts.md](docs/json-contracts.md) for stable JSON payloads, exit codes, timeout semantics, and dry-run envelopes
|
|
151
|
+
3. [docs/stdin-policy.md](docs/stdin-policy.md) for pipeline and file-input conventions
|
|
152
|
+
4. [`linear capabilities --json`](#automation-contract) for machine-readable command metadata at runtime
|
|
153
|
+
|
|
108
154
|
## automation contract
|
|
109
155
|
|
|
110
156
|
for bot and org-wide automation use cases, `linear-cli` defines a stable JSON contract for a focused automation tier.
|
|
111
157
|
|
|
112
|
-
to discover the curated agent-facing command surface programmatically, use `linear capabilities --json`. it reports stable contract versions, automation-tier membership, and per-command support for `--json`, `--dry-run`, stdin, confirmation bypass, and
|
|
158
|
+
to discover the curated agent-facing command surface programmatically, use `linear capabilities --json`. it reports stable contract versions, automation-tier membership, and per-command support for `--json`, `--dry-run`, stdin, confirmation bypass, idempotency category, primary arguments and flags, and success/failure output semantics.
|
|
113
159
|
|
|
114
160
|
- v1 in scope: `issue list/view/create/update --json`, `issue relation add/delete/list --json`, `issue comment add --json`, `team members --json`, `issue parent/children/create-batch --json`
|
|
115
161
|
- v2 additions: `project list/view --json`, `cycle list/view/current/next --json`, `milestone list/view --json`
|
|
116
162
|
- v3 additions: `document list/view --json`, `webhook list/view --json`, `notification list/count --json`
|
|
163
|
+
- v4 additions: `team list/view --json`, `user list/view --json`, `workflow-state list/view --json`, `label list --json`, `project-label list --json`
|
|
164
|
+
- v5 additions: `initiative list/view --json`, `project-update list --json`, `initiative-update list --json`
|
|
117
165
|
- out of scope: non-JSON terminal output, `linear api`, and other `--json` commands that are not listed above
|
|
118
166
|
|
|
119
167
|
the contract fixes top-level success payload shapes and requires machine-readable failure payloads for the automation tier. see [docs/json-contracts.md](docs/json-contracts.md) for the full contract, compatibility rules, and example payloads. that guarantee also covers parser and argument validation failures when `--json` is present.
|
|
120
168
|
|
|
121
169
|
for automation consumers, auth and authorization failures now use exit code `4`, free-plan or workspace-plan limit failures use exit code `5`, and client-side write confirmation timeouts use exit code `6`. other contract failures remain non-zero and currently use `1`. rate-limited responses remain on exit code `1`, but now include retry guidance and, when available, `error.details.rateLimit` metadata.
|
|
122
170
|
|
|
123
|
-
high-value
|
|
171
|
+
high-value write commands honor `LINEAR_WRITE_TIMEOUT_MS` and accept `--timeout-ms` for per-command overrides. timeout failures return a distinct machine-readable failure mode, `timeout_error`, with `error.details.failureMode = "timeout_waiting_for_confirmation"`. when reconciliation runs after the timeout, `error.details.outcome` now distinguishes `definitely_failed`, `probably_succeeded`, and `partial_success` from the fallback `unknown` state. notification `read` and `archive` now use the same timeout contract as issue write commands.
|
|
124
172
|
|
|
125
173
|
the same document also defines the shared preview contract for future `--dry-run` write commands. those commands are not all implemented yet, but the contract now fixes the expected `stdout`, `exit code`, and `--json --dry-run` envelope shape ahead of rollout.
|
|
126
174
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"name": "@kyaukyuai/linear-cli",
|
|
26
|
-
"version": "2.
|
|
26
|
+
"version": "2.12.1"
|
|
27
27
|
},
|
|
28
28
|
"node_modules/@isaacs/cliui": {
|
|
29
29
|
"engines": {
|
|
@@ -542,5 +542,5 @@
|
|
|
542
542
|
}
|
|
543
543
|
},
|
|
544
544
|
"requires": true,
|
|
545
|
-
"version": "2.
|
|
545
|
+
"version": "2.12.1"
|
|
546
546
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/kyaukyuai/linear-cli/releases/download/v2.
|
|
3
|
+
"https://github.com/kyaukyuai/linear-cli/releases/download/v2.12.1"
|
|
4
4
|
],
|
|
5
5
|
"bin": {
|
|
6
6
|
"linear": "run-linear.js"
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"zipExt": ".tar.xz"
|
|
86
86
|
}
|
|
87
87
|
},
|
|
88
|
-
"version": "2.
|
|
88
|
+
"version": "2.12.1",
|
|
89
89
|
"volta": {
|
|
90
90
|
"node": "18.14.1",
|
|
91
91
|
"npm": "9.5.0"
|