- name
- confluence
- description
- Read and write Confluence pages, search content, manage labels and comments. Use when user mentions Confluence, wiki, documentation, pages, or knowledge base.
- metadata
- openclaw
- emoji
- 📄
- requires
- env
- ["ATLASSIAN_URL", "ATLASSIAN_EMAIL", "ATLASSIAN_API_TOKEN"]
Confluence Cloud
Read and write Confluence Cloud pages via confluence-cli.sh. Uses the same Atlassian credentials as Jira.
Script location: {baseDir}/confluence-cli.sh
Commands
List spaces
{baseDir}/confluence-cli.sh spacesReturns: [{ id, key, name, type, status }]
Note: most commands use the space id (numeric), not the key.
List pages in a space
{baseDir}/confluence-cli.sh pages 98312
{baseDir}/confluence-cli.sh pages 98312 50Returns: [{ id, title, status, parentId, authorId, created, url }]
Default limit: 25.
Get page content
{baseDir}/confluence-cli.sh get 12345Returns: { id, title, status, spaceId, parentId, version, body_text, body_html, truncated, created, url }
body_text is HTML-stripped plain text (first 3000 chars). body_html is raw storage format (first 5000 chars). If truncated is true, the page has more content than shown.
Find page by title
{baseDir}/confluence-cli.sh get-by-title 98312 "Deployment Runbook"Returns page content directly. Use this when you know the exact page title — avoids a separate search + get.
List child pages
{baseDir}/confluence-cli.sh children 12345Returns: [{ id, title, status, url }]
Search with CQL
{baseDir}/confluence-cli.sh search "space=ENG AND type=page AND title~\"architecture\""
{baseDir}/confluence-cli.sh search "label=runbook" 20Common CQL patterns:
- Pages in a space:
space=ENG AND type=page - By title:
title~"deployment guide" - By label:
label=runbook - Recently modified:
lastModified > now("-7d") - By creator:
creator=currentUser() AND type=page
Returns: { total, results: [{ id, title, type, space, url }] }
Create page
{baseDir}/confluence-cli.sh create --space 98312 --title "Deployment Runbook" --parent 12345 --body "<h2>Steps</h2><p>1. Pull latest main...</p>"Required: --space, --title. Optional: --parent (page ID to nest under), --body (HTML storage format).
Returns: { id, title, url }
Update page
{baseDir}/confluence-cli.sh update 12345 --title "Updated Title" --body "<p>New content</p>"Auto-increments the version number.
Returns: { id, title, version, url }
Get page comments
{baseDir}/confluence-cli.sh comments 12345Returns: { count, comments: [{ id, body, created, version }] }
Add comment to page
{baseDir}/confluence-cli.sh add-comment 12345 "This section needs updating after the API migration"Returns: { id, pageId, created }
List attachments
{baseDir}/confluence-cli.sh attachments 12345Returns: [{ id, title, mediaType, fileSize, downloadUrl }]
Get page labels
{baseDir}/confluence-cli.sh labels 12345Returns: [{ name, prefix }]
Add labels
{baseDir}/confluence-cli.sh add-labels 12345 "runbook,production,v2"Labels are comma-separated.
Exploration Rules
When working with Confluence:
- Search first — use
searchwith CQL to find pages. Do not list all pages in a space and scan through them. - Use
get-by-titlewhen you know the page name — it's one call instead of search + get. - Check
truncated— if a page is truncated, tell the user the content was too long to load fully. - Use
childrento navigate page hierarchies instead of listing the whole space. - Before creating, always search to check if a similar page already exists.
Body Format
Confluence uses HTML "storage format":
<p>text</p>— paragraph<h2>text</h2>— heading<table><tbody><tr><th>Header</th></tr><tr><td>Cell</td></tr></tbody></table>— table<strong>text</strong>— bold<a href="url">text</a>— link<ac:structured-macro ac:name="jira"><ac:parameter ac:name="key">PROJ-123</ac:parameter></ac:structured-macro>— Jira link macro
Rules
- All output is JSON to stdout, errors to both stderr and stdout.
- Never delete pages without explicit user confirmation.
- Always search before creating to avoid duplicates.
- Results are paginated: pages (max 25), spaces (max 25), comments (max 25). Tell the user if results may be incomplete.