Skip to content

CLI Commands

Quick reference for all atlcli commands.

Flag Description
--profile <name> Auth profile to use
--json Output as JSON
--no-log Disable logging for this command
--help Show help
--version Show version
Terminal window
# Interactive setup
atlcli auth init # Initialize default profile
atlcli auth init --profile work # Initialize named profile
# Non-interactive login (Cloud)
atlcli auth login --site <url> --email <email> --token <token>
atlcli auth login --profile work --site <url>
# Non-interactive login (Server/Data Center with PAT)
atlcli auth login --bearer --site <url> --token <token>
atlcli auth login --bearer --site <url> --username <user> # Uses keychain
# Server/Data Center with self-signed or internal CA certificate
atlcli auth login --bearer --site <url> --token <token> --ca-file /path/to/ca.pem
atlcli auth login --bearer --site <url> --token <token> --insecure # Skip verify (testing only)
# Profile management
atlcli auth status # Show current profile status
atlcli auth list # List all profiles
atlcli auth switch <name> # Switch active profile
atlcli auth rename <old> <new> # Rename profile
# Cleanup
atlcli auth logout # Clear active profile credentials
atlcli auth logout <name> # Clear specific profile credentials
atlcli auth delete <name> # Delete profile entirely
atlcli auth delete <name> --delete-keychain # Also delete keychain creds (macOS)
Terminal window
# View configuration
atlcli config list # Show all config (redacted)
atlcli config get defaults.project # Get a specific value
# Set defaults (avoids repetitive flags)
atlcli config set defaults.project PROJ # Default Jira project
atlcli config set defaults.space DOCS # Default Confluence space
atlcli config set defaults.board 123 # Default Jira board ID
# Logging settings
atlcli config set logging.level debug # Set log level
atlcli config set logging.global true # Enable global logs
# Remove settings
atlcli config unset defaults.project # Remove a value

Available keys:

Key Type Description
defaults.project string Default Jira project key
defaults.space string Default Confluence space key
defaults.board number Default Jira board ID
logging.level string off, error, warn, info, debug
logging.global boolean Enable global logs
logging.project boolean Enable project logs
Terminal window
atlcli doctor # Run all health checks
atlcli doctor --fix # Auto-fix safe issues (create dirs, etc.)
atlcli doctor --json # JSON output for scripting

Checks performed:

  • Config file exists and is valid JSON
  • At least one profile configured
  • Active profile has credentials
  • Confluence API reachable and authenticated
  • Jira API reachable and authenticated
  • Log directory writable

Exit codes: 0 = all passed, 1 = failures detected

Terminal window
atlcli wiki docs init <dir> --space <key> # Initialize sync directory
atlcli wiki docs pull <dir> # Pull from Confluence
atlcli wiki docs pull <dir> --page-id <id> # Pull specific page
atlcli wiki docs pull <dir> --version <n> # Pull specific version
atlcli wiki docs pull <dir> --label <name> # Pull pages with label
atlcli wiki docs push <dir> # Push to Confluence
atlcli wiki docs push <dir> --dry-run # Preview changes
atlcli wiki docs push <dir> --force # Force overwrite
atlcli wiki docs push <dir> --legacy-editor # Use legacy editor (v1)
atlcli wiki docs sync <dir> --watch # Watch and sync
atlcli wiki docs status <dir> # Show sync status
atlcli wiki docs add <dir> --template <name> # Add page from template
atlcli wiki docs diff <dir> # Show local vs remote diff (title only for folders)
atlcli wiki docs resolve <dir> # Resolve sync conflicts
atlcli wiki docs check <dir> # Validate docs (includes folder checks)
atlcli wiki docs preview <dir> # Preview markdown rendering
atlcli wiki docs convert <file> --to-new-editor # Convert to v2 editor
atlcli wiki docs convert <file> --to-legacy-editor # Convert to v1 editor
atlcli wiki docs convert <dir> --to-new-editor --dry-run # Preview bulk conversion
atlcli wiki docs convert <dir> --to-new-editor --confirm # Bulk convert directory
Terminal window
# Basic audit
atlcli audit wiki --all # Run all checks
atlcli audit wiki --all --stale-high 12 # With 12-month stale threshold
# Check types
atlcli audit wiki --stale-high 12 --stale-medium 6 --stale-low 3 # Stale content
atlcli audit wiki --orphans # Orphaned pages (no incoming links)
atlcli audit wiki --broken-links # Broken internal links
atlcli audit wiki --single-contributor # Bus factor risk
atlcli audit wiki --inactive-contributors # Pages with inactive authors
atlcli audit wiki --external-links # List external URLs
atlcli audit wiki --check-external # Verify external URLs via HTTP
atlcli audit wiki --missing-label <label> # Pages missing required label
atlcli audit wiki --restricted # Pages with restrictions
atlcli audit wiki --drafts # Unpublished drafts
atlcli audit wiki --archived # Archived pages
atlcli audit wiki --high-churn <n> # Pages with N+ versions
atlcli audit wiki --folders # Check folder structure
# Scope filtering
atlcli audit wiki --label <label> # Only audit pages with label
atlcli audit wiki --under-page <id> # Only pages under ancestor
atlcli audit wiki --exclude-label <label> # Exclude pages with label
atlcli audit wiki --dir <path> # Audit specific directory
# Output formats
atlcli audit wiki --all --json # JSON output
atlcli audit wiki --all --markdown # Markdown report
# Fix mode
atlcli audit wiki --all --fix --dry-run # Preview fixes
atlcli audit wiki --all --fix # Apply fixes
atlcli audit wiki --all --fix --fix-label <label> # Custom stale label
# Advanced
atlcli audit wiki --include-remote # Include unsynced remote pages
atlcli audit wiki --refresh-users # Refresh user status from API
atlcli audit wiki --rebuild-graph # Rebuild link graph from markdown
atlcli audit wiki --export-graph # Export link graph as JSON
Terminal window
atlcli wiki page list --space <key> # List pages in space
atlcli wiki page list --cql <query> # Filter with CQL
atlcli wiki page list --label <name> # Filter by label
atlcli wiki page get --id <id> # Get page content
atlcli wiki page get --id <id> --version <n> # Get specific version
atlcli wiki page create --space <key> --title <title> --body <file>
atlcli wiki page create --space <key> --title <title> --body <file> --parent <id>
atlcli wiki page update --id <id> --body <file>
atlcli wiki page update --id <id> --body <file> --title <title>
atlcli wiki page delete --id <id> --confirm
atlcli wiki page delete --cql <query> --dry-run # Bulk delete preview
atlcli wiki page delete --cql <query> --confirm # Bulk delete
atlcli wiki page move --id <id> --parent <id>
atlcli wiki page move <file> --before <target> # Position before sibling
atlcli wiki page move <file> --after <target> # Position after sibling
atlcli wiki page move <file> --first # First child position
atlcli wiki page move <file> --last # Last child position
atlcli wiki page move --id <id> --position <n> # Specific position
atlcli wiki page copy --id <id> --title <title>
atlcli wiki page copy --id <id> --title <title> --space <key>
atlcli wiki page children --id <id> # List child pages
atlcli wiki page children --id <id> --limit <n> --json
atlcli wiki page sort <file> --alphabetical
atlcli wiki page sort <file> --natural # Natural sort (Chapter 2 < Chapter 10)
atlcli wiki page sort <file> --by created
atlcli wiki page sort --id <id> --by modified --reverse
atlcli wiki page archive --id <id> --confirm
atlcli wiki page archive --cql <query> --dry-run
atlcli wiki page open <id> # Open page in browser
atlcli wiki page convert --id <id> --to-new-editor # Convert to v2 editor
atlcli wiki page convert --id <id> --to-legacy-editor # Convert to v1 editor
# Cross-product linking (Confluence ↔ Jira)
atlcli wiki page link-issue --id <id> --issue <key> # Link Jira issue to page
atlcli wiki page link-issue --id <id> --issue <key> --comment # With comment
atlcli wiki page issues --id <id> # List linked Jira issues
atlcli wiki page issues --id <id> --project <key> # Filter by project
atlcli wiki page unlink-issue --id <id> --issue <key> # Remove link
Terminal window
atlcli wiki page history --id <id> # List versions
atlcli wiki page history --id <id> --limit <n>
atlcli wiki page diff --id <id> --version <n> # Compare with current
atlcli wiki page diff --id <id> --from <n> --to <n>
atlcli wiki page restore --id <id> --version <n>
atlcli wiki page restore --id <id> --version <n> --message <text> --confirm
Terminal window
# Footer comments
atlcli wiki page comments list --id <id>
atlcli wiki page comments add --id <id> "Comment text"
atlcli wiki page comments reply --id <id> --parent <comment-id> "Reply text"
atlcli wiki page comments update --id <id> --comment <comment-id> "Updated text"
atlcli wiki page comments delete --id <id> --comment <comment-id> --confirm
atlcli wiki page comments resolve --id <id> --comment <comment-id>
atlcli wiki page comments reopen --id <id> --comment <comment-id>
# Inline comments
atlcli wiki page comments list --id <id> --inline
atlcli wiki page comments add-inline --id <id> --selection <text> "Comment"
Terminal window
atlcli wiki page label list --id <id> # List labels on page
atlcli wiki page label add <label> [<label>...] --id <id> # Add labels
atlcli wiki page label add <label> --cql <query> --dry-run # Bulk add preview
atlcli wiki page label add <label> --cql <query> --confirm # Bulk add
atlcli wiki page label remove <label> --id <id>
atlcli wiki page label remove <label> --cql <query> --confirm # Bulk remove
Terminal window
atlcli wiki search <query> # Full-text search
atlcli wiki search <query> --space <key> # Search in space
atlcli wiki search --cql <query> # CQL search
atlcli wiki search --label <label> # Search by label
atlcli wiki search --creator <email> # Search by creator
atlcli wiki search --type page # Filter by type
atlcli wiki search --ancestor <id> # Search in page tree
atlcli wiki search --modified-since <duration>
atlcli wiki search --created-since <duration>
atlcli wiki search --title <text> # Search titles only
atlcli wiki search --limit <n> --start <n> # Pagination
atlcli wiki search --format compact # Compact output
atlcli wiki search --verbose # Detailed output
Terminal window
atlcli wiki my # Pages I created (default)
atlcli wiki my --contributed # Pages I contributed to
atlcli wiki my --space <key> # Filter by space
atlcli wiki my --label <name> # Filter by label
atlcli wiki my --limit <n> # Limit results (default 25)
Terminal window
atlcli wiki recent # Last 7 days (default)
atlcli wiki recent --days 30 # Last 30 days
atlcli wiki recent --space <key> # Filter by space
atlcli wiki recent --label <name> # Filter by label
atlcli wiki recent --limit <n> # Limit results (default 25)
Terminal window
atlcli wiki space list # List all spaces
atlcli wiki space list --limit <n>
atlcli wiki space get --key <key> # Get space details
atlcli wiki space create --key <key> --name <name>
atlcli wiki space create --key <key> --name <name> --description <text>
Terminal window
atlcli wiki docs template list # List saved templates
atlcli wiki docs template get <name> # Show template
atlcli wiki docs template save --page <id> --name <name>
atlcli wiki docs template apply <name> --space <key> --title <title>
atlcli wiki docs template delete <name>
atlcli wiki docs template export <name> -o <file>
atlcli wiki docs template import --file <path>
Terminal window
atlcli jira issue get --key <key> # Get issue details
atlcli jira issue get --key <key> --expand all
atlcli jira issue create --project <key> --type <type> --summary <text>
atlcli jira issue create --project <key> --type <type> --summary <text> \
--description <text> --assignee <email> --labels <labels>
atlcli jira issue create --project <key> --type <type> --summary <text> \
--field customfield_10028=5 --field customfield_10077='{"value":"Feature"}'
atlcli jira issue update --key <key> --summary <text>
atlcli jira issue update --key <key> --field customfield_10028=8
atlcli jira issue update --key <key> --priority <name>
atlcli jira issue update --key <key> --add-labels <labels>
atlcli jira issue update --key <key> --remove-labels <labels>
atlcli jira issue update --key <key> --assignee <account-id>
atlcli jira issue delete --key <key> --confirm
atlcli jira issue transition --key <key> --to <status>
atlcli jira issue transitions --key <key> # List available transitions
atlcli jira issue assign --key <key> --assignee <email>
atlcli jira issue assign --key <key> --assignee none # Unassign
atlcli jira issue link --from <key> --to <key> --type <type>
atlcli jira issue attach --key <key> <file> # Attach file
atlcli jira issue open <key> # Open issue in browser
# Cross-product linking (Jira ↔ Confluence)
atlcli jira issue link-page --key <key> --page <id> # Link to Confluence page
atlcli jira issue link-page --key <key> --page <id> --comment # With comment
atlcli jira issue pages --key <key> # List linked Confluence pages
atlcli jira issue unlink-page --key <key> --link <id> # Remove link
atlcli jira watch <key> # Watch issue
atlcli jira unwatch <key> # Stop watching
atlcli jira watchers <key> # List watchers
Terminal window
atlcli jira search --jql <query> # JQL search
atlcli jira search --assignee me # My issues
atlcli jira search --assignee <email>
atlcli jira search --status "In Progress"
atlcli jira search --project <key>
atlcli jira search --type Bug
atlcli jira search --type Bug,Task # Multiple types
atlcli jira search --label <label> # Filter by label
atlcli jira search --sprint <id> # Filter by sprint
atlcli jira search --limit <n>
Terminal window
atlcli jira me # Get current user info
Terminal window
atlcli jira my # My open/unresolved issues
atlcli jira my --all # All my issues (including resolved)
atlcli jira my --project <key> # Filter by project
atlcli jira my --status "In Progress" # Filter by status
atlcli jira my --type Bug # Filter by issue type
atlcli jira my --limit <n> # Limit results (default 25)
Terminal window
atlcli jira issue comment --key <key> "Comment text"
Terminal window
atlcli jira worklog list --issue <key>
atlcli jira worklog add <key> <duration>
atlcli jira worklog add <key> 2h --comment <text>
atlcli jira worklog add <key> 1h30m --started <datetime>
atlcli jira worklog add <key> 1h --round 15m
atlcli jira worklog update --issue <key> --id <id> --time <duration>
atlcli jira worklog delete --issue <key> --id <id> --confirm
# Timer mode
atlcli jira worklog timer start <key>
atlcli jira worklog timer start <key> --comment <text>
atlcli jira worklog timer stop # Stop and log time
atlcli jira worklog timer stop --round 15m
atlcli jira worklog timer status # Show running timer
atlcli jira worklog timer cancel # Cancel without logging
# Report
atlcli jira worklog report # Current user, last 30 days
atlcli jira worklog report --user <user> --since <date> --until <date>
atlcli jira worklog report --group-by issue
atlcli jira worklog report --group-by date
Terminal window
atlcli jira board list # List all boards
atlcli jira board list --project <key>
atlcli jira board list --type scrum # Filter by type
atlcli jira board list --name <pattern>
atlcli jira board get --id <id> # Get board details
atlcli jira board backlog --id <id> # Get backlog issues
atlcli jira board issues --id <id> # Get board issues
Terminal window
atlcli jira sprint list --board <id>
atlcli jira sprint get --id <id>
atlcli jira sprint create --board <id> --name <name>
atlcli jira sprint create --board <id> --name <name> \
--start <date> --end <date> --goal <text>
atlcli jira sprint start --id <id>
atlcli jira sprint close --id <id>
atlcli jira sprint delete --id <id> --confirm
atlcli jira sprint add <issues...> --sprint <id>
atlcli jira sprint remove <issues...> # Move to backlog
atlcli jira sprint report <id> # Sprint metrics report
Terminal window
atlcli jira epic list --project <key>
atlcli jira epic list --board <id>
atlcli jira epic list --project <key> --done # Include done epics
atlcli jira epic get <key>
atlcli jira epic create --project <key> --summary <text>
atlcli jira epic issues <key> # List child issues
atlcli jira epic add <issues...> --epic <key> # Add issues to epic
atlcli jira epic remove <issues...> # Remove issues from epic
atlcli jira epic progress <key> # Show completion progress
Terminal window
atlcli jira subtask list --parent <key>
atlcli jira subtask create --parent <key> --summary <text>
atlcli jira subtask create --parent <key> --summary <text> \
--assignee <email> --description <text>
Terminal window
atlcli jira component list --project <key>
atlcli jira component create --project <key> --name <name>
atlcli jira component create --project <key> --name <name> \
--lead <email> --description <text>
atlcli jira component update --id <id> --name <name>
atlcli jira component delete --id <id> --confirm
Terminal window
atlcli jira version list --project <key>
atlcli jira version create --project <key> --name <name>
atlcli jira version create --project <key> --name <name> \
--start-date <date> --release-date <date>
atlcli jira version release --id <id>
atlcli jira version delete --id <id> --confirm
Terminal window
# List with filtering
atlcli jira template list
atlcli jira template list --level global # Global templates only
atlcli jira template list --level profile # Profile templates only
atlcli jira template list --level project # Project templates only
atlcli jira template list --type Bug # Filter by issue type
atlcli jira template list --tag <tag> # Filter by tag
atlcli jira template list --search <text> # Search name/description
atlcli jira template list --all # Include overridden templates
atlcli jira template list --expand # Show full field details
atlcli jira template get <name>
# Save to different levels
atlcli jira template save <name> --issue <key> # Global (default)
atlcli jira template save <name> --issue <key> --level profile # Profile level
atlcli jira template save <name> --issue <key> --project <key> # Project level
atlcli jira template save <name> --issue <key> --tags bug,urgent # With tags
atlcli jira template save <name> --issue <key> --force # Overwrite
atlcli jira template apply <name> --project <key> --summary <text>
atlcli jira template delete <name> --confirm
atlcli jira template export <name> -o <file>
atlcli jira template import --file <path>
atlcli jira template import --file <path> --project <key> # To project level

