YouTrack CLI - Command line interface for JetBrains YouTrack issue tracking system
Reason this release was yanked:
regression bugs introduced
Project description
YouTrack CLI
A powerful command line interface for JetBrains YouTrack issue tracking system.
Features
- Complete YouTrack Management: Issues, articles, projects, users, time tracking, boards, and reporting
- Enterprise Security Features: Command audit logging, credential encryption, token expiration warnings
- Flexible Authentication: Secure token-based authentication with keyring integration
- Rich Output Formats: Beautiful tables and JSON export for automation
- Progress Indicators: Visual feedback for long-running operations with Rich progress bars
- Comprehensive Configuration: Customizable defaults and environment-specific settings
- Administrative Tools: System management, user groups, and health monitoring
- Developer-Friendly: Built with modern Python practices and extensive documentation
- Enhanced Error Handling: User-friendly error messages with actionable suggestions
- Advanced Logging: Rich logging with debug and verbose modes for troubleshooting
- Robust HTTP Operations: Automatic retry logic with exponential backoff for reliability
- Performance Optimization: Dynamic field selection reduces API response sizes by up to 75%
Quick Start
Installation
Using uv (Recommended)
The fastest and most reliable way to install YouTrack CLI:
# Install uv first (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install YouTrack CLI as a tool
uv tool install youtrack-cli
# Verify installation
yt --version
Traditional pip installation
# From PyPI (when available)
pip install yt-cli
# With virtual environment (recommended for pip)
python -m venv youtrack-env
source youtrack-env/bin/activate # Linux/macOS
# or
youtrack-env\Scripts\activate # Windows
pip install yt-cli
Development installation
# Clone and set up for development
git clone https://github.com/YOUR_USERNAME/yt-cli.git
cd yt-cli
# Using uv (recommended)
uv sync --dev
uv pip install -e .
# Or using pip (requires pip >= 24.0 for PEP 735 support)
pip install -e . --group dev
Authentication
# Login to your YouTrack instance
yt auth login
# Login with SSL certificate verification disabled (for self-signed certificates)
yt auth login --no-verify-ssl
# Verify authentication
yt auth token --show
Shell Completion
YouTrack CLI supports tab completion for bash, zsh, and fish shells:
# Enable shell completion (see docs for full instructions)
yt completion bash --install
📖 Complete shell completion guide
Basic Usage
# List projects
yt projects list
# Create an article
yt articles create "Getting Started" --content "Welcome to our documentation"
# Create an article from a markdown file
yt articles create "API Documentation" --file api-docs.md
# Log work time
yt time log ISSUE-123 "2h" --description "Feature development"
# Generate reports (flatter syntax)
yt burndown PROJECT-123
yt velocity PROJECT-123
# Or use traditional nested commands
yt reports burndown PROJECT-123
# Enable debug logging for troubleshooting
yt --debug issues list
Documentation
For comprehensive guides, examples, and API reference, visit our documentation:
- Quick Start Guide - Get up and running quickly
- Command Reference - Detailed documentation for all commands
- Configuration Guide - Customize your CLI experience
- Development Guide - Contributing and development setup
Available Commands
| Command Group | Description |
|---|---|
yt issues |
Complete issue lifecycle management with search, comments, and relationships |
yt articles |
Manage knowledge base articles with hierarchical organization and tagging |
yt projects |
Create and manage YouTrack projects |
yt users |
User management and permissions |
yt time |
Time tracking with flexible duration formats |
yt boards |
Agile board operations and management |
yt reports |
Generate burndown and velocity reports |
yt burndown |
Generate burndown reports (flatter alternative) |
yt velocity |
Generate velocity reports (flatter alternative) |
yt groups |
Manage user groups (flatter alternative to admin user-groups) |
yt settings |
Manage global settings (flatter alternative to admin global-settings) |
yt audit |
View audit logs (flatter alternative to security audit) |
yt auth |
Authentication and credential management |
yt config |
CLI configuration and preferences |
yt admin |
Administrative operations (requires admin privileges) |
Command Examples
Issues
# Create and manage issues
yt issues create PROJECT-123 "Fix login bug" --type Bug --priority High --assignee john.doe
yt issues list --project-id PROJECT-123 --state Open
yt issues search "priority:Critical state:Open"
yt issues update ISSUE-456 --state "In Progress"
# Comments and collaboration
yt issues comments add ISSUE-456 "Fixed in latest build"
yt issues attach upload ISSUE-456 /path/to/screenshot.png
# Issue relationships
yt issues links create ISSUE-456 ISSUE-789 "depends on"
yt issues tag add ISSUE-456 urgent
Articles
# Create and manage knowledge base
yt articles create "API Guide" --content "Comprehensive API documentation"
# Create articles from markdown files
yt articles create "Installation Guide" --file docs/install.md
# Organize existing documentation
yt articles create "Developer Guide" --file dev-guide.md --project-id PROJECT-123
# Tag articles for better organization
yt articles tag ARTICLE-123 documentation tutorial
yt articles tree --project-id PROJECT-123
yt articles search "authentication"
Projects
# Project management
yt projects create "Web App" "WEB" --leader john.doe --template scrum
yt projects list --show-archived
yt projects configure WEB --description "Main web application"
Time Tracking
# Flexible time logging
yt time log ISSUE-123 "2h 30m" --work-type "Development"
yt time report --start-date "2024-01-01" --end-date "2024-01-31"
yt time summary --group-by user
Reporting
# Project insights (flatter syntax)
yt burndown PROJECT-123 --sprint "Sprint 1"
yt velocity PROJECT-123 --sprints 10
# Or use traditional nested commands
yt reports burndown PROJECT-123 --sprint "Sprint 1"
yt reports velocity PROJECT-123 --sprints 10
Administration
# User group management (flatter syntax)
yt groups create "Team Lead" --description "Team leadership role"
yt groups list
# Global settings (flatter syntax)
yt settings get --name system.timeZone
yt settings set timeout 30
# Audit logging (flatter syntax)
yt audit --limit 25 --format json
# Traditional nested commands also work
yt admin user-groups create "Team Lead"
yt admin global-settings get
yt security audit
Help and Support
- 📖 Documentation - Comprehensive guides and examples
- 🐛 Issue Tracker - Report bugs and request features
- 💬 Discussions - Ask questions and share ideas
Development
This project uses uv for dependency management.
Setup
# Clone the repository
git clone https://github.com/YOUR_USERNAME/yt-cli.git
cd yt-cli
# Install dependencies
uv sync --dev
# Install pre-commit hooks
uv run pre-commit install
# Install the package in editable mode
uv pip install -e .
Testing
This project uses pytest with randomized test execution to ensure test reliability:
# Run tests (automatically randomized order)
uv run pytest
# Run tests with coverage
uv run pytest --cov=yt_cli
# Run tests on multiple Python versions
uv run tox
# Run tests with specific random seed for reproducibility
uv run pytest --randomly-seed=12345
# Disable randomization if needed
uv run pytest --randomly-dont-shuffle
Randomized Testing: Tests run in random order by default using pytest-randomly to catch order-dependent bugs and improve test reliability. Each test run displays the random seed used, which can be reused to reproduce specific test failures.
Code Quality
This project uses comprehensive pre-commit hooks for code quality:
# Run all quality checks (automatically runs on commit)
uv run pre-commit run --all-files
# Individual quality checks
uv run ruff check # Linting
uv run ruff format # Code formatting
uv run ty check # Type checking
Pre-commit Hooks
The project includes comprehensive pre-commit hooks that run automatically before each commit:
- File Quality: Trailing whitespace, end-of-file fixes, YAML/TOML validation
- Code Quality: Ruff linting and formatting, ty type checking
- Testing: Full pytest test suite
- Security: zizmor GitHub Actions security analysis
To run pre-commit hooks manually:
# Run all hooks on all files
uv run pre-commit run --all-files
# Run specific hook
uv run pre-commit run pytest
Security
# Check GitHub Actions workflows
uv run zizmor .github/workflows/
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file youtrack_cli-0.22.1.tar.gz.
File metadata
- Download URL: youtrack_cli-0.22.1.tar.gz
- Upload date:
- Size: 662.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abe17ebcb23d387f2da380715ed1e724f79cfb5bd0752ea4936b9f7a68043c01
|
|
| MD5 |
a027da8ed35b29759c6e34d86b831323
|
|
| BLAKE2b-256 |
19401d51657c7fd8a5a55aaef1496b0a4b884d9a7842941c5874622db5458af4
|
Provenance
The following attestation bundles were made for youtrack_cli-0.22.1.tar.gz:
Publisher:
release.yml on ryancheley/yt-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
youtrack_cli-0.22.1.tar.gz -
Subject digest:
abe17ebcb23d387f2da380715ed1e724f79cfb5bd0752ea4936b9f7a68043c01 - Sigstore transparency entry: 1129519223
- Sigstore integration time:
-
Permalink:
ryancheley/yt-cli@6e6279831a7b6b9e11ba455fc60f29f7e731cc6c -
Branch / Tag:
refs/tags/v0.22.1 - Owner: https://github.com/ryancheley
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6e6279831a7b6b9e11ba455fc60f29f7e731cc6c -
Trigger Event:
push
-
Statement type:
File details
Details for the file youtrack_cli-0.22.1-py3-none-any.whl.
File metadata
- Download URL: youtrack_cli-0.22.1-py3-none-any.whl
- Upload date:
- Size: 255.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
060f059ae40710c63ce76f1736702443ce65ec273f7cd7b5e7407f1277d2c323
|
|
| MD5 |
b0f07f6699e1a8a8233f60e97adfceb0
|
|
| BLAKE2b-256 |
9c35e8ac60728569121b27dbfdba622285c1ef214961b2977c4afd95b4f61f6c
|
Provenance
The following attestation bundles were made for youtrack_cli-0.22.1-py3-none-any.whl:
Publisher:
release.yml on ryancheley/yt-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
youtrack_cli-0.22.1-py3-none-any.whl -
Subject digest:
060f059ae40710c63ce76f1736702443ce65ec273f7cd7b5e7407f1277d2c323 - Sigstore transparency entry: 1129519273
- Sigstore integration time:
-
Permalink:
ryancheley/yt-cli@6e6279831a7b6b9e11ba455fc60f29f7e731cc6c -
Branch / Tag:
refs/tags/v0.22.1 - Owner: https://github.com/ryancheley
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6e6279831a7b6b9e11ba455fc60f29f7e731cc6c -
Trigger Event:
push
-
Statement type: