A fast, agent-friendly CLI for querying JetBrains YouTrack instances. Get issue status, project metadata, and tracking data from the command line with structured JSON/YAML output for scripts and beautiful tables for humans.
- kubectl-style commands — intuitive resource-based CLI (
ytrack issue get,ytrack project list) - Agent-friendly output — structured JSON/YAML by default, beautiful tables for interactive use
- Multi-instance support — manage multiple YouTrack profiles with automatic context switching
- Secure token storage — OS keychain integration (Keychain, Secret Service, Credential Manager)
- Smart caching — file-based TTL cache per profile (5min issues, 60min projects)
- Shell completions — Bash, Zsh, Fish, PowerShell included in releases
# Apple Silicon (M1/M2/M3)
curl -L https://github.com/zhuk/ytrack/releases/latest/download/ytrack_darwin_arm64.tar.gz | tar xz
sudo mv ytrack /usr/local/bin/
# Intel
curl -L https://github.com/zhuk/ytrack/releases/latest/download/ytrack_darwin_amd64.tar.gz | tar xz
sudo mv ytrack /usr/local/bin/# amd64
curl -L https://github.com/zhuk/ytrack/releases/latest/download/ytrack_linux_amd64.tar.gz | tar xz
sudo mv ytrack /usr/local/bin/
# arm64
curl -L https://github.com/zhuk/ytrack/releases/latest/download/ytrack_linux_arm64.tar.gz | tar xz
sudo mv ytrack /usr/local/bin/Invoke-WebRequest -Uri "https://github.com/zhuk/ytrack/releases/latest/download/ytrack_windows_amd64.zip" -OutFile "ytrack.zip"
Expand-Archive ytrack.zip
Move-Item ytrack.exe "C:\Program Files\ytrack.exe"Set up your YouTrack instance by creating a profile:
ytrack config add --profile default --url https://youtrack.example.com --token perm:your-token-hereOverride the active profile or token:
export YTRACK_PROFILE=default
export YTRACK_TOKEN=perm:your-token-here- Open your YouTrack instance
- Go to Profile → Authentication → New Token
- Name it (e.g., "ytrack CLI") and set appropriate permissions
- Copy the token (starts with
perm:)
For multiple YouTrack instances, create separate profiles:
ytrack config add --profile main --url https://youtrack.example.com --token perm:your-token
ytrack config add --profile work --url https://work.youtrack.com --token perm:work-token
# Set active profile
export YTRACK_PROFILE=work
# Or use .ytrack file in project directory
echo "profile: work" > .ytrack# Check version
ytrack version
# List issues
ytrack issue list
# Get specific issue details
ytrack issue get YT-123
# List projects
ytrack project list
# Get JSON output for scripts
ytrack issue get YT-123 -o json | jq '.id, .summary'
# Check your setup
ytrack config validate --check-auth- Full Documentation — complete command reference and examples
- Shell Completions — setup guide for Bash, Zsh, Fish, PowerShell
- Architecture — system design and technical decisions
- API Integration — YouTrack API mapping and response transformation
# Get issue details in JSON format
ytrack issue get YT-123 -o json | jq '{id, summary, state, created}'
# Get all projects
ytrack project list -o json | jq '[.[] | {name: .name, shortName: .shortName}]'# Check issue status
ytrack issue get YT-123
# List projects
ytrack project list
# Validate config before CI job
ytrack config validate --check-authSee AGENTS.md for development guidelines and architecture patterns.
make lintpassesmake testpassesmake buildproduces a working binary./bin/ytrack versionshows the expected version- Tag the release:
git tag v1.2.3 - Push the tag:
git push origin v1.2.3 - CI builds and publishes the release automatically
Apache 2.0 — see LICENSE file for details.
- Issues: GitHub Issues
- Documentation: docs/prd/