Storage hierarchy (precedence: project > profile > global):

  • Global: ~/.atlcli/templates/jira/global/
  • Profile: ~/.atlcli/templates/jira/profiles/{name}/
  • Project: ~/.atlcli/templates/jira/projects/{key}/
Terminal window
atlcli jira bulk edit --jql <query> --set "field=value"
atlcli jira bulk edit --jql <query> --set "priority=High"
atlcli jira bulk edit --jql <query> --dry-run --limit <n>
atlcli jira bulk transition --jql <query> --to <status>
atlcli jira bulk transition --jql <query> --to <status> --dry-run
atlcli jira bulk label add <label> --jql <query>
atlcli jira bulk label remove <label> --jql <query>
atlcli jira bulk delete --jql <query> --confirm
Terminal window
atlcli jira filter list
atlcli jira filter get --id <id>
atlcli jira filter create --name <name> --jql <query>
atlcli jira filter update --id <id> --jql <query>
atlcli jira filter delete --id <id> --confirm
atlcli jira filter run --id <id> # Execute filter
atlcli jira filter share --id <id> --user <email>
atlcli jira filter share --id <id> --group <name>
Terminal window
atlcli jira analyze velocity --board <id>
atlcli jira analyze velocity --board <id> --sprints <n>
atlcli jira analyze burndown --sprint <id>
atlcli jira analyze burndown --sprint <id> --ideal
atlcli jira analyze predictability --board <id>
Terminal window
atlcli jira field list # List all fields
atlcli jira field list --custom # Custom fields only
atlcli jira field list --system # System fields only
atlcli jira field get --id <id>
atlcli jira field search <query> # Search fields by name
atlcli jira field options --id <id> # List field options
Terminal window
atlcli jira export --jql <query> -o <file>.csv
atlcli jira export --jql <query> -o <file>.json
atlcli jira export --jql <query> --fields key,summary,status
atlcli jira import --file <path>.csv --project <key>
atlcli jira import --file <path>.json --project <key>
atlcli jira import --file <path> --dry-run
Terminal window
# Start local webhook server (use with ngrok/cloudflare tunnel)
atlcli jira webhook serve --port 3000
atlcli jira webhook serve --port 3000 --projects PROJ,TEAM
atlcli jira webhook serve --port 3000 --events jira:issue_updated
atlcli jira webhook serve --secret <secret> # HMAC validation
# Manage registered webhooks
atlcli jira webhook list # List registered webhooks
atlcli jira webhook register --url <url> --events <events>
atlcli jira webhook register --url <url> --events jira:issue_created --jql <filter>
atlcli jira webhook delete <id> # Delete webhook
atlcli jira webhook refresh <id> # Refresh expiration (30 day limit)

