Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 13:26

The first release of lin - the Linear CLI for humans and AI agents. One fast
native binary over the Linear GraphQL API, JSON-first and headless-friendly.

Docs: https://lin.alexgrais.dev

Added

  • Full-spectrum command surface (MCP parity + staged waves): issue (CRUD, relations,
    sub-issues, archive lifecycle), comment, label, team, state, project (+ labels),
    milestone, initiative (+ labels, project linking), cycle, user, status-update,
    document, attachment (3-step signed upload dance), release / release-note /
    release-pipeline, customer / customer-need, whoami, version, describe.
  • Agent-friendly contract: JSON-first output (--output json|ndjson|table),
    --fields masking, --dry-run on every mutation, raw --json payloads,
    cursor pagination (--limit/--cursor/--all), sysexits exit codes,
    lin describe runtime introspection, input hardening, --confirm on deletes.
  • lin auth with named profiles (login, status, logout, switch), stored in
    ~/.config/lin/config.json at mode 0600 and selected with --profile. Secrets
    are read from stdin, a hidden TTY prompt, or --from-env, never from a flag, and
    are validated against the API before being written.
  • Retrying GraphQL transport (Authorization without Bearer, backoff + jitter,
    Retry-After, mutation-safe retry policy, null pruning to avoid field clears).
  • Vendored Linear GraphQL schema with genqlient codegen and refresh tool.
  • Documentation site generated from lin describe, so the command reference
    cannot drift from the binary.
  • Token benchmark against the Linear MCP under bench/: ~8,300 tokens for a
    40-turn agent session, against ~69,800 through a lazy MCP client. Methodology,
    raw payloads, and scripts are reproducible.

Install

go install github.com/alexgrais/lin/cmd/lin@v0.1.0

Or download a binary for your platform from the assets below. Verify with
checksums.txt.

A Homebrew tap is not published yet; it will land as alexgrais/tap/lincli.

Getting started

lin auth login          # store a Linear API key, validated before saving
lin issue list --team ENG --fields identifier,title,state
lin issue create --team ENG --title "Fix login" --labels bug --assignee me