Linear
Purpose
Work with the user's Linear workspace over GraphQL: view your assigned issues and create new issues. Use when the user mentions Linear or wants an issue created or checked.
Tooling
All commands go through bin/linear.py:
bashbin/linear.py auth # verify the connection (viewer query) bin/linear.py issues # your assigned issues (title, state, team) bin/linear.py create --team-id TEAM_UUID --title "T" \ --description "details" # create an issue
Get a team's UUID from the Linear UI (team settings) or ask the user.
Auth
- Provider id:
linear(credential is collected ascustom.linear) - Collection: Linear personal API key via the secure credential flow (
credentials.request_api_access); create one at linear.app/settings/api - Required scopes: n/a (personal API keys carry your full account access: guard accordingly)
- Allowed hosts:
api.linear.app - Status check:
bin/linear.py auth(must print your name and email)
Operating Rules
createis a write: confirm the team, title, and description with the user before creating, unless standing permission to file issues exists.- Reading (auth, issues) needs no confirmation.
- Linear rate-limits GraphQL; if a call returns 429, back off and retry once.
- The personal API key has full account access: treat it as sensitive as a password. The CLI only ever handles surrogates (see
bin/linear.py); do not print, log, or transmit the key value.
Files
- SKILL.md
- bin/linear.py
Maturity
🧪 Draft: written from Linear's public GraphQL API docs; not yet live-tested end-to-end.


