
Description
Manage Linear issues from the command line using the linear cli. This skill allows automating linear management.
SKILL.md
Linear CLI
A CLI to manage Linear issues from the command line, with git and jj integration.
Prerequisites
The linear command must be available on PATH. To check:
linear --version
If not installed, follow the instructions at: https://github.com/schpet/linear-cli?tab=readme-ov-file#install
Best Practices for Markdown Content
When working with issue descriptions or comment bodies that contain markdown, always prefer using file-based flags instead of passing content as command-line arguments:
- Use
--description-fileforissue createandissue updatecommands - Use
--body-fileforcomment addandcomment updatecommands
Why use file-based flags:
- Ensures proper formatting in the Linear web UI
- Avoids shell escaping issues with newlines and special characters
- Prevents literal
\nsequences from appearing in markdown - Makes it easier to work with multi-line content
Example workflow:
# Write markdown to a temporary file
cat > /tmp/description.md <<'EOF'
## Summary
- First item
- Second item
## Details
This is a detailed description with proper formatting.
EOF
# Create issue using the file
linear issue create --title "My Issue" --description-file /tmp/description.md
# Or for comments
linear issue comment add ENG-123 --body-file /tmp/comment.md
Only use inline flags (--description, --body) for simple, single-line content.
Available Commands
linear auth # Manage Linear authentication
linear issue # Manage Linear issues
linear team # Manage Linear teams
linear project # Manage Linear projects
linear project-update # Manage project status updates
linear cycle # Manage Linear team cycles
linear milestone # Manage Linear project milestones
linear initiative # Manage Linear initiatives
linear initiative-update # Manage initiative status updates (timeline posts)
linear label # Manage Linear issue labels
linear document # Manage Linear documents
linear config # Interactively generate .linear.toml configuration
linear schema # Print the GraphQL schema to stdout
linear api # Make a raw GraphQL API request
Discovering Options
To see available subcommands and flags, run --help on any command:
linear --help
linear issue --help
linear issue list --help
linear issue create --help
Each command has detailed help output describing all available flags and options.
Using the Linear GraphQL API Directly
Prefer the CLI for all supported operations. The api command should only be used as a fallback for queries not covered by the CLI.
Check the schema for available types and fields
Write the schema to a tempfile, then search it:
linear schema -o "${TMPDIR:-/tmp}/linear-schema.graphql"
grep -i "cycle" "${TMPDIR:-/tmp}/linear-schema.graphql"
grep -A 30 "^type Issue " "${TMPDIR:-/tmp}/linear-schema.graphql"
Make a GraphQL request
Important: GraphQL queries containing non-null type markers (e.g. String followed by an exclamation mark) must be passed via heredoc stdin to avoid escaping issues. Simple queries without those markers can be passed inline.
# Simple query (no type markers, so inline is fine)
linear api '{ viewer { id name email } }'
# Query with variables — use heredoc to avoid escaping issues
linear api --variable teamId=abc123 <<'GRAPHQL'
query($teamId: String!) { team(id: $teamId) { name } }
GRAPHQL
# Search issues by text
linear api --variable term=onboarding <<'GRAPHQL'
query($term: String!) { searchIssues(term: $term, first: 20) { nodes { identifier title state { name } } } }
GRAPHQL
# Pipe to jq for filtering
linear api '{ issues(first: 5) { nodes { identifier title } } }' | jq '.data.issues.nodes[].title'
Advanced: Using curl directly
For cases where you need full HTTP control, use linear auth token:
curl -s -X POST https://api.linear.app/graphql \
-H "Content-Type: application/json" \
-H "Authorization: $(linear auth token)" \
-d '{"query": "{ viewer { id } }"}'
More skills from the skills repository
View all 45 skills1password
manage secrets with 1Password CLI
Jul 13AuthenticationCLISecurityagent-slack
automate Slack messaging and workflows
Jul 13AutomationCLIMessagingSlackai-news
fetch and summarize AI news
Jul 13CommunicationsLLMResearchSummarizationcreating-letta-code-channels
build and debug Letta Code channels
Jul 13AgentsAPI DevelopmentMessagingSlackdatadog
query Datadog observability data
Jul 13DatadogLogsMetricsMonitoring +1discord
automate Discord server and channel tasks
Jul 13AutomationCLIMessaging
More from Letta
View publisheracquiring-skills
discover and install agent skills
letta-code
Jul 13AgentsAutomationGitHubContext Doctor
repair system prompt and memory degradation
letta-code
Jul 13AgentsAI ContextDebuggingconverting-mcps-to-skills
connect MCP servers to create skills
letta-code
Jul 13AgentsAutomationMCPcreating-mods
create and edit Letta Code mods
letta-code
Jul 23AgentsAutomationCodingcreating-skills
create and update agent skills
letta-code
Jul 13AgentsDocumentationPlugin Developmentcustomizing-commands
create and manage Letta slash commands
letta-code
Jul 13AgentsAutomationCLI