Skip to content

Feature: cycle management (create / update / delete) + expose IDs #4

@muqsitnawaz

Description

@muqsitnawaz

What's missing

linear cycles lists cycles but only shows names and dates. There's no way from the CLI to:

  • See cycle IDs (needed for any mutation or external GraphQL call)
  • Rename a cycle (cycles update <id> --name "...")
  • Create a cycle (cycles create --name "..." --starts 2026-07-01 --ends 2026-07-07)
  • Delete a cycle (cycles delete <id>)

The team helper at line 277 (list_team_cycles) already fetches IDs from the API — they're just not surfaced.

Why it matters

Triage scenarios where the team's MRR/goal targets shift mid-quarter. In this session I had 13 weekly cycles with mis-calibrated targets baked into their names (e.g. Q2W13 — Unicorn (\$2.78M MRR)) and the only way to rename them was to drop to raw GraphQL with the cycleUpdate mutation.

The single-file no-deps story means raw GraphQL is technically fine, but it defeats the whole "Linear from the shell" promise for any agent doing cycle-level cleanup.

Proposed surface

linear cycles                                       # list (already works) — add an --ids/--json flag
linear cycles create --name "..." --starts ISO --ends ISO
linear cycles update <id-or-name> --name "..." [--starts ISO] [--ends ISO]
linear cycles delete <id-or-name>

Accept fuzzy match on cycle name as a convenience (since IDs are uuids).

Linear API reference

  • Query: team.cycles(...) — already used at line 254 and line 277
  • Mutations: cycleCreate(input: CycleCreateInput!), cycleUpdate(id: String!, input: CycleUpdateInput!), cycleArchive(id: String!)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions