# YouTrack CLI
A powerful command line interface for JetBrains YouTrack issue tracking system.
[](https://yt-cli.readthedocs.io/en/latest/?badge=latest)
## 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
## Quick Start
### Installation
#### Using uv (Recommended)
The fastest and most reliable way to install YouTrack CLI:
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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:
```bash
# Enable shell completion (see docs for full instructions)
yt completion bash --install
```
📖 **[Complete shell completion guide](https://yt-cli.readthedocs.io/en/latest/installation.html#shell-completion)**
### Basic Usage
```bash
# 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 with progress indicators
yt reports burndown PROJECT-123
# Disable progress indicators for automation
yt --no-progress reports velocity PROJECT-123
# Enable debug logging for troubleshooting
yt --debug issues list
```
## Documentation
**📚 [Complete Documentation](https://yt-cli.readthedocs.io/en/latest/)**
For comprehensive guides, examples, and API reference, visit our documentation:
- **[Quick Start Guide](https://yt-cli.readthedocs.io/en/latest/quickstart.html)** - Get up and running quickly
- **[Command Reference](https://yt-cli.readthedocs.io/en/latest/commands/)** - Detailed documentation for all commands
- **[Configuration Guide](https://yt-cli.readthedocs.io/en/latest/configuration.html)** - Customize your CLI experience
- **[Development Guide](https://yt-cli.readthedocs.io/en/latest/development.html)** - 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 auth` | Authentication and credential management |
| `yt config` | CLI configuration and preferences |
| `yt admin` | Administrative operations (requires admin privileges) |
## Command Examples
### Issues
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# Project insights
yt reports burndown PROJECT-123 --sprint "Sprint 1"
yt reports velocity PROJECT-123 --sprints 10
```
## Help and Support
- 📖 **[Documentation](https://yt-cli.readthedocs.io/en/latest/)** - Comprehensive guides and examples
- 🐛 **[Issue Tracker](https://github.com/YOUR_USERNAME/yt-cli/issues)** - Report bugs and request features
- 💬 **[Discussions](https://github.com/YOUR_USERNAME/yt-cli/discussions)** - Ask questions and share ideas
## Development
This project uses `uv` for dependency management.
### Setup
```bash
# 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:
```bash
# 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:
```bash
# 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:
```bash
# Run all hooks on all files
uv run pre-commit run --all-files
# Run specific hook
uv run pre-commit run pytest
```
### Security
```bash
# Check GitHub Actions workflows
uv run zizmor .github/workflows/
```
## License
MIT License - see LICENSE file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "youtrack-cli",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.9",
"maintainer_email": null,
"keywords": "cli, issue-tracking, jetbrains, project-management, youtrack",
"author": null,
"author_email": "Ryan Murphy <ryan@example.com>",
"download_url": "https://files.pythonhosted.org/packages/87/e0/beeb4c9d4933f66047467655c7224271ac4309c7c188823cb0e0758a7864/youtrack_cli-0.5.0.tar.gz",
"platform": null,
"description": "# YouTrack CLI\n\nA powerful command line interface for JetBrains YouTrack issue tracking system.\n\n[](https://yt-cli.readthedocs.io/en/latest/?badge=latest)\n\n## Features\n\n- **Complete YouTrack Management**: Issues, articles, projects, users, time tracking, boards, and reporting\n- **Enterprise Security Features**: Command audit logging, credential encryption, token expiration warnings\n- **Flexible Authentication**: Secure token-based authentication with keyring integration\n- **Rich Output Formats**: Beautiful tables and JSON export for automation\n- **Progress Indicators**: Visual feedback for long-running operations with Rich progress bars\n- **Comprehensive Configuration**: Customizable defaults and environment-specific settings\n- **Administrative Tools**: System management, user groups, and health monitoring\n- **Developer-Friendly**: Built with modern Python practices and extensive documentation\n- **Enhanced Error Handling**: User-friendly error messages with actionable suggestions\n- **Advanced Logging**: Rich logging with debug and verbose modes for troubleshooting\n- **Robust HTTP Operations**: Automatic retry logic with exponential backoff for reliability\n\n## Quick Start\n\n### Installation\n\n#### Using uv (Recommended)\n\nThe fastest and most reliable way to install YouTrack CLI:\n\n```bash\n# Install uv first (if not already installed)\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Install YouTrack CLI as a tool\nuv tool install youtrack-cli\n\n# Verify installation\nyt --version\n```\n\n#### Traditional pip installation\n\n```bash\n# From PyPI (when available)\npip install yt-cli\n\n# With virtual environment (recommended for pip)\npython -m venv youtrack-env\nsource youtrack-env/bin/activate # Linux/macOS\n# or\nyoutrack-env\\Scripts\\activate # Windows\npip install yt-cli\n```\n\n#### Development installation\n\n```bash\n# Clone and set up for development\ngit clone https://github.com/YOUR_USERNAME/yt-cli.git\ncd yt-cli\n\n# Using uv (recommended)\nuv sync --dev\nuv pip install -e .\n\n# Or using pip (requires pip >= 24.0 for PEP 735 support)\npip install -e . --group dev\n```\n\n### Authentication\n\n```bash\n# Login to your YouTrack instance\nyt auth login\n\n# Login with SSL certificate verification disabled (for self-signed certificates)\nyt auth login --no-verify-ssl\n\n# Verify authentication\nyt auth token --show\n```\n\n### Shell Completion\n\nYouTrack CLI supports tab completion for bash, zsh, and fish shells:\n\n```bash\n# Enable shell completion (see docs for full instructions)\nyt completion bash --install\n```\n\n\ud83d\udcd6 **[Complete shell completion guide](https://yt-cli.readthedocs.io/en/latest/installation.html#shell-completion)**\n\n### Basic Usage\n\n```bash\n# List projects\nyt projects list\n\n# Create an article\nyt articles create \"Getting Started\" --content \"Welcome to our documentation\"\n\n# Create an article from a markdown file\nyt articles create \"API Documentation\" --file api-docs.md\n\n# Log work time\nyt time log ISSUE-123 \"2h\" --description \"Feature development\"\n\n# Generate reports with progress indicators\nyt reports burndown PROJECT-123\n\n# Disable progress indicators for automation\nyt --no-progress reports velocity PROJECT-123\n\n# Enable debug logging for troubleshooting\nyt --debug issues list\n```\n\n## Documentation\n\n**\ud83d\udcda [Complete Documentation](https://yt-cli.readthedocs.io/en/latest/)**\n\nFor comprehensive guides, examples, and API reference, visit our documentation:\n\n- **[Quick Start Guide](https://yt-cli.readthedocs.io/en/latest/quickstart.html)** - Get up and running quickly\n- **[Command Reference](https://yt-cli.readthedocs.io/en/latest/commands/)** - Detailed documentation for all commands\n- **[Configuration Guide](https://yt-cli.readthedocs.io/en/latest/configuration.html)** - Customize your CLI experience\n- **[Development Guide](https://yt-cli.readthedocs.io/en/latest/development.html)** - Contributing and development setup\n\n## Available Commands\n\n| Command Group | Description |\n|--------------|-------------|\n| `yt issues` | Complete issue lifecycle management with search, comments, and relationships |\n| `yt articles` | Manage knowledge base articles with hierarchical organization and tagging |\n| `yt projects` | Create and manage YouTrack projects |\n| `yt users` | User management and permissions |\n| `yt time` | Time tracking with flexible duration formats |\n| `yt boards` | Agile board operations and management |\n| `yt reports` | Generate burndown and velocity reports |\n| `yt auth` | Authentication and credential management |\n| `yt config` | CLI configuration and preferences |\n| `yt admin` | Administrative operations (requires admin privileges) |\n\n## Command Examples\n\n### Issues\n```bash\n# Create and manage issues\nyt issues create PROJECT-123 \"Fix login bug\" --type Bug --priority High --assignee john.doe\nyt issues list --project-id PROJECT-123 --state Open\nyt issues search \"priority:Critical state:Open\"\nyt issues update ISSUE-456 --state \"In Progress\"\n\n# Comments and collaboration\nyt issues comments add ISSUE-456 \"Fixed in latest build\"\nyt issues attach upload ISSUE-456 /path/to/screenshot.png\n\n# Issue relationships\nyt issues links create ISSUE-456 ISSUE-789 \"depends on\"\nyt issues tag add ISSUE-456 urgent\n```\n\n### Articles\n```bash\n# Create and manage knowledge base\nyt articles create \"API Guide\" --content \"Comprehensive API documentation\"\n\n# Create articles from markdown files\nyt articles create \"Installation Guide\" --file docs/install.md\n\n# Organize existing documentation\nyt articles create \"Developer Guide\" --file dev-guide.md --project-id PROJECT-123\n\n# Tag articles for better organization\nyt articles tag ARTICLE-123 documentation tutorial\n\nyt articles tree --project-id PROJECT-123\nyt articles search \"authentication\"\n```\n\n### Projects\n```bash\n# Project management\nyt projects create \"Web App\" \"WEB\" --leader john.doe --template scrum\nyt projects list --show-archived\nyt projects configure WEB --description \"Main web application\"\n```\n\n### Time Tracking\n```bash\n# Flexible time logging\nyt time log ISSUE-123 \"2h 30m\" --work-type \"Development\"\nyt time report --start-date \"2024-01-01\" --end-date \"2024-01-31\"\nyt time summary --group-by user\n```\n\n### Reporting\n```bash\n# Project insights\nyt reports burndown PROJECT-123 --sprint \"Sprint 1\"\nyt reports velocity PROJECT-123 --sprints 10\n```\n\n## Help and Support\n\n- \ud83d\udcd6 **[Documentation](https://yt-cli.readthedocs.io/en/latest/)** - Comprehensive guides and examples\n- \ud83d\udc1b **[Issue Tracker](https://github.com/YOUR_USERNAME/yt-cli/issues)** - Report bugs and request features\n- \ud83d\udcac **[Discussions](https://github.com/YOUR_USERNAME/yt-cli/discussions)** - Ask questions and share ideas\n\n## Development\n\nThis project uses `uv` for dependency management.\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/YOUR_USERNAME/yt-cli.git\ncd yt-cli\n\n# Install dependencies\nuv sync --dev\n\n# Install pre-commit hooks\nuv run pre-commit install\n\n# Install the package in editable mode\nuv pip install -e .\n```\n\n### Testing\n\nThis project uses `pytest` with randomized test execution to ensure test reliability:\n\n```bash\n# Run tests (automatically randomized order)\nuv run pytest\n\n# Run tests with coverage\nuv run pytest --cov=yt_cli\n\n# Run tests on multiple Python versions\nuv run tox\n\n# Run tests with specific random seed for reproducibility\nuv run pytest --randomly-seed=12345\n\n# Disable randomization if needed\nuv run pytest --randomly-dont-shuffle\n```\n\n**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.\n\n### Code Quality\n\nThis project uses comprehensive pre-commit hooks for code quality:\n\n```bash\n# Run all quality checks (automatically runs on commit)\nuv run pre-commit run --all-files\n\n# Individual quality checks\nuv run ruff check # Linting\nuv run ruff format # Code formatting\nuv run ty check # Type checking\n```\n\n### Pre-commit Hooks\n\nThe project includes comprehensive pre-commit hooks that run automatically before each commit:\n\n- **File Quality**: Trailing whitespace, end-of-file fixes, YAML/TOML validation\n- **Code Quality**: Ruff linting and formatting, ty type checking\n- **Testing**: Full pytest test suite\n- **Security**: zizmor GitHub Actions security analysis\n\nTo run pre-commit hooks manually:\n\n```bash\n# Run all hooks on all files\nuv run pre-commit run --all-files\n\n# Run specific hook\nuv run pre-commit run pytest\n```\n\n### Security\n\n```bash\n# Check GitHub Actions workflows\nuv run zizmor .github/workflows/\n```\n\n## License\n\nMIT License - see LICENSE file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "YouTrack CLI - Command line interface for JetBrains YouTrack issue tracking system",
"version": "0.5.0",
"project_urls": {
"Changelog": "https://github.com/ryan-murphy/yt-cli/blob/main/CHANGELOG.md",
"Documentation": "https://yt-cli.readthedocs.io/",
"Homepage": "https://github.com/ryan-murphy/yt-cli",
"Issues": "https://github.com/ryan-murphy/yt-cli/issues",
"Repository": "https://github.com/ryan-murphy/yt-cli.git"
},
"split_keywords": [
"cli",
" issue-tracking",
" jetbrains",
" project-management",
" youtrack"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "ad2e129dc47a16bdd8278f59e84be76f023866142521d656ba2b7dfce853fe86",
"md5": "8fd3078b3fc0f5bd5d31072cfcc2da05",
"sha256": "06c34ed8cb71144a359c942868711ca1dab2c0af6d8e5b5cb0f6331483dc1350"
},
"downloads": -1,
"filename": "youtrack_cli-0.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8fd3078b3fc0f5bd5d31072cfcc2da05",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.9",
"size": 108971,
"upload_time": "2025-07-12T03:03:12",
"upload_time_iso_8601": "2025-07-12T03:03:12.284192Z",
"url": "https://files.pythonhosted.org/packages/ad/2e/129dc47a16bdd8278f59e84be76f023866142521d656ba2b7dfce853fe86/youtrack_cli-0.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "87e0beeb4c9d4933f66047467655c7224271ac4309c7c188823cb0e0758a7864",
"md5": "33a22e43703d8e73783af59c1d2b09b0",
"sha256": "1737863cda4aac1e2c9b5066e27e2d2877de9ac1a44e2190c4f3b2f420a944cb"
},
"downloads": -1,
"filename": "youtrack_cli-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "33a22e43703d8e73783af59c1d2b09b0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.9",
"size": 329225,
"upload_time": "2025-07-12T03:03:14",
"upload_time_iso_8601": "2025-07-12T03:03:14.494807Z",
"url": "https://files.pythonhosted.org/packages/87/e0/beeb4c9d4933f66047467655c7224271ac4309c7c188823cb0e0758a7864/youtrack_cli-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 03:03:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ryan-murphy",
"github_project": "yt-cli",
"github_not_found": true,
"lcname": "youtrack-cli"
}