Skip to main content

Limitations

Go version declarations are inconsistent

go.mod declares go 1.26.2, while .github/workflows/ci.yml and CONTRIBUTING.md still refer to Go 1.23 or 1.23+. Use a toolchain compatible with the module declaration for local source builds. The CI version is an existing repository inconsistency and should not be used as proof that the current module supports Go 1.23.

Homebrew publishing is external

The README advertises brew install k0walski/tap/linear-cli, but the formula is not in this repository. .goreleaser.yaml builds archives and checksums and has no Homebrew publisher configuration. If the tap is unavailable or stale, use a release binary or go install instead.

Pagination is partial

Cursor input and output are available for issue list, team list, user list, project list, cycle list, and doc list. issue search, doc search, and label list return page information from Linear but do not expose a --cursor flag, so the CLI cannot request a following page for those commands. Comments and other get/create/update commands do not expose pagination controls.

Attachment uploads are three-step and memory-backed

attachment upload reads the entire local file into memory, requests a presigned URL, performs an HTTP PUT with a 60-second client timeout, and then creates the issue attachment. The source defines no file-size limit and no cleanup operation if the final attachment mutation fails after the upload succeeds. The content type comes from the file extension when known, otherwise from content sniffing.

API and feature scope

The CLI exposes only the commands listed in its Cobra registrations. It is not a general Linear GraphQL client: unsupported operations require another client or the Linear API directly. GraphQL errors that do not match the known authentication, permission, rate-limit, or not-found patterns become GENERAL_ERROR / 1.