linear
Access Linear project management data using native pi tools — issues, projects, teams, users, comments, file uploads, cycles, labels, workflow states, and documents. Requires a Linear personal API key.
Install / Use
npx skills add emanuelcasco/pi-mono-extensionsInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AutomationSupported Platforms
Skill content
View source on GitHubname: linear description: Access Linear project management data using native pi tools — issues, projects, teams, users, comments, file uploads, cycles, labels, workflow states, and documents. Requires a Linear personal API key.
Linear Integration
Use the native linear_* tools to read and write Linear data through the Linear GraphQL API.
Critical Rules
- Never ask the user to paste a Linear API key in chat.
- Never expose the API key inline in shell commands.
- Before updating an issue or commenting, use
linear_get_issueto verify the target. - Before uploading a file to an issue comment, use
linear_get_issueto verify the target. - When IDs are unknown, use
linear_workspace_metadatafirst.
Authentication
The tools read the key from an in-memory override, LINEAR_API_KEY, or ~/.pi/agent/auth.json at .linear.key.
If auth is missing, invalid, or expired, do not ask the user to paste the key in chat. Use the native linear_configure_auth tool or ask the user to run /linear-auth --force. The prompt is masked and the key is stored by the extension without returning it to the model.
Tool Workflow
- Use
linear_configure_authonly when auth is missing, invalid, expired, or the user asks to update the key. - Use
linear_workspace_metadatafirst when team/project/state/label/user IDs are unknown. - Use
linear_search_issuesfor keyword lookup. - Use
linear_get_issuebefore updating or commenting. - Use
linear_get_issueto inspect Linear issues; Markdown images embedded in the issue description are automatically included when the active model supports image input. - If
linear_get_issuereports description images were skipped because the current model does not support images, ask the user to switch to a vision-capable model before interpreting screenshots. - Use
linear_list_issuesfor filtered issue lists by team, assignee, status, or limit. - Use
linear_create_issueto create issues once the team ID is known. - Use
linear_update_issueto change title, description, priority, state, or assignee. - Use
linear_create_commentto add Markdown context to an issue. - Use
linear_upload_fileto upload a local image, video, or generic file and get a Linear asset URL. - Use
linear_upload_file_to_issue_commentto upload a local file and comment on a verified issue in one step.
Available Tool Groups
Workspace and users
linear_whoamilinear_workspace_metadatalinear_list_teamslinear_get_teamlinear_list_userslinear_get_user
Issues
linear_list_issueslinear_search_issueslinear_get_issuelinear_list_my_issueslinear_create_issuelinear_update_issue
Projects, states, labels, cycles, documents
linear_list_projectslinear_get_projectlinear_list_issue_statuseslinear_get_issue_statuslinear_list_labelslinear_list_cycleslinear_list_documentslinear_get_document
Comments
linear_list_commentslinear_create_commentlinear_configure_auth
Files
linear_upload_filelinear_upload_file_to_issue_comment
Issue Description Images
- Linear issue screenshots embedded in descriptions are Markdown images, not necessarily GraphQL attachment objects.
linear_get_issueparses description Markdown image links like.- When the active model supports image input,
linear_get_issuedownloads private Linear image URLs in memory with Linear auth and attaches native image blocks to the result. - When the active model is text-only, image downloads are skipped and the tool returns a note plus image metadata.
- Description images are not written to disk by default.
File Upload Notes
- Upload tools accept local file paths only; they do not read folders recursively.
- Tool results include sanitized metadata and the Linear asset URL, not file bytes, signed upload URLs, or upload headers.
- Images are suitable for Markdown image embeds:
. - Videos and other files should generally be linked:
[filename](assetUrl). linear_upload_file_to_issue_commentcreates image Markdown automatically for image content types and link Markdown for other content types.commentBodymay include{url}or{markdown}placeholders; otherwise generated file Markdown is appended to the comment body.
Priority Values
| Value | Label | | ----- | ----------- | | 0 | No priority | | 1 | Urgent | | 2 | High | | 3 | Medium | | 4 | Low |
Issue Status Types
| Type | Meaning |
| ----------- | --------------------------- |
| backlog | Not yet started, in backlog |
| triage | Needs triage |
| unstarted | Not yet started |
| started | In progress |
| completed | Done |
| canceled | Won't do |
Related Skills
Agent-Reach
84.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.4kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.0k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
nanobot
48.5kUltra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
Security Score
Audited on Aug 26, 2026
