Agent skill

Linctl

by dorkitude in dorkitude/linctl

Use linctl to read and update Linear issues, projects, teams, users, labels, comments, and agent sessions from the terminal.

MITAuto-check passed

Install Linctl

skills CLI
$ npx skills add dorkitude/linctl --skill linctl -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dorkitude/linctl linctl --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
linctl
GitHub stars
145
Token cost
~1.3k tokens
SKILL.md length
325 words
Files
79
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Use linctl to read and update Linear issues, projects, teams, users, labels, comments, and agent sessions from the terminal.

  • Works in 5 steps: Confirm identity and access. → Discover relevant entities (team key,… → Read exact target with get. → …
  • SKILL.md covers Quick Rules, High-Impact Gotchas, Auth + Credential Behavior and Core Workflow, plus 5 more sections
  • Runs Go and Ruby scripts from its folder; reaches github.com; needs LINCTL_API_KEY and TEAM_KEY

What it does

Linctl is an agent skill from dorkitude/linctl. Use linctl to read and update Linear issues, projects, teams, users, labels, comments, and agent sessions from the terminal. Prefer JSON reads, validate auth first, and use command-specific --help for exact flags.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 82 other files (for example `.github/workflows/bump-tap.yml`, `AGENTS.md` and `CHANGELOG.md`).

It works with Linear. The repository describes itself as: A Linear CLI tool built with agents in mind (but useful to humans too). Implemented in Golang with Cobra. The licence is MIT.

Example prompts

  • “/linctl”

Requirements

  • A credential in LINCTL_API_KEY
  • A credential in TEAM_KEY

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Confirm identity and access.
  2. Discover relevant entities (team key, issue ID, project ID, user email) via list/search with --json.
  3. Read exact target with get.
  4. Apply changes with create/update/assign/comment/label/agent commands.
  5. Re-read target and summarize concrete outcome to the user.

What it can do on your machine

Read from SKILL.md and the folder at commit f2a62ed. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Go and Ruby, from the files we listed), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • LINCTL_API_KEY
    • TEAM_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Linctl loads about 1.3k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 325 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dorkitude/linctl at commit f2a62ed, republished under its MIT licence (© dorkitude). 325 words, ~1,349 tokens.

