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

With Nix (flakes):

nix run github:rvben/confluence-cli -- --help
nix profile install github:rvben/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

For local-only diagnostics, use confluence auth status --offline or confluence doctor --offline. The former doctor --skip-network spelling remains available as a compatibility alias.

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
1–4 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 links to the appropriate token page, discovers scoped-token details, verifies access, and stores credentials in the operating-system keychain. New profiles start read-only unless you explicitly enable commands that change Confluence. 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, environment, and private certificate authority 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 config show|path, 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

Metadata

Release files for confluence-cli-rs 0.1.32

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for confluence-cli-rs 0.1.32
File Size Uploaded Provenance Actions
confluence_cli_rs-0.1.32.tar.gz 411.8 kB Without provenance Details for confluence_cli_rs-0.1.32.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for confluence-cli-rs 0.1.32
File Actions
confluence_cli_rs-0.1.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for confluence_cli_rs-0.1.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
confluence_cli_rs-0.1.32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for confluence_cli_rs-0.1.32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
confluence_cli_rs-0.1.32-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for confluence_cli_rs-0.1.32-py3-none-macosx_11_0_arm64.whl
confluence_cli_rs-0.1.32-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for confluence_cli_rs-0.1.32-py3-none-macosx_10_12_x86_64.whl

Total release size: 24.9 MB

Release files / confluence_cli_rs-0.1.32.tar.gz

Download URL confluence_cli_rs-0.1.32.tar.gz
Size 411.8 kB
Tags Source
SHA-256 checksum
How to use checksums
51fe67484469fdd2028854ba92158998d9deda7750ae44a5ab5a32f84e44b690
BLAKE2b-256 checksum
How to use checksums
eea96564581dfeefc8cb246d0f2f2303062ffc04f6691b140c651f010fe7ea75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}

Release files / confluence_cli_rs-0.1.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL confluence_cli_rs-0.1.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 7.0 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
942f70f9ee29365909a5aeb214092a94b926c6f861c7578acd42b76c6528a07b
BLAKE2b-256 checksum
How to use checksums
0be1fe3bb2adb744631f47091035e9129ad7b1b376a8265c6decbf8a6617a446
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}

Release files / confluence_cli_rs-0.1.32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL confluence_cli_rs-0.1.32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 6.6 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
6947e5320de89be2d36b6c9793422dc7b345038dfaae6c4df3730cce94c3c9f7
BLAKE2b-256 checksum
How to use checksums
557c21d60d3095c5bb8df4acc750a102453da74946ecf537da0d4506b29a8ee1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}

Release files / confluence_cli_rs-0.1.32-py3-none-macosx_11_0_arm64.whl

Download URL confluence_cli_rs-0.1.32-py3-none-macosx_11_0_arm64.whl
Size 5.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4e74b72b9955bae7407110d31a3b485e030eceb3ddace4424b6dddd0b7eb6775
BLAKE2b-256 checksum
How to use checksums
f06c43db8f28e12e8eb7d7dd65d1eb50174774556c0347e21d3e832796fdcf3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}

Release files / confluence_cli_rs-0.1.32-py3-none-macosx_10_12_x86_64.whl

Download URL confluence_cli_rs-0.1.32-py3-none-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1c7dbae5ead4bbf3e22f577952b5e886d7d242e7ad4f40b987c4fd4237b54eb4
BLAKE2b-256 checksum
How to use checksums
682b9f95739dcad715df3e51678af300b8401483e620a269edc9fa61e8e94b0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}

Security for confluence-cli-rs 0.1.32

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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