Utilities
This page documents the diagnostic and discovery commands that frame the safe operator workflow for ajat: validate the workstation, inspect the command surface, confirm the target, and prepare diagnostics before you run a consequential job.
doctor, tree, support, version, completion, and the config and
license families are available before license activation or full
credential setup. Operational commands such as export, report,
diff, search, import, rule, and invoke require a valid license and
Jira credentials.
Top-level commands
completion— generate shell completion scripts for supported shells. Documented below.config— manage application configuration. See Config Commands.diff— compare two local export directories. See Diff.doctor— verify configuration, credentials, connectivity, and write permissions. Documented below.export— back up every Jira Automation rule to local JSON. See Export.import— restore or promote rules from a local export. See Import.invoke— fire a manually-triggered rule against targets. See Invoke.license— manage your license. See License.report— generate self-contained HTML reports. See Reports.rule— bulk operations against Jira Automation rules. See Rule.search— search live rule summaries through the Automation API. See Search.support— generate a masked diagnostic bundle for sharing with support. Documented below.tree— display the full command tree with descriptions. Documented below.version— print version and build metadata. Documented below.
Doctor
ajat doctor [flags]Runs a sequence of checks against the configured environment so
misconfiguration surfaces before you export rules, mutate rules, or generate a
report. doctor exits 0 only if every check passes.
Checks performed
| Check | Description |
|---|---|
| Configuration | Validates the effective configuration |
| License file | Confirms the local license file exists and decrypts |
| License metadata | Validates local license metadata without contacting the API |
| Tenant resolution | Resolves the tenant via /_edge/tenant_info (unauthenticated) |
| Jira credentials | Probes credentials with /rest/api/3/myself |
| Automation API access | Probes Automation manual-rule access (Basic auth) |
| Output directory | Confirms the output directory is writable |
Flags
| Flag | Default | Description |
|---|---|---|
--output-dir | <cwd>/jira_rule_exports | Output directory to test for write permissions |
--timeout | 30s | Overall timeout for doctor checks |
Examples
# Run all diagnostic checks
ajat doctor
# Validate a specific export destination before the first run
ajat doctor --output-dir ./jira-automations-backup
# Cap the overall run time
ajat doctor --timeout 10sRecommended moments to run doctor:
- immediately after license activation
- after changing credentials or proxy configuration
- before the first export on a new machine
- before a scheduled or customer-facing export run
Use the global --no-progress flag when you need clean output in CI or terminal
recordings.
completion
ajat completion [bash|zsh|fish|powershell]Generates shell completion scripts so operators can move through the large command surface faster.
Examples
ajat completion zsh
ajat completion bash
ajat completion fishLoad completions in the current shell session, for example with zsh:
source <(ajat completion zsh)Pass --no-descriptions to generate a completion script without inline
descriptions. Completion is especially useful for teams that rely on the
config, report, and rule subcommand families and want faster discovery
from the shell.
support
ajat support [flags]Generates a diagnostic bundle for sharing with the support team.
The support command collects system information, configuration, diagnostic
checks, environment variables, and recent log output into a single file. Jira
usernames, API tokens, and other secret-like environment values are
automatically masked, so the bundle is safe to share. Log file contents are
included as-is, so review them briefly before sharing if you have custom logging
that may capture sensitive data.
Flags
| Flag | Short | Default | Description |
|---|---|---|---|
--output | -o | stdout | Write bundle to a file instead of stdout |
--log-file | -l | (none) | Path to a log file to include in the bundle |
--log-lines | 50 | Number of recent log lines to include | |
--output-dir | (none) | Output directory to test for write permissions |
Bundle contents
- System info: app version, Go version, OS/arch, git commit, build date
- Configuration: config file path, Jira domain and type, HTTP and log settings, with the API token masked
- Diagnostics: the same checks as
doctor - Environment: only
AJAT_*variables, with secret values redacted - Recent log: the last N lines from the selected log file
Examples
# Print the support bundle to stdout
ajat support
# Save the bundle to a file
ajat support --output support-bundle.txt
# Include more log context
ajat support --log-file app.log --log-lines 200Tip: reproduce the issue with debug logging first, then generate the bundle:
# 1. Reproduce the issue with debug logging
ajat export --output-dir ./jira-automations-backup --debug --log-file app.log
# 2. Generate the support bundle
ajat support --log-file app.log --output support-bundle.txtAttach the output when contacting support@climakers.com. See Support for the full diagnostics workflow.
Tree
ajat tree [flags]Prints the full command tree with descriptions. Useful for discovering available commands and their hierarchy at a glance without reading through individual help pages.
Flags
| Flag | Short | Default | Description |
|---|---|---|---|
--short | -s | false | Hide flags and show only commands with descriptions |
Examples
# Show the full command tree with flags
ajat tree
# Hide flags and show only commands
ajat tree --shorttree --short output
The short form shows commands and descriptions without flags — useful for operator runbooks and onboarding:
ajat
├── completion → Generate the autocompletion script for the specified shell
│ ├── bash → Generate the autocompletion script for bash
│ ├── fish → Generate the autocompletion script for fish
│ ├── powershell → Generate the autocompletion script for powershell
│ └── zsh → Generate the autocompletion script for zsh
├── config → Manage the ajat configuration file
│ ├── create → Create the configuration file with default settings
│ ├── get → Show the value of a single configuration setting
│ ├── list → Show the effective configuration as YAML
│ ├── set → Save a configuration setting to the config file
│ ├── validate → Check the effective configuration for problems
│ └── where → Print the path to the configuration file
├── diff → Diff two ajat export directories without calling the Jira API
├── doctor → Verify configuration, Jira reachability, and write permissions
├── export → Back up every Automation rule to local JSON (full or incremental)
├── import → Restore Automation rules from a local backup into Jira
├── invoke → Fire a manually-triggered Automation rule against targets
├── license → Activate, inspect, and manage the ajat license
│ ├── activate → Activate a license on this machine
│ ├── deactivate → Deactivate the license and free its activation seat
│ ├── export → Export the encrypted license to a backup file
│ ├── import → Import a license from a backup file
│ ├── list → Show the current license details
│ ├── terms → Print the software license agreement
│ ├── validate → Verify that the current license is valid
│ └── where → Print the license file path
├── report → Generate self-contained HTML reports over the automation inventory
│ ├── collision → Find overlapping and behaviourally-duplicate rules
│ ├── consistency → Audit label hygiene, naming, ownership and consistency
│ ├── inventory → Catalogue every Automation rule by scope, with flow diagrams
│ ├── risk → Score governance & operational risk across the estate
│ └── workflow → Render every rule as a flow-diagram runbook
├── rule → Apply bulk operations to Jira Automation rules
│ ├── delete → Delete disabled rules matched by the selector
│ ├── disable → Disable rules matched by the selector
│ ├── enable → Enable rules matched by the selector
│ ├── manual → Work with manually-triggered Jira Automation rules
│ │ └── list → List manually-triggered rules applicable to one or more targets
│ └── scope → Change the rule-scope of rules matched by the selector
│ └── set → Replace, add, or remove scope ARIs on matched rules
├── search → Search live Automation rules in Jira, no export needed
├── support → Generate a diagnostic bundle for support
├── tree → Display the full command tree with descriptions
└── version → Print the ajat versiontree output (full)
Without --short, the full tree also shows every flag for every command,
including short forms, descriptions, and defaults. This is useful for quickly
looking up flags without running --help on individual commands.
Use tree --short when you need a compact release inventory for runbooks,
onboarding, or internal operator documentation. Use tree (full) when you need
a complete reference of every flag available.
version
ajat version [flags]Prints the ajat binary version.
Flags
| Flag | Default | Description |
|---|---|---|
--extended | false | Print extended build metadata |
Examples
# Short version
ajat version
# Full build metadata: build date, commit, branch, builder, and Go toolchain
ajat version --extendedThe global --version-extended flag prints the same extended metadata from any
invocation without the version subcommand.