Download SKILL.mdSave it as .claude/skills/linctl/SKILL.md (or your agent's skills folder). This skill also uses 78 other files; get the full folder from GitHub.
name
linctl
description
Use linctl to read and update Linear issues, projects, teams, users, labels, comments, and agent sessions from the terminal. Prefer JSON reads, validate auth first, and use command-specific --help for exact flags.

linctl Agent Guide

Use this skill when the user wants to inspect or modify Linear data through linctl.

Quick Rules

  • Always verify auth before substantive work: linctl auth status or linctl whoami.
  • For read operations, prefer --json and parse results with jq when needed.
  • Before writing, inspect current state first (get / list --json).
  • Use command-specific help for exact flags and validation rules: linctl <command> <subcommand> --help.
  • Be explicit with filters; defaults can hide expected results.

High-Impact Gotchas

  • issue list, issue search, and project list default to --newer-than 6_months_ago.
  • issue list and issue search exclude completed/canceled by default.
  • issue search may also need --include-archived for archived matches.
  • issue list --cycle current can validly return no rows if no active cycle exists.
  • Parent/sub-issue links are set via issue update --parent (not issue create).
  • If results look incomplete, retry with:
    • --newer-than all_time
    • --include-completed
    • --include-archived (search)

Auth + Credential Behavior

  • Interactive login: linctl auth (or linctl auth login).
  • Credentials are stored in ~/.linctl-auth.json.
  • LINCTL_API_KEY overrides stored credentials.
  • Precedence: LINCTL_API_KEY > ~/.linctl-auth.json.

Core Workflow

  1. Confirm identity and access.
  2. Discover relevant entities (team key, issue ID, project ID, user email) via list/search with --json.
  3. Read exact target with get.
  4. Apply changes with create/update/assign/comment/label/agent commands.
  5. Re-read target and summarize concrete outcome to the user.

Command Map

  • Issues: linctl issue ...
  • Projects: linctl project ...
  • Teams: linctl team ... (includes state list and state update)
  • Users: linctl user ... and linctl whoami
  • Comments: linctl comment ...
  • Labels: linctl label ...
  • Agent Sessions: linctl agent ...
  • Auth: linctl auth ...
  • Dynamic MCP: linctl mcp ... (sync, tools, call)

Suggested Read Patterns

bash
# Issues assigned to me, no date-limit surprise
linctl issue list --assignee me --newer-than all_time --include-completed --json

# Issues in current cycle (if cycle exists)
linctl issue list --cycle current --limit 20 --json

# Find issue by text, including archived/completed
linctl issue search "<query>" --newer-than all_time --include-completed --include-archived --json

# Project inventory without default date filter
linctl project list --newer-than all_time --json

# Create or update a project with the exact workspace-defined status.
linctl project create --name "Custom Properties" --team END --lead me --status "Shaping"
linctl project update <project-id> --status "Shaping"

# Team labels for resolution/validation
linctl label list --team <TEAM_KEY> --json

# Team workflow states
linctl team state list <TEAM_KEY> --json

# Agent session status for an issue
linctl agent <ISSUE_ID> --json

# Dynamic schema-backed tool list and call
linctl mcp sync
linctl mcp tools --json
linctl mcp call query.viewer

Suggested Write Patterns

bash
# Update an issue after inspecting it
linctl issue get LIN-123 --json
linctl issue update LIN-123 --state "In Progress" --assignee me
linctl issue get LIN-123 --json

# Delegate issue to an agent/user
linctl issue update LIN-123 --delegate "<displayName|email|name>"

# Set labels by name/ID, or clear
linctl issue update LIN-123 --labels bug,urgent
linctl issue update LIN-123 --clear-labels

# Attach PR or URL
linctl issue attach LIN-123 --pr https://github.com/org/repo/pull/123
linctl issue attach LIN-123 --url https://example.com/spec --title "Spec"

# List/download issue attachment files and uploads links
linctl issue attachment list LIN-123 --json
linctl issue attachment download LIN-123 --all --output-dir ./downloads
linctl issue get LIN-123 --download-attachments --output-dir ./downloads --json

# Add execution note
linctl comment create LIN-123 --body "Implemented and verified locally."

# Comment lifecycle by comment ID
linctl comment get <COMMENT_ID>
linctl comment update <COMMENT_ID> --body "Updated note"
linctl comment delete <COMMENT_ID>

# Update a workflow state
linctl team state update <STATE_ID> --name "Ready"

# Mention delegated/active agent with message
linctl agent mention LIN-123 "Please pick this up."

Troubleshooting

  • Not authenticated: run linctl auth then linctl auth status.
  • Empty or partial lists: remove default filters (--newer-than all_time, --include-completed).
  • unknown command / unknown flag: binary is old; verify linctl --version and reinstall/upgrade.
  • Validation errors on flags: run the exact subcommand help and retry:
    • linctl issue update --help
    • linctl project create --help
    • linctl comment update --help
    • linctl label create --help
    • linctl agent mention --help

Minimal Discovery Commands

bash
linctl --help
linctl issue --help
linctl project --help
linctl team --help
linctl user --help
linctl comment --help
linctl label --help
linctl agent --help
linctl auth --help

© dorkitude, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 78 other files in the repository root of dorkitude/linctl.

  • SKILL.md
  • .env.test.example
  • .github/workflows/bump-tap.yml
  • .gitignore
  • AGENTS.md
  • CHANGELOG.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • Formula/linctl.rb
  • GEMINI.md
  • LICENSE
  • Makefile
  • README.md
  • cmd/agent.go
  • cmd/agent_test.go
  • cmd/auth.go
  • cmd/comment.go
  • … and 62 more

Open the folder on GitHubat commit f2a62ed

Compare with similar skills

Linctl next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Linctl compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Linctl this skilldorkitude/linctl145—~1.3kAutomated safety check: PassMIT
Orca Linear Ticket Workflowstablyai/orca88k1 repos~522Automated safety check: PassMIT
Review Triage Phaseprisma/orm48k—~995Automated safety check: PassApache-2.0
Commitdinerojs/dinero.js6.8k—~667Automated safety check: PassMIT
Draft Pull Request Creatorwordpress-mobile/WordPress-Android3.2k—~881Automated safety check: NotesGPL-2.0
Linear Tickets via Orcastablyai/orca88k—~558Automated safety check: PassMIT

Similar skills

  • Linear ticket work through Orca's CLI. Use when working from a linked Linear issue, finishing work with a PR/MR link and a completion comment, moving a ticket…

    88k GitHub starsUsed in 1 repo~522 tokens
    Productivity & AutomationAuto-check passed
  • Official

    Runs the triage step of the review-framework loop: reads fetched PR review state, builds `review-actions.json`, validates it and renders `review-actions.md`.

    48k GitHub stars~995 tokensUpdated today
    DevelopmentAuto-check passed
  • Commit

    dinerojs/dinero.js

    Create a git commit with optional automatic Linear issue linking.

    6.8k GitHub stars~667 tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Draft Pull Request Creator

    wordpress-mobile/WordPress-Android

    Commits and pushes current changes, writes a pull request title and body from the branch history and template, and opens a draft PR on GitHub after you approve it.

    3.2k GitHub stars~881 tokensUpdated today
    DevelopmentAuto-check: notes
  • Linear ticket work through Orca's CLI. Use when working from a linked Linear issue, finishing work with a PR/MR link and a completion comment, moving a ticket…

    88k GitHub stars~558 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Add Icon Mapping

    lobehub/lobe-icons

    Add or modify icon keyword mappings for providers, models, or agents in lobe-icons.

    2.6k GitHub stars~1.5k tokensUpdated yesterday
    MobileAuto-check: warnings

Works with

Questions about Linctl

What does Linctl do?

Use linctl to read and update Linear issues, projects, teams, users, labels, comments, and agent sessions from the terminal. Linctl is an agent skill from dorkitude/linctl. Use linctl to read and update Linear issues, projects, teams, users, labels, comments, and agent sessions from the terminal.

How do I install Linctl in Claude Code?

Run `npx skills add dorkitude/linctl --skill linctl -a claude-code`. Or copy the skill folder (the dorkitude/linctl repository) into .claude/skills/linctl in your project. Claude Code loads it when a task matches its description.

How do I install Linctl in Codex?

Run `npx skills add dorkitude/linctl --skill linctl -a codex`. Or copy the skill folder (the dorkitude/linctl repository) into .agents/skills/linctl in your project. Codex loads it when a task matches its description.

Can I use Linctl in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dorkitude/linctl --skill linctl -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/linctl, .gemini/skills/linctl, .github/skills/linctl and .opencode/skills/linctl in your project.

What does Linctl need to run?

Going by SKILL.md and its folder, Linctl needs Go and Ruby for the scripts in its folder and credentials named LINCTL_API_KEY and TEAM_KEY. Our summary lists: A credential in LINCTL_API_KEY; A credential in TEAM_KEY.

Does Linctl access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Linctl safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Linctl use?

Linctl is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Linctl use?

About 1.3k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Linctl?

Skills that share tags, products or a category with Linctl: Orca Linear Ticket Workflow (stablyai/orca, 88k stars), Review Triage Phase (prisma/orm, 48k stars), Commit (dinerojs/dinero.js, 6.8k stars) and Draft Pull Request Creator (wordpress-mobile/WordPress-Android, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Linctl?

dorkitude (a GitHub user) maintains it in dorkitude/linctl, which has 145 GitHub stars. The repository was last updated on August 23, 2026.

Source: dorkitude/linctl on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.