jayrah
Enables AI assistants to interact with Jira via CLI/TUI, supporting issue browsing, creation, comments, status changes, and custom fields.
README
<img align="right" src="https://github.com/user-attachments/assets/e65d653a-2442-4034-aba0-b302a0094a59" alt="ChatGPT Image" width="128" height="128">
Jayrah
A simple CLI and TUI for working with Jira from your terminal.
Screenshot
TUI Interface
<img width="1862" height="1237" alt="Screenshot 2025-09-04 at 16 07 39" src="https://github.com/user-attachments/assets/4a8b8152-2c08-45d5-ad3c-0366fb3441d7" />
Web Interface
<img width="1861" height="1237" alt="Screenshot 2025-09-04 at 16 12 26" src="https://github.com/user-attachments/assets/85a1935d-8182-4be0-b723-41982981e94d" />
Install
curl -LsSf uvx.sh/jayrah/install.sh | sh
Or from source (need uv installed):
git clone https://github.com/chmouel/jayrah.git
cd jayrah
uv run jayrah
Quick Setup
Create ~/.config/jayrah/config.yaml:
jira_server: "https://your-jira-id.atlassian.net" # or other Jira custom server URL
jira_user: "you@example.com"
jira_password: "your-api-token" # or you can use a pass path, with the pass:: prefix, for example pass::jira/token
jira_project: "PROJECT-KEY"
api_version: "2" # Use "3" for Jira Cloud with the newer API
auth_method: "basic" # or "bearer" for operations Bearer authentication
Jayrah supports both Bearer token and Basic authentication:
- API v2 uses Bearer token authentication by default
- API v3 uses Basic authentication by default
For Basic authentication, make sure your configuration includes both jira_user and jira_password.
If you don't configure your config.yaml file, jayrah will prompt you for the required information when you run it for the first time.
Usage
Browse
Launch the issue browser with:
jayrah browse # or just `jayrah` will do the same
List all your boards with the -l/--list-boards option.
Filter issues by board with the -f/--filter option for example:
jayrah browse myissue --filter status=New
if you add words after the jayrah browse BOARD command, it will search for
issues that match those words.
jayrah browse myissue search1 search2
This by default will search for issues that match the words in the summary, you
can use the switch --or to instead do a or on the search terms.
- Create issue:
jayrah create
TUI (Terminal UI)
When you start browsing the issues of your board, you will be presented with a list of all the issues in that board. You can use your mouse or your keyboard:
- Navigate with arrow keys or
j/k - Move the preview pan up and down with
J/K - Press
qorEscapeto quit - Press
oto open the issue in your browser - Press
fto filter issues by status, assignee, or other fields. - Press
afor all actions you can do on the issue. - Press
cfor accessing or adding a comment. - Press
tto transition the issue to a new status. - Press
eto edit the title or description of the issue. (the editor emulates readline/emacs keys). - Use
F1for the command palette
Editing issue descriptions
Jayrah supports editing issue title and descriptions.
When editing a description:
- Press
eto access the edit menu - Select "description" from the options
- Edit your description in the text area
- You can navigate with emacs or readline keys.
- Press
Ctrl+Sto save your changes orEscapeto cancel
Custom Fields
You can display and edit custom Jira fields in the TUI by adding a section to your config:
custom_fields:
- name: Git PR
description: "URL to the git pull request"
field: customfield_12310220
type: url
- name: Release Note
description: "Release note for the issue"
field: customfield_12317313
type: text
- name: Some Number Field
description: "A numeric value"
field: customfield_999999
type: number
- name: Some Other Custom Field
field: customfield_45678
type: string
typecan bestring(default),text,url, ornumber.urlfields are validated as URLs.textfields use a multi-line editor.numberfields require a valid number.stringfields use a single-line input.
descriptionis shown in the edit dialog if provided.
If a custom field is not empty, it will be shown in the issue details view. You can also edit these fields from the edit menu.
To find the correct custom field ID (e.g., customfield_12310), the easiest way is to use your web browser's developer tools while editing a field in Jira. Look at the network requests and see which field is being updated in the REST API call. Use that field ID in your config.
MCP Server for AI integration
Jayrah can run as an MCP server to work with AI tools like VS Code Copilot.
Start the server
jayrah mcp
This runs in stdio mode by default for VS Code.
Available actions
The server exposes these Jira operations:
- Browse issues (with pagination support)
limit- Control how many issues to display (default: 10)page- Select which page of results to view (starts at 1)page_size- Number of issues per page (default: 100)
- Create/view issues
- Add comments to issues
- Change issue status
- Get possible status changes
- Open issues in browser
- List your boards
VS Code setup
Follow these steps to set up Jayrah with VS Code:
- Clone the repo somewhere (e.g.,
/path/to/jayrah) - Make sure you have Copilot in VS Code
- Hit
F1and pickMCP: Add server - Choose
Command Stdio - Enter:
uv run --directory=/path/to/jayrah jayrah mcp - Save the config (e.g., to
.vscode/mcp.json):
{
"servers": {
"jayrah": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/jayrah",
"jayrah",
"mcp"
]
}
}
}
- In Copilot Chat, select the tools button (often a sparkle icon or similar) to see and use Jayrah's available actions.
Web UI Server
Jayrah includes a web-based UI that can be started with:
jayrah web
This will start a web UI server on http://localhost:8000 by default. You can open this URL in your web browser to use the Jayrah web interface to browse and manage Jira issues in a quick and user-friendly way.
Security Note:
The web server is intended for local development and use only. Do not expose it to the public internet, as it is not hardened for production or external access.
Jayrah CLI
jayrah also provides a command-line interface (CLI) for performing various Jira operations directly from the terminal. Here are some of the available commands:
jayrah cli open
open an issue in your web browser using the jira host from your config:
jayrah cli open ISSUE-123
jayrah cli view
view an issue details in the terminal:
jayrah cli view ISSUE-123
jayrah cli custom
Update a custom field as specified in your config:
jayrah cli custom git-pr ISSUE-123 "https://git.com/your/repo/pull/123"
jayrah cli gencontext
Generate comprehensive context files from board tickets for LLM consumption. This command exports all tickets from a specified board including descriptions, comments, and metadata in a format optimized for importing into NotebookLM, Gemini, or other LLM contexts.
jayrah cli gencontext my-board
Options:
--output,-o: Output file path (default: stdout)--include-comments,-c: Include all comments from tickets--include-metadata,-m: Include custom fields and metadata--format: Output format -markdown(default) orplain
Examples:
# Export all tickets from a board to stdout
jayrah cli gencontext my-board
# Export with comments and metadata to a file
jayrah cli gencontext my-board --include-comments --include-metadata --output context.md
# Export in plain text format
jayrah cli gencontext my-board --format plain
jayrah cli browse
show issues of a board ouptputting a CSV format that can be used with tools like fzf:
jayrah cli browse ${board} | sed '1d' | fzf --delimiter , --with-nth '{1} {5..} [{2}|{3}|{4}]' --accept-nth 1
License
Apache-2.0
Author
Chmouel Boudjnah
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。