Skip to main content
Prompt Leaf: a document containing a command prompt, the confluence-cli logo

confluence-cli

Confluence, readable and scriptable.

Read, search, browse, automate, and edit Confluence Cloud or Data Center—without leaving the terminal.

CI status Code coverage crates.io version PyPI version MIT license

Install · Quick start · Read and explore · Proof Desk · Commands

confluence-cli makes Confluence directly useful from the shell. Read and browse without creating a local sync directory. Pipe stable JSON into scripts and agents. When content needs to change, work in Markdown and publish through an explicit plan-and-apply boundary.

Job Workflow Result
Read and browse space, search, page, blog, tui Scannable terminal output and a keyboard-first reader
Query and automate JSON output, --fields, schema Stable, token-efficient data for scripts and agents
Edit and publish pull → edit → plan → apply Reviewable Markdown changes with remote-drift protection

Install

Choose the package manager that fits your environment. Every distribution installs the confluence executable.

With uv from PyPI:

uv tool install confluence-cli-rs

With Homebrew:

brew install rvben/tap/confluence-cli

With Cargo:

cargo install confluence-cli

The PyPI distribution is named confluence-cli-rs; the crate is named confluence-cli. Prebuilt macOS and Linux archives for Intel and ARM are available from GitHub Releases.

Quick start

Connect a profile and check access:

confluence init
confluence doctor --space SPACEKEY

Then read, search, or browse immediately—no pull required:

confluence search 'release notes' --space DOCS
confluence page tree 'DOCS:Handbook'
confluence tui --space DOCS

The same commands become structured input when piped:

confluence search 'release notes' --space DOCS \
  | jq '.items[] | {title, web_url}'

Proof Desk showing a Confluence page tree beside a readable page galley

Proof Desk in its medium-width Browse layout, rendered from the deterministic test fixture. Open full resolution.

When you want to edit, pull a page tree to Markdown and inspect the local plan:

confluence pull tree 'SPACEKEY:Parent Page' ./docs/parent-page
$EDITOR ./docs/parent-page/parent-page--123/index.md
confluence plan ./docs/parent-page --diff

When the plan is correct, apply it:

confluence apply ./docs/parent-page

plan reads only the Markdown and sidecar state on disk. apply validates the complete local tree and checks every remote version before writing. If Confluence changed after the pull, the apply is refused unless you explicitly choose --force.

Read and explore

The direct commands cover everyday Confluence retrieval without requiring a sync directory:

confluence space list
confluence search 'on-call rotation' --space OPS
confluence page get 'OPS:Incident handbook' --show-body
confluence page tree 'OPS:Runbooks'
confluence blog list ENG

References accept a numeric content ID, a Confluence URL, or SPACE:Title. Search accepts plain text by default and full Confluence Query Language with --cql.

On a terminal, search results, lists, and page metadata are formatted for scanning. page get --show-body includes the canonical storage-format body for agents and transformations; Proof Desk turns that content into a readable page for humans.

When stdout is piped, data commands emit one JSON document:

confluence search 'release notes' --space DOCS \
  | jq '.items[] | {title, web_url}'

For an interactive reading experience, confluence tui opens Proof Desk on the first visible space. The --space option starts in a specific space, and o opens the selected page in Confluence.

Proof Desk TUI

Proof Desk is a keyboard-first, read-only workspace for reading and browsing Confluence. Add a local path when you also want to review a sync plan:

confluence tui
confluence tui --space DOCS
confluence tui --space DOCS --path ./docs/handbook

Browse mode combines the page hierarchy, a readable Markdown proof, and an outer margin for metadata, labels, attachments, comments, and content properties. Review mode presents the local plan and unified body diffs in the same layout.

The TUI never applies changes and does not contact Confluence to detect drift. confluence apply remains the separate, remote-aware write boundary. Passing --delete-remote only includes attachment deletions in the local review plan.

Key Action
Arrow keys or j / k Move through content
Enter Unfold the selected proof
Tab Switch between Browse and Review
14 Change the margin evidence
s Choose a space
p Choose a local sync directory
o Open the selected page in Confluence
? Show the complete keyboard map

Wide terminals show all three regions. Compact terminals reveal complete proofs and margins on demand. Proof Desk requires interactive stdin and stdout and honors --no-color.

Edit and publish with Markdown

Pull

Export one page, a page tree, or an entire space:

confluence pull page 'DOCS:Getting Started' ./docs/getting-started
confluence pull tree 'DOCS:Handbook' ./docs/handbook
confluence pull space DOCS ./docs

Pulls are staged beside the destination and installed as one snapshot. A pull refuses to replace local Markdown changes or unmanaged files. Use --force only when the remote snapshot should replace the entire destination.

Filtered pull space --since ... exports require a new or empty destination because a partial result cannot safely replace a complete snapshot. Attachment names are confined to their page's attachments/ directory.

Edit

Each page has a predictable local layout:

<slug>--<content-id>/
├── index.md
├── .confluence.json
└── attachments/

The Markdown frontmatter contains editable metadata such as title, type, labels, status, and properties. Move a page directory beneath its desired local parent to reparent it; the parent frontmatter field is informational.

The sidecar records remote IDs, versions, hashes, and attachment mappings. It is the baseline that makes offline planning and drift detection possible.

Plan

confluence plan ./docs/handbook --diff

plan validates the complete tree and compares it with the state captured by pull. It never contacts Confluence and never writes remotely.

For an interactive review, open the same directory in the Proof Desk:

confluence tui --space DOCS --path ./docs/handbook

Apply

confluence apply ./docs/handbook

Before its first mutation, apply validates every local document and preflights every remote version. Versioned updates continue to reject drift that occurs during the apply. If an API failure leaves a partial remote mutation, the CLI reports the completed actions in structured error details so automation can reconcile safely.

Remote attachment deletions are opt-in with --delete-remote. Conditional overwrites require an explicit --force or --replace where supported.

Authentication

confluence init starts the guided login flow. It opens the appropriate token page, discovers scoped-token details, verifies access, and stores credentials in the operating-system keychain. Cloud and Data Center profiles share the same workflow.

Scripts and headless machines can use explicit profiles or environment-only credentials. See the authentication guide for Cloud, Data Center, CI, keychain, and environment examples.

Command surface

Reading, browsing, direct updates, and Markdown publishing are all first-class:

Area Commands
Accounts auth login|status|logout|migrate, profile add|list|use|remove
Discovery space list|get, search, page list|get|tree, blog list|get
Content page move|create|update|delete, blog create|update|delete
Page data attachment, label, comment, and property command groups
Markdown pull page|tree|space, plan, tui, apply
Tooling doctor, completions, schema

On a terminal, --output auto produces readable text. When piped, data commands produce one JSON document. Agents can request one token-efficient, versioned command contract without loading the complete CLI surface:

confluence schema --command 'page get'

See the CLI reference for output modes, exit codes, shell completions, Markdown fidelity, and the complete command map.

Status and compatibility

The project is an early release, live-verified against Confluence Cloud and Data Center.

Area Cloud Data Center Evidence
Reading, search, and content CRUD Verified Verified Live end-to-end lifecycle
Attachments, labels, properties, comments Verified Verified Live end-to-end lifecycle
pull → plan → apply Verified Verified Drift refusal and no-op checks
Proof Desk Shared APIs Shared APIs Deterministic responsive render tests

The deterministic simulator runs on every pull request. Protected live checks exercise real provider lifecycles. The testing guide explains the confidence model and automation.

Known limits

  • Unknown provider-specific macros can behave differently between Cloud and Data Center; unsupported storage is preserved instead of silently flattened.
  • apply refuses remote-version drift unless --force is explicit.

Documentation

Development and releases

make test           # deterministic unit, contract, and simulator tests
make release-check  # formatting, clippy, tests, smoke checks, and packaging

Live-provider tests and the local Data Center stack are documented in the testing guide.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

confluence_cli_rs-0.1.29.tar.gz (406.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

confluence_cli_rs-0.1.29-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

confluence_cli_rs-0.1.29-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

confluence_cli_rs-0.1.29-py3-none-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

confluence_cli_rs-0.1.29-py3-none-macosx_10_12_x86_64.whl (5.5 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file confluence_cli_rs-0.1.29.tar.gz.

File metadata

  • Download URL: confluence_cli_rs-0.1.29.tar.gz
  • Upload date:
  • Size: 406.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for confluence_cli_rs-0.1.29.tar.gz
Algorithm Hash digest
SHA256 0bc2557305d9753efc75c877d6d9cd69c99f079940181beb9a38ec0eec536047
MD5 8a100a42c7c0076a78720ca235e69530
BLAKE2b-256 217677892e83d21b60aa3e2b5b4dc9e1ba6599bc9bdfb2c4b64cfab364ac579e

See more details on using hashes here.

File details

Details for the file confluence_cli_rs-0.1.29-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: confluence_cli_rs-0.1.29-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: Python 3, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for confluence_cli_rs-0.1.29-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c21a1a6c5e19bb44ed059bde14fe989c0e2ea8ad81d81c8d8582c1ca26519a5f
MD5 17a5a45b30a493defa0ead5c8e1a71a3
BLAKE2b-256 456dc0c1d85154d452666455d724a974831343b33ef1f77e735fbf2cdac93fbb

See more details on using hashes here.

File details

Details for the file confluence_cli_rs-0.1.29-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: confluence_cli_rs-0.1.29-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 6.5 MB
  • Tags: Python 3, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for confluence_cli_rs-0.1.29-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3632ef3d40c9b0a460c41618d53b88f505d0fc9a6921a18aaeb2b5cc10fa3d63
MD5 7332dd0f8c4863b6781294d067b68b1d
BLAKE2b-256 414faf0c0b87b36a0452457abf7a5eb6a21c94b2d7a2a86384a7e087016b40f4

See more details on using hashes here.

File details

Details for the file confluence_cli_rs-0.1.29-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: confluence_cli_rs-0.1.29-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for confluence_cli_rs-0.1.29-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41894d08dc2a80b6ee27131af22640d756c76c2980230eaacbbb8aa7243f3dba
MD5 8ecaa6da6ca7cc5ee82033c0f27d77b7
BLAKE2b-256 b05b3ecd300842b7f455549832375c53b6a9d9eefb0d0655d20eab45ed30ce0c

See more details on using hashes here.

File details

Details for the file confluence_cli_rs-0.1.29-py3-none-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: confluence_cli_rs-0.1.29-py3-none-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 5.5 MB
  • Tags: Python 3, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for confluence_cli_rs-0.1.29-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6bcfb388d3fe3bea8fa950eb626f74b624576bed4bc23dd6c9e9186966daffd7
MD5 a24a76757181a5ed3d689de10bed5881
BLAKE2b-256 742ffe440165829acbd4c3876ae7ff0432ab39935a7dcb12b718d71a0d871321

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.30

5 files

This release

0.1.29 This release

5 files

0.1.28

5 files

0.1.27

5 files

0.1.26

5 files

0.1.25

5 files

0.1.24

5 files

0.1.23

5 files

0.1.22

5 files

0.1.21

5 files

0.1.20

4 files

0.1.19

4 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page