Search and manage Confluence pages and spaces using CQL, read/create/update pages with Markdown support. Use when working with Confluence documentation.
66
80%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./skills/confluence/SKILL.mdInteract with Confluence for content search, viewing pages, and space management.
Creating/Updating Content? See references/creating-content.md for page creation and updates with Markdown.
Dependencies: pip install --user requests keyring pyyaml
After installation, verify the skill configuration by running:
$SKILL_DIR/scripts/confluence.py checkThis will check:
If anything is missing, the check command will provide setup instructions.
Configure Confluence authentication using one of these methods:
export CONFLUENCE_URL="https://yourcompany.atlassian.net/wiki"
export CONFLUENCE_EMAIL="you@example.com"
export CONFLUENCE_API_TOKEN="your-token"Add these to your ~/.bashrc or ~/.zshrc for persistence.
Create ~/.config/agent-skills/confluence.yaml:
url: https://yourcompany.atlassian.net/wiki
email: you@example.com
token: your-tokenhttps://yourcompany.atlassian.net/wiki)Optionally configure defaults in ~/.config/agent-skills/confluence.yaml:
url: https://yourcompany.atlassian.net/wiki
email: you@example.com
token: your-token
defaults:
cql_scope: "space = DEMO"
max_results: 25
default_space: "DEMO"View configuration: $SKILL_DIR/scripts/confluence.py config show
See permissions.md for read/write classification of each command.
Verify configuration and connectivity.
$SKILL_DIR/scripts/confluence.py checkThis validates:
Search for content using CQL (Confluence Query Language).
# Basic search
$SKILL_DIR/scripts/confluence.py search "type=page AND space = DEMO"
$SKILL_DIR/scripts/confluence.py search "title~login" --space DEMO
# Filter by type
$SKILL_DIR/scripts/confluence.py search "space = DEMO" --type page
# Limit results
$SKILL_DIR/scripts/confluence.py search "type=page" --max-results 10Arguments:
cql: CQL query string (required)--max-results: Maximum number of results (default: 50)--type: Content type filter (page, blogpost, comment)--space: Limit to specific spaceSee also: CQL Reference for query syntax
Get page content by ID or title.
# Get by title (returns Markdown by default)
$SKILL_DIR/scripts/confluence.py page get "My Page Title"
# Get by ID
$SKILL_DIR/scripts/confluence.py page get 123456
# Get without body content
$SKILL_DIR/scripts/confluence.py page get "My Page" --no-body
# Get in original format (not Markdown)
$SKILL_DIR/scripts/confluence.py page get "My Page" --raw
# Save to file with images downloaded to sibling directory
$SKILL_DIR/scripts/confluence.py page get "My Page" -o my-page.md
# Export with YAML frontmatter (for round-tripping)
$SKILL_DIR/scripts/confluence.py page get 123456 --frontmatter -o page.mdOutput: Page metadata and content as Markdown. Images are downloaded to a sibling directory when using --output/-o.
Arguments:
page_identifier: Page ID or title (required)--markdown: Output body as Markdown (default)--raw: Output in original format--no-body: Don't include body content--frontmatter: Output as markdown with YAML frontmatter (title, space, labels, parent) for round-tripping with page create/page update--output/-o: Write output to file; images are downloaded to a sibling directory named after the file stemShow version history for a page.
# By title
$SKILL_DIR/scripts/confluence.py page history "My Page Title"
# By ID, limit results
$SKILL_DIR/scripts/confluence.py page history 123456 --max-results 10Arguments:
page_identifier: Page ID or title (required)--max-results: Maximum versions to return (default: 25)For creating and updating pages with Markdown support, see references/creating-content.md.
Quick examples:
# Create page from Markdown file
$SKILL_DIR/scripts/confluence.py page create --space DEMO --title "Documentation" \
--body-file README.md
# Create page with table of contents
$SKILL_DIR/scripts/confluence.py page create --space DEMO --title "Guide" \
--body-file guide.md --toc
# Update page from file
$SKILL_DIR/scripts/confluence.py page update 123456 --body-file updated.mdImages: When using --body-file, local image references in markdown () are automatically uploaded as page attachments and embedded inline. Paths are resolved relative to the markdown file's directory.
Frontmatter support: Markdown files can include YAML frontmatter with page metadata. CLI flags take precedence over frontmatter values. Supported fields: title, space, labels, parent, toc.
---
title: API Documentation
space: DEMO
labels: docs, api
parent: 123456
toc: true
---
# Introduction
...Table of contents: Use --toc (or toc: true in frontmatter) to prepend a TOC macro.
Internal link conversion: Links pointing to pages on the same Confluence instance are automatically converted to native Confluence links during markdown conversion. The linked page is validated before conversion — invalid links are left as-is.
Move a page under a new parent, or to the space root.
# Move under a new parent
$SKILL_DIR/scripts/confluence.py page move 123456 --parent 789012
# Move to space root (no parent)
$SKILL_DIR/scripts/confluence.py page move 123456Delete a page by ID (moves to trash on Cloud).
$SKILL_DIR/scripts/confluence.py page delete 123456Manage spaces.
# List all spaces
$SKILL_DIR/scripts/confluence.py space list
# List with limit
$SKILL_DIR/scripts/confluence.py space list --max-results 10
# Filter by type
$SKILL_DIR/scripts/confluence.py space list --type global
# Get space details
$SKILL_DIR/scripts/confluence.py space get DEMOArguments:
list: List spaces
--type: Filter by type (global, personal)--max-results: Maximum resultsget <space-key>: Get space detailsFor creating spaces, see references/creating-content.md.
View, add, and remove space permissions.
# List all permissions for a space
$SKILL_DIR/scripts/confluence.py space permissions list DEMO
# Filter by subject type
$SKILL_DIR/scripts/confluence.py space permissions list DEMO --subject-type group
# Add a permission
$SKILL_DIR/scripts/confluence.py space permissions add DEMO \
--subject-type user --subject "5a1234abc" --operation read --target space
# Remove a permission by ID
$SKILL_DIR/scripts/confluence.py space permissions remove DEMO --id 2154Arguments:
list <space-key>: List permissions
--subject-type: Filter by user or groupadd <space-key>: Add a permission
--subject-type: user or group (required)--subject: User account ID or group name/ID (required)--operation: read, create, delete, export, administer, archive, restrict_content (required)--target: space, page, blogpost, comment, attachment (required)remove <space-key>: Remove a permission
--id: Permission ID (required)Show configuration and defaults.
# Show all configuration
$SKILL_DIR/scripts/confluence.py config show
# Show space-specific defaults
$SKILL_DIR/scripts/confluence.py config show --space DEMOThis displays:
See the Confluence CQL documentation for full CQL syntax.
Common patterns: type=page, space=KEY, title~text, text~keyword, created >= now("-7d"), label=name.
Combine with AND, OR, and ORDER BY:
$SKILL_DIR/scripts/confluence.py search "type=page AND space=DEMO ORDER BY created DESC"Common Confluence tasks:
Search and read:
# Search for pages about authentication
confluence search "type=page AND text~authentication" --space DOCS
# Get a page's content
confluence page get "Installation Guide"Create and update:
# Create a page from Markdown
confluence page create --space DOCS --title "API Reference" --body-file api.md --toc
# Update an existing page
confluence page update 123456 --body-file updated-api.mdManage spaces:
# List all spaces
confluence space list
# Get space details
confluence space get DOCSThis skill makes API calls requiring structured input/output. A standard-capability model is recommended.
666332c
Also appears in
last in sync Mar 12, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.