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.28.tar.gz (405.7 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.28-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.28-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.28-py3-none-macosx_11_0_arm64.whl (5.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

confluence_cli_rs-0.1.28-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.28.tar.gz.

File metadata

  • Download URL: confluence_cli_rs-0.1.28.tar.gz
  • Upload date:
  • Size: 405.7 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.28.tar.gz
Algorithm Hash digest
SHA256 7f04cab8d5b5a4fd7060c24b02c73afaa08426b859e215e12b02d8919818d8b9
MD5 9097a6f8e7844e7bdab772b217a59868
BLAKE2b-256 4528de943e4637fe25fc48e625ada3b4abb5e4ad02314862c67ff0e757c8e6ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: confluence_cli_rs-0.1.28-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.28-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd51a28ca6e92de40443b03127ffea7f977ceb2d48e9deacd7c568a5297c1329
MD5 e8be3d105ba6ecdecebaba79188eca42
BLAKE2b-256 7ca7c637bbc2e929ebb938ecfe30fdf0b02de8ff7b014dd28250429cc9cc88c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: confluence_cli_rs-0.1.28-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.28-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eeb8a85702425e1aa2aaac5f9b14e233052c0e28b1e88902ab0a72c776e1539c
MD5 aeae0ec962713713633377c7c8263cb7
BLAKE2b-256 991d48eaebe179f00d2854b4ba32cb78b018e6335329e22a7517ec318624af8e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: confluence_cli_rs-0.1.28-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.28-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f850e272a1d528c912e212cc7b8dff4b74b3c8cd6d8277630b00fa4612eecb4a
MD5 554fd13dd509a3aa0977efec2c986702
BLAKE2b-256 953bcbc6b6e891f90929988fdf0e8b04895dbd83f9e890bc2d4b8e6986ca8a89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: confluence_cli_rs-0.1.28-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.28-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d633ebfe1e486e98550eeb1c869641171bfbb277829d78fb8ba0c80875103616
MD5 f3f78b3da69b8df749edc0b223bada19
BLAKE2b-256 99e5e805a3a7eeaab4585bcfd049a1e75ad53585e42dfcd87113980c3c7b20fb

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.30

5 files

0.1.29

5 files

This release

0.1.28 This release

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