A TUI for interacting with Atlassian Jira from your terminal.
Project description
JiraTUI
A Text User Interface (TUI) for interacting with Atlassian Jira directly from your shell.
Installation
The recommended way to install the application is via uv:
uv tool install jiratui
Alternatively, you can install it using pip:
pip install jiratui
or pipx:
pipx install jiratui
For Arch Linux (btw) the package is available in AUR
yay -S jiratui-git
Usage
After installing the package, you can run the CLI tool with the following command:
jiratui
This will show you the available commands for the CLI tool
Usage: jiratui [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
comments Use it to add, list or delete comments associated to work items.
issues Use it to search, update or delete work items.
ui Launches the Jira TUI application.
users Use it to search users and user groups.
version Shows the version of the tool.
Settings
Before using the application you need to provide the basic configuration. All the settings can be provided in a yaml
file.
The application uses the XDG specification to locate
config (and log) files. The default name of the config file is config.yaml. You can override the location of the
config file via the env variable JIRA_TUI_CONFIG_FILE. The application will attempt to load the config
file in the following way:
- If the variable
JIRA_TUI_CONFIG_FILEis set it will use the file specified by it. - If not, if
XDG_CONFIG_HOMEis set then it will load the file$XDG_CONFIG_HOME/jiratui/config.yaml. - If not, it will attempt to load the file from
$HOME/.config/jiratui/config.yaml.
WARNING: Starting with version v1.0.0 the application no longer supports using the env variable
JIRA_TUI_ENV_FILE to define the .env file with configuration settings. Instead, all settings must be defined in the
config file as described below.
Setting Up the Jira's Instance API
You must provide the following values to connect to your Jira instance API:
jira_api_username: the username for connecting to your Jira API.jira_api_token: the token for connecting to your Jira API. This can be your Personal Access Token (PAT).jira_api_base_url: the base URL of your Jira instance API.
Example: Assuming that your config file is located at $XDG_CONFIG_HOME/jiratui/config.yaml you can add the following:
jira_api_username: 'bart@simpson.com'
jira_api_token: '12345'
jira_api_base_url: 'https://<your-jira-instance-hostname>.atlassian.net'
Tip: The application provides a sample config file called jiratui.example.yaml that you can use to define yours.
Running the Application UI
Once you have provided the necessary settings, you can run the application's UI with the following command:
jiratui ui
If you are using a custom config file, run:
JIRA_TUI_CONFIG_FILE=/path/to/cutom-file/my-file.yaml jiratui ui
CLI Interface
In addition to the ui command, the CLI tool offers several commands to help you manage issues, comments, and users.
Searching for Issues
To search for work items in the project SCRUM, use the issues search command and pass the --project-key argument
with the (case-sensitive) project key.
Example: searching for issues of the project SCRUM
$ jiratui issues search --project-key SCRUM
| Key | Type | Created | Status (ID) | Reporter | Assignee | Summary |
|---------|------|------------------|---------------|-------------------|-------------------|--------------------------------------------|
| SCRUM-1 | Bug | 2025-07-31 15:55 | To Do (10000) | lisa@simpson.com | bart@simpson.com | Write 100 times "I will be a good student" |
| SCRUM-2 | Task | 2025-06-30 15:56 | To Do (10000) | homer@simpson.com | homer@simpson.com | Eat donuts |
To search for a specific work item, use the issues search command with the --key argument and the (case-sensitive)
issue key.
Example: searching for the issue with key SCRUM-1
$ jiratui issues search --key SCRUM-1
| Key | Type | Created | Status (ID) | Reporter | Assignee | Summary |
|---------|------|------------------|---------------|-------------------|-------------------|--------------------------------------------|
| SCRUM-1 | Bug | 2025-07-31 15:55 | To Do (10000) | lisa@simpson.com | bart@simpson.com | Write 100 times "I will be a good student" |
The full list of commands you can use with the CLI and additional settings is available at https://jiratui.readthedocs.io
Documentation
The full documentation is available at https://jiratui.readthedocs.io
Contributing
If you would like to contribute to the project make sure you are familiar with the contribution guidelines and the Code of Conduct.
Acknowledgements
This project was inspired by the work of Textualize and their remarkable frameworks Textual and Rich.
I also want to say thanks to the teams behind Posting, Lazygit and Harlequin for making these awesome tools. These have become the must-have tools for my development workflow.
Last but not least to my colleagues Tomasz, Ilyes and Giorgos for their support, encouragement and for reminding me how cool is to work from your terminal (something I have forgotten).
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 jiratui-1.0.0.tar.gz.
File metadata
- Download URL: jiratui-1.0.0.tar.gz
- Upload date:
- Size: 113.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 |
10c2e5afa9ff9267fbcf93d2846bea813ee107ae4475cc6551bf099042c990ed
|
|
| MD5 |
42d5cd5439aae73adefa7afae9f61b83
|
|
| BLAKE2b-256 |
f70217051f14861a7bd6ffe2d77b71b2cf0459b5e15072e476719a5193e6285f
|
Provenance
The following attestation bundles were made for jiratui-1.0.0.tar.gz:
Publisher:
publish-to-pypi.yml on whyisdifficult/jiratui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jiratui-1.0.0.tar.gz -
Subject digest:
10c2e5afa9ff9267fbcf93d2846bea813ee107ae4475cc6551bf099042c990ed - Sigstore transparency entry: 524697158
- Sigstore integration time:
-
Permalink:
whyisdifficult/jiratui@a013c523ba11df4d2114d4dd4bb1764ee7c7e1f9 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/whyisdifficult
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@a013c523ba11df4d2114d4dd4bb1764ee7c7e1f9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file jiratui-1.0.0-py3-none-any.whl.
File metadata
- Download URL: jiratui-1.0.0-py3-none-any.whl
- Upload date:
- Size: 149.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 |
9cab191eb0a8df1d17c28f03d1f88aaeae729d09931c76824b74bd4bd1104fb1
|
|
| MD5 |
d0930b611a2b14989169a71d4d52abe8
|
|
| BLAKE2b-256 |
43584f5cf8d11d605e207aff9b196e2bfc1424c30ef06e6a0b73e88b9f7ac96c
|
Provenance
The following attestation bundles were made for jiratui-1.0.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on whyisdifficult/jiratui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jiratui-1.0.0-py3-none-any.whl -
Subject digest:
9cab191eb0a8df1d17c28f03d1f88aaeae729d09931c76824b74bd4bd1104fb1 - Sigstore transparency entry: 524697193
- Sigstore integration time:
-
Permalink:
whyisdifficult/jiratui@a013c523ba11df4d2114d4dd4bb1764ee7c7e1f9 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/whyisdifficult
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@a013c523ba11df4d2114d4dd4bb1764ee7c7e1f9 -
Trigger Event:
release
-
Statement type: