Utilities
This page documents the top-level commands currently exposed by acp2md tree, plus the utility commands used for diagnostics and discovery.
These commands matter because they shape the safe operator workflow around the product. In production and support use, they should be part of the runbook, not an afterthought.
Top-level commands
config— manage application configuration. See Config Commands.completion— generate shell completion scripts for supported shells. Documented below.doctor— verify configuration, credentials, and connectivity. Documented below.license— manage your license. See License.page— work with individual Confluence pages. See Convert Pages, Get Pages, Count & Analyze, and Page Properties.space— discover Confluence spaces and list pages before selecting a page-level target. The discovery workflows are the same ones documented in List Spaces and List Pages.support— generate a diagnostic bundle for sharing with support. Documented below.tree— display the full command tree with descriptions. Documented below.
doctor
acp2md doctor [flags]Runs a series of diagnostic checks to verify that acp2md is correctly configured and ready to use. This is the fastest way to diagnose setup issues.
The following checks are performed:
| Check | Description |
|---|---|
| Config file | Verifies the configuration file exists and is readable |
| Confluence credentials | Confirms that domain, username, and API token are set |
| API connectivity | Tests the connection to the Confluence REST API |
| License file | Checks that a valid license is present |
| License validation | Confirms that the current license is active and usable |
| Machine ID | Verifies the machine identifier used for license binding |
| Version info | Displays the current acp2md version, build date, and commit |
Example
acp2md doctorSample output from a live macOS run, with tenant and machine identifiers redacted:
🩺 Running diagnostics for acp2md v1.0.0...
✅ Configuration file /Users/<user>/Library/Application Support/acp2md/config.yaml
✅ Confluence credentials <tenant>.atlassian.net (user: <redacted>)
✅ Confluence API connected (212ms)
✅ License file loaded (<redacted>)
✅ License validation active (<redacted>)
✅ Machine ID <redacted>
✅ Version acp2md v1.0.0 (darwin/arm64, built 2026-03-29T08:23:49Z)
📊 Result: all 7 checks passed
🎉 acp2md is ready to use!Run acp2md doctor as a first step when troubleshooting any issue. The output
will indicate which component needs attention.
Recommended moments to run doctor:
- immediately after license activation
- after changing credentials or proxy configuration
- before the first export on a new machine
- before a customer-facing or time-sensitive run
As of v1.0.0, doctor has no command-specific flags. Use the global --no-progress flag when you need a clean terminal recording or CI-friendly output.
When you need the full build metadata outside diagnostics, run acp2md --version-extended.
completion
acp2md completion [bash|zsh|fish|powershell]Generates shell completion scripts so operators can discover commands and flags faster from the terminal.
powershell here refers to shell completion generation only. It does not imply that a Windows build is currently available.
Examples
acp2md completion zsh
acp2md completion bash
acp2md completion fishUse completion when you want a smoother local operator experience, especially for longer subcommand paths and repeated support or operations work.
support
acp2md 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. Credentials in configuration and environment variables are automatically masked. 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 | from config | Path to log file to include in the bundle |
--log-lines | 50 | Number of recent log lines to include |
Bundle contents
- System info: app version, Go version, OS/arch, git commit, build date
- Configuration: config file path, Confluence domain and type, HTTP and log settings, with API token masked
- Diagnostics: the same checks as
doctor - Environment: only
ACP2MD_*variables, with secret values redacted - Recent log: the last N lines from the selected log file
Examples
# Print the support bundle to stdout
acp2md support
# Save the bundle to a file
acp2md support --output bundle.txt
# Include more log context
acp2md 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
acp2md page convert by-id 123456 --debug --log-file app.log
# 2. Generate the support bundle
acp2md support --log-file app.log --output bundle.txtUse support when you need one shareable artifact for support that already includes the most relevant environment, configuration, and diagnostic context.
tree
acp2md tree [flags]Displays the full command tree with descriptions. This is a quick way to discover all available commands and subcommands without reading the full documentation.
Flags
| Flag | Short | Default | Description |
|---|---|---|---|
--short | -s | false | Hide flags and show only commands with descriptions |
Example
acp2md tree
acp2md tree --shorttree --short output
The short form shows commands and descriptions without flags — useful for operator runbooks and onboarding:
acp2md → Convert Atlassian Confluence pages to Markdown
├── config → Manage application configuration
│ ├── create → Create the default configuration file
│ ├── get → Get a configuration value by key
│ ├── list → List all configuration values
│ ├── set → Set a configuration value
│ └── where → Show the location of the configuration file
├── doctor → Verify configuration, credentials, and connectivity
├── license → Manage your license
│ ├── activate → Activate a license for the application
│ ├── deactivate → Deactivate the license for this instance
│ ├── export → Export the license file to a backup location
│ ├── import → Import a license file from a backup
│ ├── list → Display license information
│ ├── terms → Display the software license agreement
│ ├── validate → Validate the application license
│ └── where → Show the location of the license file
├── page → Work with individual Confluence pages
│ ├── convert → Convert pages to Markdown
│ │ ├── by-id → Convert a page to Markdown by its ID
│ │ ├── by-title → Convert a page to Markdown by its title
│ │ └── by-url → Convert a page to Markdown by its Confluence URL
│ ├── count → Analyze page structure and complexity
│ │ ├── marks → Count ADF formatting marks
│ │ │ ├── by-id → Count formatting marks by page ID
│ │ │ ├── by-title → Count formatting marks by page title
│ │ │ └── by-url → Count formatting marks by Confluence URL
│ │ └── nodes → Count ADF content nodes
│ │ ├── by-id → Count content nodes by page ID
│ │ ├── by-title → Count content nodes by page title
│ │ └── by-url → Count content nodes by Confluence URL
│ ├── get → Retrieve pages in native Confluence formats
│ │ ├── by-id → Retrieve a page in native format by its ID
│ │ ├── by-title → Retrieve a page in native format by its title
│ │ └── by-url → Retrieve a page in native format by its URL
│ └── properties → List custom properties of a page
│ ├── by-id → List page properties by page ID
│ ├── by-title → List page properties by page title
│ └── by-url → List page properties by Confluence URL
├── space → Work with Confluence spaces
│ ├── list → List all accessible Confluence spaces
│ └── pages → List pages in a space
│ ├── by-id → List pages by space ID
│ └── by-key → List pages by space key
├── support → Generate a diagnostic bundle for support
└── tree → Display the full command tree with descriptionstree 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 want a compact release inventory for operators, onboarding notes, or internal runbooks. Use tree (full) when you need a complete reference of every flag available.