Fjira is a powerful command-line tool designed to simplify your interactions with Jira. Whether you're a developer, project manager, or just a Jira enthusiast, Fjira streamlines your workflow, making Jira tasks more efficient than ever before.
- Fuzzy-find like interface: Search for Jira projects and issues with ease.
- Assignee Control: Quickly change issue assignees without navigating the Jira interface.
- Status Updates: Update Jira issue statuses directly from your terminal.
- Efficient Comments: Easily append comments to Jira issues.
- Multi-Workspace Support: Manage multiple Jira workspaces effortlessly.
- Custom Searches: Use Jira Query Language (JQL) for tailored searches.
- Direct CLI Access: Access Jira issues directly from the command line.
- Cross-Platform Compatibility: Works seamlessly on macOS, Linux, and Windows.
This fork builds on mk-5/fjira with
a focus on board navigation, in-app editing, and Atlassian Cloud
compatibility. Each item below is a single commit (or small group)
on top of upstream master. Several are good candidates for
upstream PRs; the rest are personal-fit features.
--board=<id>CLI arg β jump straight to a board view from the shell.fjira --board=15391. The fork remembers the last board you viewed and prints its id on shutdown so the next launch is triviallyfjira --board=$(...).- F2 assignee filter β press F2 on a board view to filter visible issues by assignee (fuzzy-find over assignees already loaded on the board). Selecting "All" clears the filter.
- Enter opens issue detail;
menters move mode β Enter is the universal "drill in" everywhere else in fjira, so the board view now matches. The original "select an issue and move it across columns" behavior is reachable via themrune. - Issue-aware navigation β arrow keys skip empty columns and snap to actual issue rows rather than walking through empty space. Up/Down moves between issues in the current column; Left/Right jumps to the first issue of the next non-empty column.
- Faster
--boardstartup βopenBoardDirectpasses the already-fetchedBoardConfigurationthrough to the goto handler so it doesn't refetch.GetFilteris deferred to when actually needed (kanban / no active sprint), saving an unconditional 8s round trip on scrum boards. - Bug fixes β board scrolling crash when paging past the last
column; first column not scrolling back into view after navigating
right then left; F2 filter being silently cleared on
Initre-entry; 100% CPU spin from a busy-waitdefault:clause inhandleActions; concurrent-map-write race inapp.Color()(nowsync.Once).
- Numeric query expands to issue-key prefix match β when a
project is selected and the query is purely numeric, the search
uses
key ~ "PROJ-N*"directly. Typing53in COINS matches COINS-53, COINS-530β539, COINS-5300, etc. Doesn't false-match COINS-153 or descriptions containing "53". - F7/F8 exclude-status filter β F7 stacks status exclusions
(multi-select), F8 (only visible while exclusions exist) clears
them all. Current excludes show in the top bar as
Exclude Status: -Done, -Won't Fix. - F6 Create Issue β F6 from the board, issues list, or issue detail opens Jira's create-issue modal in your browser with project (and board, where applicable) context pre-populated.
- FuzzyFind opt-in "clear on Esc" β for the issues fuzzy-find only, first Esc clears the query (typo correction without losing project context). Second Esc on empty query still backs out. Ctrl-C still exits immediately. Project / workspace pickers are unaffected.
- PgUp / PgDn scrolling β page through long descriptions or comment threads; complements the existing Up/Down/Tab/Backtab one-line scrolling.
dedits the description in-app β opens a text-writer modal pre-populated with the current description. F1 saves via a newDoUpdateDescriptionAPI method that PUTs to/rest/api/2/issue/<id>. Esc cancels.- Text writer cursor positioning β the editor is now a proper in-place editor with arrow-key navigation, Home/End, Shift modifiers for larger jumps, Delete/Backspace at cursor, mid-text insertion. Useful for both descriptions and comments.
- Bounded JQL default β Atlassian Cloud's new
/rest/api/3/search/jqlendpoint rejects unbounded queries. When no project/status/user/label/query is set, fjira now falls back tocreated >= -30d ORDER BY statusinstead of emitting an empty restriction set that 400s. On-prem Server still works identically. - Expired-token hint β Atlassian Cloud returns
200+ empty project list for invalid/expired API tokens rather than401. When the projects list is empty and the workspace URL is a*.atlassian.nethost, the flash hint points users athttps://id.atlassian.com/manage-profile/security/api-tokens.
Grab fjira from the
latest release
and drop it on your PATH:
curl -L -o /usr/local/bin/fjira \
https://github.com/skomae/fjira/releases/latest/download/fjira
chmod +x /usr/local/bin/fjiraThe first time you run it macOS Gatekeeper will block the binary because it's not notarized. Right-click the file in Finder β Open once to whitelist it, or run:
xattr -d com.apple.quarantine /usr/local/bin/fjiraAny platform with Go 1.25+ installed:
git clone https://github.com/skomae/fjira.git
cd fjira
make
./out/bin/fjiraUsage:
fjira [flags]
fjira [command]
Available Commands:
[issueKey] Open a Jira issue directly from the CLI
completion Generate the autocompletion script for the specified shell
filters Search using Jira filters
help Help about any command
jql Search using custom JQL queries
version Print the version number of fjira
workspace Switch to a different workspace
Flags:
--board int Open a board directly from CLI (by board id)
-h, --help help for fjira
-p, --project string Open a project directly from CLI
Additional help topics:
fjira Open a fuzzy finder for projects as a default action
Use "fjira [command] --help" for more information about a command.
Using the Fjira CLI is straightforward. Simply run fjira in your terminal.
fjiraThe first time you run Fjira, it will prompt you for your Jira API URL and token.
Fjira workspaces store Jira configuration data in a simple YAML file located at ~/.fjira. You can switch between
multiple workspaces using the fjira workspace command.
fjira workspaceTo create a new workspace, use the following command:
fjira workspace --new abcYou can edit an existing workspace using the --edit flag:
fjira workspace --edit abcFjira supports both Jira Server and Jira Cloud, which use different token types for authorization. The tool will prompt you to select the appropriate token type during workspace configuration.
? Jira Token Type:
1. api token
2. personal token
Enter a number (Default is 1):If you prefer a manual approach, you have the option to add workspace configurations by creating a fjira.yaml file in the ~/.fjira/ directory.
For your convenience, an example configuration file is here: fjira.yml
The default view when you run fjira is the project search screen.
fjiraYou can open a project directly from the CLI:
fjira --project=PROJThis will skip the project search screen and take you directly to the issues search screen.
To open an issue directly from the CLI:
fjira PROJ-123Fjira will skip all intermediate screens and take you directly to the issue view.
Fjira also offers a board-like view. After opening a project, press F4 to access this view.
You can create and execute custom JQL queries with Fjira:
fjira jqlYou can search using your stored (favourites) Jira Filters:
fjira filtersTailor the fjira color scheme to match your preferences by creating a custom ~/.fjira/colors.yml file. This file
allows you to personalize the colors according to your unique style.
Refer to the example file, located here: colors.yml
- Expand Documentation
- Create&Delete Jira Filters
- Introduce More Jira Features
Fjira was designed for personal convenience, born out of a desire for efficiency and a love for terminal tools. Often, we find ourselves in "I just need to transition issue 123 to the next status." While opening Jira, locating the ticket on the board, and navigating the Jira issue modal are all perfectly fine, they do consume a fair amount of time.
Fjira empowers you to execute such tasks directly from the terminal, where you're likely already working! π
If Fjira enhances your Jira experience as it did mine, please consider giving it a star on GitHub. π It will power-up me for a future work.
Feel free to contribute to this project and help shape its future! Your feedback and contributions are highly appreciated.
This project is licensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only). See the LICENSE file for details.






