Skip to content

Releases: phnx-labs/linear-cli

v0.6.0 — read & display the delegate (assignee → agent)

Choose a tag to compare

@muqsitnawaz muqsitnawaz released this 07 Jul 06:40

Makes delegation legible. --delegate was write-only — you could hand an issue to an agent, but every read path (list rows, detail view) requested only assignee, so a delegated issue never showed which agent was on it.

Added

  • delegate { name } is now requested in the list and detail queries.
  • List rows render Assignee → delegate (e.g. Muqsit → Claude); rows with no delegate are unchanged.
  • Detail view (linear tasks <ID>) prints a Delegate: line under Assignee: when the issue is delegated.

Note

This release also carries 0.5.0 (agent-member auto-detection + the --delegate write path), which was committed but never tagged.

Verified end-to-end against a live Linear workspace across list, detail, and --json surfaces.

v0.4.0 — cycle/label management, bulk update, complete pagination

Choose a tag to compare

@muqsitnawaz muqsitnawaz released this 24 Jun 05:44
70b691f

Finishes the shell-native management story for cycles and labels, completes the pagination sweep, and makes update a batch tool. Closes #3, #4, #5, #6, #7, #8.

Added

  • cycles create|update|delete + cycles --ids — manage cycles from the shell (cycleCreate / cycleUpdate / cycleArchive); resolve by fuzzy name, number, or UUID. (#4)
  • labels create|update|delete — label CRUD (issueLabelCreate / issueLabelUpdate / issueLabelDelete) for cleaning up accidental/one-off labels. (#5)
  • tasks --cycle <name|number|id> for any specific cycle; backlog alias for none. (#6)
  • tasks --since YYYY-MM-DD — floor the list to issues created on/after a date. (#6)
  • Bulk update — multiple ids (update RUSH-1 RUSH-2 --cycle none) or --stdin (... | linear update --stdin --label x); [i/n] progress, errors rolled up at the end, single-ticket output unchanged. (#7)

Fixed

  • tasks --board no longer queries the non-existent team.nextCycle--board --cycle next (and every board view) now resolves the cycle like the list view, returning results instead of a GraphQL error. (#3)
  • tasks --board is fully paginated and accepts all cycle scopes — it previously hit the single-page activeCycle.issues path and silently capped at 50. (#8)
  • Pagination now also covers cycles, labels, users, and projects (and the label lookups in update/create), via a shared paginate_connection helper — no list silently truncates at Linear's default page size. (#8)

Full Changelog: v0.3.1...v0.4.0

v0.3.1 — inverse relation display fix

Choose a tag to compare

@muqsitnawaz muqsitnawaz released this 24 Jun 01:35

Fixes the detail view so symmetric related/duplicate relations render from the inverse side too (previously only blocks inverted to "Blocked by"). Found while live-testing relation writes against a real team. Relation writes (--blocks/--blocked-by/--relates) are now verified end-to-end.

v0.3.0 — pagination, scopes, assignee, states, relations

Choose a tag to compare

@muqsitnawaz muqsitnawaz released this 24 Jun 00:55

Closes the load-bearing read gaps for agent workflows.

Headline: pagination. Lists no longer silently truncate at Linear's 50-issue page cap — on a real cycle this surfaced 137 tasks where the old code showed 50, the exact cause of "search before you create" missing existing tickets and filing duplicates.

Added

  • Full pagination on every issue list (tasks, --query, --board) — follows pageInfo to the end
  • tasks --cycle all (whole team: every cycle + backlog) and --cycle none (backlog only)
  • tasks --assignee me|none|<email> — filter by real assignee, not just the agent: label lane
  • linear states — list the team's workflow states (valid --status values)
  • update --blocks / --blocked-by / --relates — create issue relations
  • Detail view shows relations (Blocks / Blocked by / Related to / Duplicate of) + project, cycle, parent, url, estimate, due date

Changed

  • tasks --json shape: { scope, cycle, count, issues } (the issues array is unchanged; cycle is null for all/none)
  • Detail --json no longer drops project/cycle/parent/url/estimate/dueDate/relations

Single-file, zero-dependency Python — install: curl -sSL https://raw.githubusercontent.com/phnx-labs/linear-cli/main/install.sh | sh

v0.1.3 — --due-date flag

Choose a tag to compare

@muqsitnawaz muqsitnawaz released this 29 May 17:49

Highlights

--due-date for create and update — PR #1.

linear create "My task" --due-date 2026-12-31
linear update RUSH-565 --due-date 2026-04-26
linear update RUSH-565 --due-date none    # clear

Validated via datetime.date.fromisoformat. Zero new deps.

Closes #1.

linear-cli 0.1.2

Choose a tag to compare

@muqsitnawaz muqsitnawaz released this 26 Apr 10:22

Bug-fix release. No code-behavior changes; resolves two HN-readiness inconsistencies.

Fixed

  • install.sh error message claimed Python 3.10+ was required; the script works on 3.9+ (matches README, badge, comparison table, FAQ).
  • SECURITY.md claimed environment variables were rejected as a key-resolution path; the CLI has supported them since 0.1.0 alongside macOS Keychain. Rewrote the section to document all three paths (config / env / Keychain) with explicit tradeoffs.

Demo assets (gif, mp4) remain on v0.1.0.

linear-cli 0.1.1

Choose a tag to compare

@muqsitnawaz muqsitnawaz released this 25 Apr 00:36

Documentation polish on top of v0.1.0. No behavior changes — just the version bump.

What's new

  • Hero demo video embedded directly in the README (1080p, 17s, with audio). Sourced from the v0.1.0 release asset.
  • assets/flow.svg — replaces the ASCII flow diagram with a dark-grid SVG showing the human-files / agent-implements / human-reviews loop.
  • Zero supply chain attack surface section in README, with a matching badge in the badge row.
  • "Works with" harness logos under assets/harnesses/ — Claude, Codex, Gemini, Cursor.
  • Sanitized flow.svg — replaced personal email and handle with example values.

See CHANGELOG.md for the full diff.

Install

```bash
curl -sSL https://raw.githubusercontent.com/phnx-labs/linear-cli/main/install.sh | bash
```

linear-cli 0.1.0

Choose a tag to compare

@muqsitnawaz muqsitnawaz released this 24 Apr 22:44

First public release of linear-cli — a single-file Linear client for the shell.

Highlights

  • Linear for you and your agents. Same queue, same CLI. Type it yourself or hand it to a subagent.
  • Zero dependencies. Single ~43 KB Python file. No pip install, no npm, no cargo.
  • Proof-first completion. Close tickets with attachments, links, or text in one call: linear update GR-42 --done --proof <file|url|text>.
  • JSON output everywhere. --json on every read command. Pipe to jq or hand to a subagent.
  • Per-agent lanes. Multiple agents share one Linear team via --agent <name> filtering.

Install

```bash
curl -sSL https://raw.githubusercontent.com/phnx-labs/linear-cli/main/install.sh | bash
```

Why a CLI when Linear ships an MCP server?

MCP injects the full tool catalog into every agent turn — burns 13K+ tokens before the agent does anything useful. The CLI returns exactly the bytes you ask for. See the README for the full argument.

Demo

The attached `LinearDemo.mp4` (1080p, 17s, with audio) shows the three core flows: query queue, claim, ship with proof.

See CHANGELOG.md for the full feature list.