Event types: jira:issue_created, jira:issue_updated, jira:issue_deleted, comment_created, comment_updated, comment_deleted, sprint_created, sprint_started, sprint_closed, worklog_created, worklog_updated, worklog_deleted

Terminal window
atlcli log list # List recent entries
atlcli log list --limit <n>
atlcli log list --since <duration>
atlcli log list --since <date> --until <date>
atlcli log list --level error
atlcli log list --level warn
atlcli log list --type api
atlcli log list --type cli.command
atlcli log list --type sync
atlcli log tail -f # Follow logs
atlcli log tail -f --level error
atlcli log tail --project # Project logs only
atlcli log show <id> # Show entry details
atlcli log clear --before <duration> --confirm
atlcli log clear --before <duration> --global --confirm
atlcli log clear --before <duration> --project --confirm
Terminal window
atlcli plugin list # List all plugins
atlcli plugin list --enabled
atlcli plugin enable <name>
atlcli plugin disable <name>
atlcli plugin install <path> # Install from local path
atlcli plugin remove <name>

Feature flags control experimental or optional functionality. Flags can be set at three levels with decreasing precedence: environment variables, project config, global config.

Terminal window
atlcli flag list # List all flags with sources
atlcli flag ls # Alias for list
atlcli flag get <name> # Get a flag value
atlcli flag get helloworld
atlcli flag set <name> <value> # Set flag (project-level)
atlcli flag set helloworld true
atlcli flag set export.backend libreoffice --global # Set globally
atlcli flag unset <name> # Remove flag (project-level)
atlcli flag rm <name> # Alias for unset
atlcli flag unset helloworld --global # Remove from global config

Flag value types: boolean (true/false), string, number

Precedence (highest to lowest):

Level Location Environment Variable
1. Environment FLAG_* FLAG_HELLOWORLD=true
2. Project .atlcli/config.json -
3. Global ~/.atlcli/config.json -

Environment variable format: FLAG_ prefix + uppercase name with dots replaced by underscores. Example: helloworldFLAG_HELLOWORLD, export.backendFLAG_EXPORT_BACKEND

Test command to verify the feature flag system works. Only available when flag.helloworld is true.

Terminal window
# Enable the command
atlcli flag set helloworld true
# Run it
atlcli helloworld
# Output: Hello dear user, thank you that you use me! Star me at https://github.com/BjoernSchotte/atlcli
# Disable (command will no longer be available)
atlcli flag set helloworld false

Purpose: Simple test to verify feature flags work correctly. When the flag is not set or false, the command behaves as if it doesn’t exist.

Terminal window
atlcli update # Check for and install updates
atlcli update --check # Check only, don't install
Terminal window
atlcli version # Show version
atlcli --version # Same as above
atlcli -v # Short form
Jira and Confluence are trademarks of Atlassian Corporation Plc. atlcli is not affiliated with, endorsed by, or sponsored by Atlassian.