@kody/linear
Read and update Linear issues, projects, teams, comments, and workflow states through OAuth or an API key.
IntegrationsTopics: linear, issues, projects, teams, comments, graphql, oauth
- Version
- 1.0.0
- License
- MIT
- Published
- September 10, 2026
- Pinned commit
b1b7b2f- Rating
- No ratings yet
- Forks
- 6
- Adaptation effort
- —
README
Agent docs@kody/linear
Intent
Provide reusable, account-agnostic Linear helpers so Kody agents can read and
update issues, projects, teams, comments, and workflow states through a saved
linear / linear-* OAuth integration or a personal API key — without
hand-rolling GraphQL. Mutations are previewable with dryRun: true and only
run live after confirm: true.
This listing is meant to be forked. After you fork, connect your Linear
workspace. Do not treat the live @kody/linear package storage as yours.
This official OAuth/API-key package is the preferred invoke path. Setup is
harder: bring your own Linear OAuth app or personal API key. For a faster first
win, connect Linear MCP in Get started and use
@kody/linear-mcp.
What it does
- List or inspect teams, projects, issues, comments, and workflow states
- Create or update issues, comments, and projects after explicit confirmation
- Call an unwrapped Linear GraphQL operation through
./request - Connect more than one Linear workspace via
integrationName/account
Prerequisites / setup
Linear has no built-in Kody OAuth app. Choose one lane:
| Lane | When to use | Credential |
|---|---|---|
| OAuth (recommended) | Multi-account, refresh tokens, shared helpers | Saved integration linear or linear-<purpose> |
| Personal API key | Fastest for a single workspace / personal scripts | User secret linearApiKey (or linearApiKey-<purpose>) |
OAuth access tokens use Authorization: Bearer …. Personal API keys must be
sent as Authorization: <API_KEY> without the Bearer prefix — this package
handles that.
Required API host: api.linear.app. Approve it in the account secrets UI.
Lane A — BYO OAuth
- Create an OAuth application at https://linear.app/settings/api/applications/new
- Set the redirect URI exactly to
https://kody.codes/connect/oauth - Request scopes
read,write(comma-separated;readis always present). Narrower mutation-only scopes:issues:create,comments:create. - Connect while signed in to Kody:
- Paste the Linear client id and client secret into the Kody wizard (never into
chat). Approve host
api.linear.app. - Reconnect later with https://kody.codes/connect/oauth?provider=linear
OAuth token URL: https://api.linear.app/oauth/token. Authorize URL:
https://linear.app/oauth/authorize. Flow: confidential (client secret).
Linear scopes are comma-separated (scopeSeparator=,).
To connect a second workspace, change provider (for example
provider=linear-work) and pass integrationName: 'linear-work' on every call.
Add prompt=consent on Linear's authorize screen if you need to pick a
different workspace for the same app.
Lane B — Personal API key
- Create a key at https://linear.app/settings/account/security
- Grant Read plus the write permissions you need (
Write, orCreate issues/Create comments). - Save it (do not paste the value in chat):
For a second workspace/key, use a distinct secret name such as
linearApiKey-work and pass secretName: 'linearApiKey-work' (or
account: 'work', which resolves to linear-work / linearApiKey-work).
Scopes
| Scope | Needed for |
|---|---|
read | All queries (viewer, teams, projects, issues, comments, workflow states) |
issues:create | ./create-issue |
comments:create | ./create-comment |
write | ./update-issue, ./create-project, other mutations |
admin | Do not request unless a workflow truly needs admin endpoints |
Agents: see AGENTS.md for import paths, smoke checks, and
mutation guards.
Done when
- OAuth
linearis connected orlinearApiKeyis saved; hostapi.linear.appis approved - Smoke test returns
ok: true(live viewer id when credentials exist; no email) - Mutating helpers refuse unless
confirm: true;dryRun: truenever calls Linear
Branding
The community icon is Linear's official logomark as served by Linear
(https://static.linear.app/client/assets/favicon-D8hcELd9.svg), scaled to a
square. Paths are unmodified. Linear® is a trademark of Linear Orbit, Inc.
This package is not affiliated with or endorsed by Linear Orbit, Inc.
Docs
Report this listing
Log in to report this listing.