Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/schpet/linear-cli/agents-mdgit clone --depth 1 https://github.com/schpet/linear-cliWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00702 | $0.00702 |
| Opus 5 | $0.00351 | $0.00351 |
| Sonnet 5 | $0.00140 | $0.00140 |
| Haiku 4.5 | $0.00070 | $0.00070 |
Grade A, and why
linear-cli AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 46 lines — stays where its author put it; the contents beside it link to each section on GitHub.
basics
- this is a deno app
- after editing any graphql documents, run
deno task codegento get the updated types after it's updated,const result = await client.request(query, { teamId });should work and be typed (and not require explicit types) - graphql/schema.graphql has the graphql schema document for linear's api
- for diagnostics, use
deno checkanddeno lint(do not use tsc or rely on LSP for this) - when coloring or styling terminal text, use deno's @std/fmt/colors package
- prefer
foo == nullandfoo != nulloverfoo === undefinedandfoo !== undefined - import: use dynamic import only when necessary, the static form is preferable
- avoid the typescript
anytype - prefer strict typing, if you can't find a good way to fix a type issue (particularly with graphql data or documents) explain the problem instead of working around it - for
--jsonoutput, preserve GraphQL field names and nesting instead of inventing CLI-specific JSON shapes - for paginated
--jsonoutput, preserve connection shape and concatenatenodesrather than flattening or renaming fields
permissions
- deno permissions (--allow-env, --allow-net, etc.) are configured in multiple files that must stay in sync
- see docs/deno-permissions.md for the full list of files to update when adding new permissions
- key files:
deno.json(tasks),dist-workspace.toml(release builds), test files
error handling
- never fail silently - if something goes wrong or a lookup fails, throw an error with a helpful message
- when user-provided input (flags, args) doesn't match expected values, error immediately with guidance on how to fix it
- avoid falling back to defaults when explicit user input is invalid; explicit input should either work or error
- use custom error classes from src/utils/errors.ts:
ValidationError(message, { suggestion })for bad inputNotFoundError(entityType, identifier)for missing entitiesAuthError(message)for auth issuesCliError(userMessage, { suggestion, cause })for others
- wrap command actions in try-catch with
handleError(error, "Failed to <action>") - errors display clean messages to stderr with ✗ prefix, stack traces only shown when
LINEAR_DEBUG=1
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 46 lines · 702 tokens per session scan A 267728a11759
linear-cli AGENTS.md is an instructions file published in the GitHub repository schpet/linear-cli (936 stars, last pushed 20d ago), licensed ISC. It adds 702 tokens to every session, about $0.0035 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
linearis AGENTS.md
Instructions for linearis-oss/linearis, covering agents.md, identity, audience, quick commands and commit rules.
linearis CLAUDE.md
Instructions for linearis-oss/linearis, a project described as: CLI tool for Linear.app with JSON output, smart ID resolution, and optimized GraphQL queries. Designed for LLM agents and humans who prefer structured data.
emdash AGENTS.md
Instructions for generalaction/emdash, covering project overview, repository structure, build & development commands, code style & conventions and architecture notes.
personal-agent-template AGENTS.md
Instructions for vercel-labs/personal-agent-template, covering personal agent template, quick reference, structure, documentation and eve framework.
macro CLAUDE.md
Claude Code instructions for macro-inc/macro, covering claude.md, architecture overview, key services, data storage and macrodb schema changes.
streamlinear CLAUDE.md
Instructions for prime-radiant-inc/streamlinear, covering claude.md, what this is, setup, common commands and build artifacts.