Source Code
YouTrack CLI
Use ytctl (in scripts/) for YouTrack issue tracking.
Setup
Credentials stored in ~/.config/youtrack/config.json:
{
"url": "https://your-instance.youtrack.cloud",
"token": "perm:xxx"
}
Or set env vars: YOUTRACK_URL, YOUTRACK_TOKEN
Generate token: YouTrack โ Profile โ Account Security โ New Token
Commands
# List projects
ytctl projects
# List issues (with optional filters)
ytctl issues # all issues
ytctl issues SP # issues in project SP
ytctl issues SP --query "state: Open" # filtered
ytctl issues --max 50 # limit results
# Get issue details
ytctl issue SP-123
# Create issue
ytctl create SP "Bug: Login fails"
ytctl create SP "Feature request" "Detailed description here"
# Update issue
ytctl update SP-123 state "In Progress"
ytctl update SP-123 assignee john.doe
ytctl update SP-123 priority Critical
# Add comment
ytctl comment SP-123 "Investigating this now"
# Search with YouTrack query syntax
ytctl search "project: SP state: Open assignee: me"
ytctl search "created: today"
ytctl search "#unresolved sort by: priority"
# List workflow states for project
ytctl states SP
# List users
ytctl users
ytctl users --query "john"
Query Syntax
YouTrack query examples:
state: Openโ by stateassignee: meโ assigned to current usercreated: todayโ created todayupdated: {last week}โ updated in last week#unresolvedโ all unresolvedhas: attachmentsโ with attachmentssort by: priority descโ sorted
Combine: project: SP state: Open assignee: me sort by: updated
Output
Default: table format. Add --json for raw JSON output:
ytctl issues SP --json
ytctl issue SP-123 # always JSON for single issue
Bulk Operations
# Update all matching issues (with dry-run preview)
ytctl bulk-update "project: SP state: Open" state "In Progress" --dry-run
ytctl bulk-update "project: SP state: Open" state "In Progress"
# Comment on all matching issues
ytctl bulk-comment "project: SP state: Open" "Batch update notice"
# Assign all matching issues
ytctl bulk-assign "project: SP #unresolved" john.doe --dry-run
Reports
# Project summary (default 7 days)
ytctl report SP
ytctl report SP --days 14
# User activity report
ytctl report-user zain
ytctl report-user zain --days 30
# State distribution with bar chart
ytctl report-states SP
Notes
- Project can be shortName (SP) or full name
- Fields: state, summary, description, assignee, priority
- Use
ytctl states PROJECTto see valid state names - Bulk operations support
--dry-runto preview before executing