Linear Integration¶
Linear supplies issues to the agent. It is configured in YAML only — unlike the other
providers, the bundled config.yaml ships no Linear block and no environment templates for it.
Create an API key¶
- In Linear: Settings → API → Personal API keys → Create key.
- Copy the key (
lin_api_…).
Configuration¶
Add a linear entry to the issues slot of your project in config/config.custom.yaml:
projects:
default:
issues:
linear:
api_key: "@jinja {{ env.get('LINEAR_API_KEY', '') }}"
mock: false
| Key | Required | Description |
|---|---|---|
api_key |
yes | Linear personal API key |
mock |
no | true returns canned data instead of calling the API (default false) |
The @jinja template is what makes LINEAR_API_KEY work — you can equally inline the key, but
keeping it in the environment is preferable. See
config.yaml for the template syntax.
Multiple issue trackers¶
A project can list several issue providers side by side; the agent picks the one that matches the identifier it was given:
projects:
default:
issues:
linear:
api_key: "@jinja {{ env.get('LINEAR_API_KEY', '') }}"
jira:
domain: "@jinja {{ this.providers.jira.domain }}"
email: "@jinja {{ this.providers.jira.email }}"
token: "@jinja {{ this.providers.jira.token }}"
Using it¶
Reference issues by their Linear identifier:
Troubleshooting¶
| Symptom | Check |
|---|---|
| Provider not offered | The issues.linear block is missing, or api_key resolved to an empty string |
| Authentication error | Key revoked, or copied with surrounding whitespace |
| Issue not found | The key's user has no access to that team's issues |
Notes¶
- Personal API keys inherit that user's permissions — create a dedicated integration user if you want to limit what the agent can read.
- Issue titles, descriptions and comments are sent to your LLM provider.