From accelerator
Sets up a Linear integration by verifying a personal API key, selecting a team, and persisting the team's workflow state catalogue.
How this skill is triggered — by the user, by Claude, or both
Slash command
/accelerator:init-linear [--team-id <uuid>][--team-id <uuid>]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
!`${CLAUDE_PLUGIN_ROOT}/scripts/config-read-context.sh`
!${CLAUDE_PLUGIN_ROOT}/scripts/config-read-context.sh
!${CLAUDE_PLUGIN_ROOT}/scripts/config-read-skill-context.sh init-linear
Configuration: Set
work.integration: linearin.accelerator/config.mdto enable auto-scoping. See the### worksection ofconfigure/SKILL.mdfor the full reference.
You are setting up the Linear integration for this project. Work through the steps below in order, stopping to prompt the user only when a value is missing and cannot be derived from existing configuration.
Run the credential resolver:
${CLAUDE_PLUGIN_ROOT}/skills/integrations/linear/scripts/linear-auth-cli.sh
Run the bare path directly as an executable; never prefix it with
bash/sh/env (a wrapper prefix escapes the skill's allowed-tools
permission and forces an unnecessary prompt).
If it exits non-zero with E_NO_TOKEN, tell the user:
No Linear API token found. Generate a personal API key at https://linear.app/settings/account/security (the value starts with
lin_api_), then add it to.accelerator/config.local.md(which is gitignored):--- linear: token_cmd: "op read op://Work/Linear/credential" ---The key must be stored and sent without a
Bearerprefix.Re-run
/init-linearonce the token is configured.
Then stop. Do not continue until the token is available.
Run:
${CLAUDE_PLUGIN_ROOT}/skills/integrations/linear/scripts/linear-init-flow.sh verify
On success, .accelerator/state/integrations/linear/viewer.json is written with
{id, name}. Print: "Verified as <name> (<id>)."
On failure (non-zero exit), show the error and stop. A Bearer-prefixed token
or an invalid key surfaces here as an authentication failure.
Run:
${CLAUDE_PLUGIN_ROOT}/skills/integrations/linear/scripts/linear-init-flow.sh list-teams
This prints a JSON array of {id, name, key}. Present the teams to the user as
a readable list (key + name) and ask which one to scope this project to. If the
user passed --team-id <uuid>, skip the prompt and use it.
Run, substituting the chosen team's UUID:
${CLAUDE_PLUGIN_ROOT}/skills/integrations/linear/scripts/linear-init-flow.sh discover --team-id <uuid>
This writes catalogue.json atomically, containing the chosen team's
{id, key, name} and its WorkflowStates ({id, name, type, position}). Only
the selected team's states are persisted (single-team scoping).
Print a summary:
Linear integration initialised:
Team: <key> — <name>
States: <N> WorkflowStates cached (.accelerator/state/integrations/linear/catalogue.json)
Viewer: <name> (.accelerator/state/integrations/linear/viewer.json — gitignored)
Remind the user to commit
.accelerator/state/integrations/linear/catalogue.json so teammates pick up the
shared team + state catalogue without re-running /init-linear. (viewer.json
is gitignored — each developer runs /init-linear to record their own viewer
identity and resolve their own credentials.)
!${CLAUDE_PLUGIN_ROOT}/scripts/config-read-skill-instructions.sh init-linear
npx claudepluginhub atomicinnovation/accelerator --plugin acceleratorGuides creating first Linear issue, listing teams, querying issues, and exploring states using @linear/sdk and GraphQL API. For initial setup, connection testing, and basic CRUD.
Manage Linear issues, projects, and teams using MCP tools, Linear CLI via Bash, or scripts with secure Varlock API key handling.
Manages Linear.app issues via Linearis CLI with JSON output: create, read, update, search issues; list teams/projects/cycles/labels/users; add comments.