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.33

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.33
File Size Uploaded Provenance Actions
confluence_cli_rs-0.1.33.tar.gz 411.7 kB Without provenance Details for confluence_cli_rs-0.1.33.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for confluence-cli-rs 0.1.33
File Actions
confluence_cli_rs-0.1.33-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.33-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
confluence_cli_rs-0.1.33-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for confluence_cli_rs-0.1.33-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
confluence_cli_rs-0.1.33-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for confluence_cli_rs-0.1.33-py3-none-macosx_11_0_arm64.whl
confluence_cli_rs-0.1.33-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for confluence_cli_rs-0.1.33-py3-none-macosx_10_12_x86_64.whl

Total release size: 24.9 MB

Release files / confluence_cli_rs-0.1.33.tar.gz

Download URL confluence_cli_rs-0.1.33.tar.gz
Size 411.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3e7eeb713ac04c57033463c2ece77e13a0bcd88647726ba2221f00d82c125834
BLAKE2b-256 checksum
How to use checksums
b205f63188d90cc6068dd030df17f35f4bc9ccf11a758b6300593a561782fe45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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.33-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL confluence_cli_rs-0.1.33-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
6719e213153b33aadab796bdb8b56727c0b59cf4877dde6535d8156f2cf0b1ab
BLAKE2b-256 checksum
How to use checksums
c9c20b8b76e563611019cddcf042741e0848c7f76a5e0aee1c517e3dd43aa7c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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.33-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL confluence_cli_rs-0.1.33-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
7192413dfcdfe6a7b48edbc24720ff3be1a5d87d9778b90ade01ae2266b7e1f2
BLAKE2b-256 checksum
How to use checksums
fe1d67dea937bdac5542f26550c9cfbc5d28e639a6567084b3e92830c720e320
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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.33-py3-none-macosx_11_0_arm64.whl

Download URL confluence_cli_rs-0.1.33-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
70f19a41f7811e5cf1d5e00186d76b6ffc1f28da62fff2ba16f673efa178fb7f
BLAKE2b-256 checksum
How to use checksums
7ee167cf818e8e5903c12683cda830cce3c54c931f8b14f6ac2b779f9efe7d79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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.33-py3-none-macosx_10_12_x86_64.whl

Download URL confluence_cli_rs-0.1.33-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
53f731b06f7b5fd3ffd4f625dcd6cd54914481ee0204d0c4f3ef56ce3ba2ada7
BLAKE2b-256 checksum
How to use checksums
8278b3be89fa05c8e3fb1487e899bd45066abe08d9271ace439d7964df072b02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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.33

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