Homebrew
brew install rtcoder/tap/ytrack
Development builds are available with brew install --HEAD rtcoder/tap/ytrack.
YouTrack from the terminal
A cross-platform CLI for creating YouTrack issues, moving their status, inspecting users, creating projects, and keeping global credentials separate from per-project configuration.
ytrack global set-url https://youtrack.example.com
ytrack global set-token perm:your-token
ytrack init
ytrack set-project-id 0-1
ytrack issue create "Crash on save" "Steps to reproduce"
ytrack issue show YR-14
ytrack issue status ART-123 Done
ytrack user me
ytrack project create "Mobile App" --key MOB --leader me --set-project-id
Install from Homebrew, download a release binary, or build from source.
brew install rtcoder/tap/ytrack
Development builds are available with brew install --HEAD rtcoder/tap/ytrack.
sudo apt install ./ytrack_<version>_linux_amd64.deb
Download the matching .deb package from GitHub Releases first.
sudo dnf install ./ytrack_<version>_linux_amd64.rpm
Download the matching .rpm package from GitHub Releases first.
go install ./cmd/ytrack
Use go build -o ytrack ./cmd/ytrack when working from a local checkout.
Configure shared credentials once, set a project ID inside each repository, then create and update issues from the terminal.
ytrack global set-url https://youtrack.example.com
ytrack global set-token perm:your-token
ytrack init
ytrack set-project-id 0-1
ytrack issue create "Crash on save" "Steps to reproduce..."
ytrack issue show YR-14
ytrack issue status ART-123 Done
ytrack user list --top 20
ytrack project create "Mobile App" --key MOB --leader rtcoder --set-project-id
These are all commands currently exposed by the CLI. The generated Markdown reference lives in docs/commands.md.
Use JSON output and shell completion when scripting or setting up your shell.
ytrack --help
ytrack --json <command>
ytrack completion bash
ytrack completion zsh
ytrack completion fish
ytrack completion powershell
Best for values reused across repositories.
ytrack global show
ytrack global set-url <url>
ytrack global set-token <token>
ytrack global unset-url
ytrack global unset-token
Best for project IDs and repository-specific overrides.
ytrack show
ytrack init
ytrack set-url <url>
ytrack set-token <token>
ytrack set-project-id <project-id>
ytrack unset-url
ytrack unset-token
ytrack unset-project-id
Create issues and send YouTrack state-change commands.
ytrack issue create <summary>
ytrack issue create <summary> <description>
ytrack issue create <summary> --description-file <path>
ytrack issue create <summary> <description> --type <type> --assignee <user> --priority <priority> --version <version>
ytrack issue list
ytrack issue list --state <value>
ytrack issue list --assigned-to <user>
ytrack issue show <issue-id>
ytrack issue edit <issue-id> --title <title>
ytrack issue edit <issue-id> -t <title> -d <description> --type <type> --priority <priority>
ytrack issue type <issue-id> <type>
ytrack issue priority <issue-id> <priority>
ytrack issue comment <issue-id> <text>
ytrack issue assign <issue-id> <user>
ytrack issue command <issue-id> <command>
ytrack issue close <issue-id>
ytrack issue status <issue-id> <status>
Show the current user, list users, and resolve a single user by query.
ytrack user me
ytrack user list
ytrack user list --top <count>
ytrack user list --skip <count>
ytrack user find <query>
Create YouTrack projects with flags or interactive prompts, and optionally save the new local project ID.
ytrack project create [title]
ytrack project create "Mobile App" --key MOB --leader me
ytrack project create "Mobile App" --key MOB --leader rtcoder
ytrack project create "Mobile App" --key MOB --leader 1-2
ytrack project create "Mobile App" --key MOB --leader me --set-project-id
ytrack project create "Mobile App" --key MOB --leader me --template kanban
ytrack project list issues
ytrack project list issues --status Submitted
ytrack project list issues --user me
ytrack project list issues --type Bug
ytrack project list issues --priority Normal
ytrack project list statuses
ytrack project list users
ytrack project list types
ytrack project list priorities
ytrack project list versions
ytrack global set-project-id. Project IDs are local-only by design.
Local configuration overrides global configuration. Tokens are masked when printed, and local config should be ignored by Git.
local ./.ytrack/config.json
> global OS user config
project_id is never stored globally, which reduces the chance of creating issues in the wrong YouTrack project.
~/Library/Application Support/ytrack/config.json~/.config/ytrack/config.json%APPDATA%\ytrack\config.json./.ytrack/config.jsonytrack show prints the effective merged config. Secret tokens are masked.
url: https://youtrack.example.com
token: perm:xxxx...abcd
project_id: 0-1
Put --json before the command to print raw YouTrack API responses.
ytrack --json issue create "Crash on save"
ytrack --json issue create "Crash on save" "Steps to reproduce..."
ytrack --json issue show ART-123
ytrack --json issue edit ART-123 --title "New title"
ytrack --json issue comment ART-123 "Looks good"
ytrack --json issue command ART-123 "Priority Critical"
ytrack --json issue status ART-123 Done
ytrack --json user me
ytrack --json user list --top 20
ytrack --json project create "Mobile App" --key MOB --leader me
ytrack --json project list users
issue createurltokenproject_idissue statusurltokenuserurltokenproject createurltoken--set-project-idmissing configured project_id, run `ytrack set-project-id <project-id>`.
go test ./...
go test -count=1 ./...
go build -o ytrack ./cmd/ytrack
GOOS=darwin GOARCH=arm64 go build -o dist/ytrack-darwin-arm64 ./cmd/ytrack
GOOS=linux GOARCH=amd64 go build -o dist/ytrack-linux-amd64 ./cmd/ytrack
GOOS=windows GOARCH=amd64 go build -o dist/ytrack-windows-amd64.exe ./cmd/ytrack
GitHub Actions publishes release assets when a version tag is pushed.
Release packages include platform builds, Linux .deb and .rpm
packages, and checksums.txt.
git tag v0.1.1
git push origin v0.1.1