Confluence
by @pejovicvuk
Read and write Confluence pages, search content, manage labels and comments. Use when user mentions Confluence, wiki, documentation, pages, or knowledge base.
clawhub install atlassian-confluenceπ About This Skill
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 spaces
Returns: [{ 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 50
Returns: [{ id, title, status, parentId, authorId, created, url }]
Default limit: 25.
Get page content
{baseDir}/confluence-cli.sh get 12345
Returns: { 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 12345
Returns: [{ 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" 20
Common CQL patterns:
space=ENG AND type=pagetitle~"deployment guide"label=runbooklastModified > now("-7d")creator=currentUser() AND type=pageReturns: { total, results: [{ id, title, type, space, url }] }
Create page
{baseDir}/confluence-cli.sh create --space 98312 --title "Deployment Runbook" --parent 12345 --body "Steps
1. Pull latest main...
"
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 "New content
"
Auto-increments the version number.
Returns: { id, title, version, url }
Get page comments
{baseDir}/confluence-cli.sh comments 12345
Returns: { 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 12345
Returns: [{ id, title, mediaType, fileSize, downloadUrl }]
Get page labels
{baseDir}/confluence-cli.sh labels 12345
Returns: [{ name, prefix }]
Add labels
{baseDir}/confluence-cli.sh add-labels 12345 "runbook,production,v2"
Labels are comma-separated.
Exploration Rules
When working with Confluence:
1. Search first β use search with CQL to find pages. Do not list all pages in a space and scan through them.
2. Use get-by-title when you know the page name β it's one call instead of search + get.
3. Check truncated β if a page is truncated, tell the user the content was too long to load fully.
4. Use children to navigate page hierarchies instead of listing the whole space.
5. Before creating, always search to check if a similar page already exists.
Body Format
Confluence uses HTML "storage format":
text
β paragraphtext
β headingHeader Cell
β tabletext β boldtext β linkPROJ-123 β Jira link macro