id = "jira-cli" name = "Jira CLI" homepage = "https://github.com/ankitpokhrel/jira-cli" description = "An interactive command-line client for Jira." executables = ["jira"] [dotfiles] # The project's own config package defines Dir = .jira, FileName = .config, # and FileType = yml; its generator writes $CONFIG_HOME/.jira/.config.yml. # GetConfigHome follows XDG_CONFIG_HOME and otherwise the platform config home. # https://github.com/ankitpokhrel/jira-cli/blob/main/internal/config/generator.go # https://github.com/ankitpokhrel/jira-cli/blob/main/internal/cmd/root/root.go paths = ["[configHome]/.jira/.config.yml"] exclude = [] # API tokens are deliberately not stored in this file by the current CLI: the # official source checks JIRA_API_TOKEN, ~/.netrc, or the OS keyring. ~/.netrc # belongs to the netrc entry, and the keyring is not a dotfile. secret = [] [commands] format = 1 label = "Jira CLI" description = "Search and create Jira issues. Pick a subcommand; flags without a documented long name are offered by their short form only." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["issue", "list"] label = "List issues" description = "Search issues in the current project. Output is interactive unless a plain, raw or CSV format is chosen." [[commands.subcommand.source]] id = "ref" kind = "manual" url = "https://github.com/ankitpokhrel/jira-cli/blob/main/README.md" revision = "2026-10-27" evidence = """ jira issue list -yHigh -s"To Do" --created month -lbackend -a$(jira me) You can load a specific configuration file by using the `--config/-c` flag # List issues created in last 7 days $ jira issue list --created -7d # List issues in status "To Do" $ jira issue list -s"To Do" # List recent issues in plain mode $ jira issue list --plain # List recent issues in raw JSON format $ jira issue list --raw # List recent issues in csv format $ jira issue list --csv # List issue in the same order as you see in the UI $ jira issue list --order-by rank --reverse # You can execute raw JQL within a given project context using `--jql/-q` option. $ jira issue list -q "summary ~ cli" jira issue list -w jira issue list -a"User A" -r"User B" jira issue list -w -pXYZ jira issue list -a$(jira me) -tBug -sDone -rFixed --reverse """ [[commands.subcommand.field]] id = "status" label = "Status" type = "string" option = ["-s"] sources = ["ref"] [[commands.subcommand.field]] id = "priority" label = "Priority" type = "string" option = ["-y"] sources = ["ref"] [[commands.subcommand.field]] id = "assignee" label = "Assignee" type = "string" option = ["-a"] description = "A user name, or x for unassigned." sources = ["ref"] [[commands.subcommand.field]] id = "reporter" label = "Reporter" type = "string" option = ["-r"] sources = ["ref"] [[commands.subcommand.field]] id = "label" label = "Labels" type = "string" option = ["-l"] multiple = true sources = ["ref"] [[commands.subcommand.field]] id = "type" label = "Issue type" type = "string" option = ["-t"] sources = ["ref"] [[commands.subcommand.field]] id = "created" label = "Created" type = "string" option = ["--created"] description = "For example -7d, week or month." sources = ["ref"] [[commands.subcommand.field]] id = "jql" label = "Raw JQL" type = "string" option = ["--jql", "-q"] sources = ["ref"] [[commands.subcommand.field]] id = "project" label = "Project" type = "string" option = ["-p"] sources = ["ref"] [[commands.subcommand.field]] id = "watching" label = "Issues I am watching" type = "boolean" option = ["-w"] sources = ["ref"] [[commands.subcommand.field]] id = "plain" label = "Plain output" type = "boolean" option = ["--plain"] sources = ["ref"] [[commands.subcommand.field]] id = "raw" label = "Raw JSON output" type = "boolean" option = ["--raw"] sources = ["ref"] [[commands.subcommand.field]] id = "csv" label = "CSV output" type = "boolean" option = ["--csv"] sources = ["ref"] [[commands.subcommand.field]] id = "order_by" label = "Order by" type = "string" option = ["--order-by"] suggestions = [{ value = "rank", label = "Rank" }] sources = ["ref"] [[commands.subcommand.field]] id = "reverse" label = "Reverse order" type = "boolean" option = ["--reverse"] sources = ["ref"] [[commands.subcommand.field]] id = "config" label = "Config file" type = "path" path = { kind = "file", role = "input" } option = ["--config", "-c"] sources = ["ref"] [[commands.subcommand.task]] id = "mine" label = "Issues in a status" fields = ["status", "assignee", "plain"] required = ["status"] [[commands.subcommand.task]] id = "jql" label = "Run a JQL query" fields = ["jql", "plain"] required = ["jql"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["status", "priority", "assignee", "reporter", "label", "type", "created", "jql", "plain"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["project", "watching", "raw", "csv", "order_by", "reverse", "config"] [[commands.subcommand]] path = ["issue", "create"] label = "Create an issue" description = "Create an issue non-interactively. Custom fields and Markdown templates are left out." [[commands.subcommand.source]] id = "ref" kind = "manual" url = "https://github.com/ankitpokhrel/jira-cli/blob/main/README.md" revision = "2026-10-27" evidence = """ # Pass required parameters and use --no-input option to skip prompt $ jira issue create -tBug -s"New Bug" -yHigh -lbug -lurgent -b"Bug description" --fix-version v2.0 --no-input To attach epic to an issue on creation, you can use `-P/--parent` field. $ jira issue create -tStory -s"Epic during creation" -PEPIC-42 """ [[commands.subcommand.field]] id = "type" label = "Issue type" type = "string" option = ["-t"] sources = ["ref"] [[commands.subcommand.field]] id = "summary" label = "Summary" type = "string" option = ["-s"] sources = ["ref"] [[commands.subcommand.field]] id = "priority" label = "Priority" type = "string" option = ["-y"] sources = ["ref"] [[commands.subcommand.field]] id = "label" label = "Labels" type = "string" option = ["-l"] multiple = true sources = ["ref"] [[commands.subcommand.field]] id = "body" label = "Description" type = "string" option = ["-b"] sources = ["ref"] [[commands.subcommand.field]] id = "fix_version" label = "Fix version" type = "string" option = ["--fix-version"] sources = ["ref"] [[commands.subcommand.field]] id = "parent" label = "Parent / epic key" type = "string" option = ["--parent", "-P"] sources = ["ref"] [[commands.subcommand.field]] id = "no_input" label = "Skip interactive prompts" type = "boolean" option = ["--no-input"] sources = ["ref"] [[commands.subcommand.task]] id = "create" label = "Create without prompts" fields = ["type", "summary", "priority", "label", "body", "no_input"] required = ["type", "summary", "no_input"] set = { no_input = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["type", "summary", "priority", "label", "body", "no_input"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["fix_version", "parent"]