jira-commands
Health Gecti
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 40 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Jira toolkit for terminals, coding assistants, and bots.
jirac
Jira on the command line.
jirac is a Jira command-line client written in Rust. It ships as a single binary with no runtime dependencies and runs on macOS, Linux, and Windows. It supports Jira Cloud and Jira Data Center, stores multiple login profiles, and discovers custom fields at runtime so there is little to configure beyond your credentials.
TUI issue list |
Split master-detail |
Interactive JQL builder |
Highlights
- Interactive TUI — browse, search, create, edit, change type, move between projects, transition, assign, comment, worklog, upload, and inspect issues without leaving the terminal
- Split master-detail UI — keep the issue list visible while opening summary, comments, worklog, attachments, subtasks, and links
- Saved query and theme preferences — reuse saved JQLs, persist visible columns, and switch TUI themes
- Multi-profile auth — store and switch between multiple Jira accounts or deployments
- Custom fields — discovered at runtime via the API, not hardcoded
- Attachments — upload files to any issue from the CLI
- Worklogs — add, list, and delete time entries
- Bulk operations — transition, update, archive, or create many issues from JQL or JSON manifests
- JQL builder — interactive prompt that helps you construct queries
- Raw API passthrough — call any Jira REST endpoint directly
- MCP server — expose Jira as typed tools for editors and AI agents (docs)
Comparison
| Feature | jirac | jira-cli (Go) | jira-cmd (Node) |
|---|---|---|---|
| Single binary, no runtime deps | ✅ | ✅ | ❌ (npm) |
| Interactive TUI | ✅ | ✅ | ❌ |
| Jira REST API version | v2 / v3 | v2 / v3 | v2 |
| Custom fields (runtime discovery) | ✅ | Partial (config-based) | Partial (field IDs) |
| Attachment upload | ✅ | ❌ | ❌ |
| Worklogs (add / list / delete) | ✅ | ❌ | Add / list only |
| Bulk transition | ✅ | ❌ | ❌ |
| Bulk update | ✅ | ❌ | ❌ |
| Bulk create / batch manifests | ✅ | ❌ | ❌ |
| Issue archive | ✅ | ❌ | ❌ |
| JQL builder (interactive) | ✅ | ❌ | ❌ |
| Raw API passthrough | ✅ | ❌ | ❌ |
| Cursor-based pagination | ✅ | ❌ (offset) | ❌ (offset) |
| MCP server | ✅ | ❌ | ❌ |
| Scoop | ✅ | ❌ | ❌ |
| Multi login / saved profiles | ✅ | ❌ | ❌ |
| macOS / Linux / Windows | ✅ / ✅ / ✅ | ✅ / ✅ / Partial | ✅ / ✅ / ✅ |
| Jira Data Center / self-managed | Cloud + Data Center | Cloud + self-managed | Cloud + self-managed |
Install
# Homebrew (macOS / Linux)
brew tap mulhamna/tap
brew install jira-commands
# Optional MCP server
brew install jira-mcp
# Cargo
cargo install jira-commands
# Windows (Scoop)
scoop bucket add mulhamna https://github.com/mulhamna/scoop-bucket
scoop install mulhamna/jirac
# Windows (winget)
winget install mulhamna.jirac
# Windows (Chocolatey)
choco install jirac
More methods (install script, PowerShell, GitHub Releases): INSTALL.md
Quick start
# Authenticate
jirac auth login
# List your assigned issues
jirac issue list
# View an issue
jirac issue view PROJ-123
jirac issue view PROJ-123 --versions
# Browse or manage project fix versions
jirac issue versions -p PROJ --version "v1.2.0"
jirac issue versions -p PROJ --version "v1.2.0" --set-release-date 2026-05-30 --released
jirac issue versions -p PROJ --create --version "v1.3.0" --description "June release"
# Create an issue (interactive)
jirac issue create -p PROJ
# Transition an issue
jirac issue transition PROJ-123 --to "In Progress"
# Launch the TUI
jirac tui -p PROJ
Usage
Issues
jirac issue list # assigned to you
jirac issue list -p PROJ # by project
jirac issue list --jql "status = 'In Progress'" # custom JQL
jirac issue standup # daily standup summary
jirac issue sprint-summary -p PROJ # current sprint summary
jirac issue view PROJ-123 # view detail
jirac issue view PROJ-123 --versions # include fix-version backlog preview
jirac issue versions -p PROJ # list project fix versions
jirac issue versions -p PROJ --version "v1.2.0" # preview backlog for one fix version
jirac issue versions -p PROJ --version "v1.2.0" --set-start-date 2026-05-20
jirac issue versions -p PROJ --version "v1.2.0" --set-release-date 2026-05-30 --released
jirac issue versions -p PROJ --version "v1.2.0" --set-name "June 2026"
jirac issue versions -p PROJ --create --version "v1.3.0" --description "June release"
jirac issue create -p PROJ # create (interactive)
jirac issue create -p PROJ --type Bug --summary "Login fails on Safari"
jirac issue render --input desc.md # preview Markdown -> ADF JSON
jirac issue render --input desc.md --output text # preview rendered plain text
jirac issue update PROJ-123 --summary "New title"
jirac issue update PROJ-123 --assignee [email protected]
jirac issue transition PROJ-123 # interactive picker
jirac issue transition PROJ-123 --to "In Progress"
jirac issue attach PROJ-123 ./screenshot.png
jirac issue delete PROJ-123
jirac issue change-type PROJ-123 Story
jirac issue move PROJ-123 OTHER
jirac issue clone PROJ-123
jirac issue link list-types # list available link types
jirac issue link add PROJ-123 PROJ-456 --type Blocks # link two issues
jirac issue link delete 10000 # delete link by ID
jirac issue batch --manifest ops.json
jirac issue bulk-create --manifest issues.json
Worklogs
jirac issue worklog list PROJ-123
jirac issue worklog add PROJ-123 --time 2h --comment "Fixed auth bug"
jirac issue worklog add PROJ-123 --time 2h --date 2026-04-21 --start 09:30 --comment "Backfilled worklog"
jirac issue worklog add PROJ-123 --time 2h --from 2026-04-21 --to 2026-04-25 --exclude-weekends --comment "Backfill week"
jirac issue worklog delete PROJ-123 --id 10234
jirac issue worklog add also supports optional --date YYYY-MM-DD and --start HH:MM[:SS] flags to set the Jira worklog started timestamp explicitly. For backfills across multiple days, use --from YYYY-MM-DD --to YYYY-MM-DD, plus --exclude-weekends if Saturdays/Sundays should be skipped. In the TUI, pressing w opens the single-worklog modal, while b opens a bulk worklog modal for date ranges with weekend exclusion and a submit-confirm step.
Bulk operations
jirac issue bulk-transition -p PROJ -q 'status = "To Do"' -t "In Progress"
jirac issue bulk-update -p PROJ -q 'status = Done' --field assignee --value [email protected]
jirac issue archive -p PROJ -q 'status = Done AND updated < -90d'
jirac issue bulk-create --manifest issues.json
jirac issue batch --manifest ops.json
JQL builder
jirac issue jql # interactive query builder
Raw API passthrough
jirac api get /rest/api/3/serverInfo
jirac api post /rest/api/3/issue --body '{"fields":{...}}'
Plans (Jira Premium)
jirac plan list
Auth management
jirac auth login
jirac auth profiles
jirac auth use work-cloud
jirac auth status
jirac auth update --profile client-dc --token NEW_SECRET
jirac auth logout --profile client-dc
Multi-profile examples
# Jira Cloud
jirac auth login --profile work-cloud
# Jira Data Center with PAT
jirac auth login --profile client-dc
# Switch active account
jirac auth use client-dc
Interactive TUI
The TUI is a full-screen terminal interface for browsing and managing issues. Recent builds include a split master-detail layout, a project-level fix-version browser (V) with backlog preview plus in-place version creation (n) and metadata editing (e), saved JQL picker, theme picker, server summary, config summary overlays, in-TUI modals for native issue type changes and project moves, and both single (w) and bulk (b) worklog flows. Press ? inside the TUI for a complete shortcut reference.
jirac tui -p PROJ
Full keybinding reference: TUI.md
Configuration
Config file: ~/.config/jira/config.toml
current_profile = "work-cloud"
[profiles.work-cloud]
base_url = "https://yourcompany.atlassian.net"
email = "[email protected]"
token = "your_api_token"
project = "PROJ"
timeout_secs = 30
deployment = "cloud"
auth_type = "cloud_api_token"
api_version = 3
[profiles.client-dc]
base_url = "https://jira.company.internal"
email = "ops-user"
token = "your_pat"
project = "OPS"
timeout_secs = 30
deployment = "data_center"
auth_type = "datacenter_pat"
api_version = 2
Environment variables override the active profile:
export JIRA_PROFILE=work-cloud
export JIRA_URL=https://yourcompany.atlassian.net
export [email protected]
export JIRA_TOKEN=your_api_token
MCP server
jirac-mcp exposes Jira as typed Model Context Protocol tools for editors, agents, and desktop apps. See the jirac-mcp README for setup and available tools.
MCP install helpers
Use jirac mcp install --client <target> to register jirac-mcp with supported clients, or jirac mcp doctor to check prerequisites.
Supported helpers include Claude Code, Claude Desktop, Cursor, Gemini CLI, Codex, OpenCode, generic JSON snippets, and Zed. Zed uses the official Jira marketplace extension from https://github.com/mulhamna/jirac-ext, while jirac mcp install --client zed seeds context_servers.jira.settings in settings.json.
See INSTALL.md for the supported target matrix, client-specific notes, and recommended install flow.
Using jira-core as a library
The jira-core crate can be used independently:
[dependencies]
jira-core = "0.12"
use jira_core::{JiraClient, config::JiraConfig};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let config = JiraConfig::load()?;
let client = JiraClient::new(config);
let results = client.search_issues("project = PROJ", None, Some(10)).await?;
for issue in results.issues {
println!("{}: {}", issue.key, issue.summary);
}
Ok(())
}
See jira-core on crates.io for full API documentation.
Building from source
git clone https://github.com/mulhamna/jira-commands
cd jira-commands
make build # or: cargo build --all
make test # or: cargo test --all
make smoke # fmt-check + clippy + test + build (CI gate)
make help # list all targets
Workspace layout
crates/
jira-core/ # shared client, models, config, auth
jira/ # CLI app
jira-mcp/ # MCP server
zed-jira/ # Source-of-truth wrapper code mirrored into github.com/mulhamna/jirac-ext
assets/ # screenshots and images
packaging/ # release/install packaging
Contributors
Thanks to everyone helping shape jirac. This footer is refreshed automatically during the release lane.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi