| 17 Skills |
108 CLI Commands |
10 E2E Tests |
CQL Query Support |
Confluence Assistant Skills brings the power of natural language automation to Confluence Cloud.
Ask Claude to create pages, search content, manage permissions, and more — all without leaving your terminal.
You: "Find all pages labeled 'api-docs' modified this week and export to CSV"
Claude: Found 23 pages matching your criteria.
✓ Exported to api-docs-report.csv
Time: 15+ minutes per page |
Time: 10 seconds |
|
Option A: Claude Code Plugin (recommended) Option B: Marketplace claude plugin marketplace add https://github.com/grandcamel/confluence-assistant-skills.git#main
claude plugin install confluence-assistant-skills@confluence-assistant-skills-marketplace --scope userOption C: Manual git clone https://github.com/grandcamel/Confluence-Assistant-Skills.git
pip install "confluence-as>=1.1.1" |
export CONFLUENCE_SITE_URL="https://your-site.atlassian.net"
export CONFLUENCE_EMAIL="you@company.com"
export CONFLUENCE_API_TOKEN="your-api-token"Get your API token from Atlassian Account Settings |
pip install "confluence-as>=1.1.1"
# Verify installation
confluence-as --version
confluence-as space list --limit 1 |
# CLI commands
confluence-as page get 12345
confluence-as search cql "space = DOCS"
confluence-as label add 12345 approved
# Or ask Claude naturally:
"Create a page titled 'Meeting Notes' in the DOCS space"
"Search for pages about API documentation"
"Add label 'approved' to page 12345" |
If you're using this as part of the Assistant Skills ecosystem, run the setup wizard after installing:
/confluence-assistant-setupThis configures:
- The
confluence-asCLI from PyPI (pip install "confluence-as>=1.1.1") - Environment variables (prompts you to set:
CONFLUENCE_SITE_URL,CONFLUENCE_EMAIL,CONFLUENCE_API_TOKEN) - Connection validation against your Confluence site
| Variable | Required | Description |
|---|---|---|
CONFLUENCE_SITE_URL |
Yes | Confluence Cloud site URL (e.g., https://your-site.atlassian.net) |
CONFLUENCE_EMAIL |
Yes | Atlassian account email for API authentication |
CONFLUENCE_API_TOKEN |
Yes | API token from Atlassian Account Settings |
flowchart LR
subgraph Input["💬 Natural Language"]
A["Create a page about..."]
B["Find all pages with..."]
C["Update permissions for..."]
end
subgraph Skills["🔧 17 Skills"]
D[Pages]
E[Search]
F[Permissions]
G[Labels]
H[Comments]
I[+ 12 more]
end
subgraph Output["✅ Results"]
J["Pages created"]
K["Content found"]
L["Settings updated"]
end
A --> D --> J
B --> E --> K
C --> F --> L
style Input fill:#0052CC,color:#fff
style Skills fill:#36B37E,color:#fff
style Output fill:#00C7E6,color:#000
| Skill | Purpose | Example Commands |
|---|---|---|
| confluence-page | Create, read, update, delete pages | page create, page get, page update, page copy, page move |
| confluence-space | Manage spaces | space list, space create, space get, space delete |
| confluence-search | CQL queries & export | search cql, search content, search export, search validate |
| confluence-comment | Page comments | comment add, comment list, comment update, comment delete |
| confluence-attachment | File attachments | attachment upload, attachment download, attachment list |
| confluence-label | Content labeling | label add, label remove, label list |
| confluence-template | Page templates | template list, template get, template create-from |
| confluence-property | Content properties | property get, property set, property delete |
| confluence-permission | Access control | permission space get, permission space add |
| confluence-analytics | View statistics | analytics views |
| confluence-watch | Content watching | watch page, watch unwatch-page |
| confluence-hierarchy | Page tree navigation | hierarchy ancestors, hierarchy children, hierarchy descendants |
| confluence-jira | JIRA integration | jira embed, jira linked |
| confluence-admin | Users, groups, space administration | admin user search, admin group list, admin space permissions |
| confluence-bulk | Bulk operations on multiple pages | bulk update, bulk move, bulk delete, bulk label add |
| confluence-ops | Diagnostics & cache management | ops health-check, ops cache-status, ops cache-clear |
| confluence-assistant | Central hub | Routes to specialized skills |
Full Confluence Query Language support with validation, suggestions, and export.
-- Pages in a space
space = "DOCS" AND type = page
-- By label
label = "approved" AND label = "api"
-- Text search
text ~ "API documentation"
-- Recent changes
lastModified >= startOfWeek() |
# Export to CSV
confluence-as search export "label = 'release-notes'" \
--format csv \
--output releases.csv
# Export to JSON
confluence-as search export "space = 'DOCS'" \
--format json \
--output docs.json |
📝 Technical Writers — Automate documentation workflows
- Bulk create pages from templates
- Search and update outdated content
- Export content for review
- Manage labels across hundreds of pages
# Find all pages needing review
confluence-as search cql "label = 'needs-review' AND lastModified < startOfMonth(-3)"🛠️ DevOps Engineers — Integrate Confluence into CI/CD
- Auto-generate release notes
- Update runbooks from code
- Sync documentation with deployments
- Create incident pages automatically
# Create release notes page
confluence-as page create --space RELEASES --title "v2.5.0" --file CHANGELOG.md👔 Project Managers — Streamline project documentation
- Create project spaces from templates
- Generate status reports
- Track page analytics
- Manage team permissions
# Get page view statistics
confluence-as analytics views 12345 --output json🔒 IT Administrators — Manage Confluence at scale
- Audit space permissions
- Bulk update settings
- Export content for compliance
- Automate user provisioning
# List all space permissions
confluence-as permission space get DOCS --output json# Root configuration
pytest.ini # Test paths, markers, import mode
conftest.py # Shared fixtures and pytest hooks
skills/
├── confluence-assistant/ # Hub skill - routes requests
├── confluence-page/ # Page CRUD operations
├── confluence-space/ # Space management
├── confluence-search/ # CQL queries & export
├── confluence-comment/ # Comments
├── confluence-attachment/ # File attachments
├── confluence-label/ # Labels
├── confluence-template/ # Templates
├── confluence-property/ # Content properties
├── confluence-permission/ # Permissions
├── confluence-analytics/ # Analytics
├── confluence-watch/ # Watching
├── confluence-hierarchy/ # Page tree
├── confluence-jira/ # JIRA integration
├── confluence-admin/ # Administration
├── confluence-bulk/ # Bulk operations
├── confluence-ops/ # Diagnostics & cache
└── shared/
├── config/ # Configuration schema
└── docs/ # Shared reference docs
# Shared library (PyPI package)
confluence-as
├── confluence_client.py # HTTP client with retry
├── config_manager.py # Configuration management
├── error_handler.py # Exception handling
├── validators.py # Input validation
└── formatters.py # Output formatting
All configuration is done through environment variables:
export CONFLUENCE_SITE_URL="https://your-site.atlassian.net"
export CONFLUENCE_EMAIL="you@company.com"
export CONFLUENCE_API_TOKEN="your-api-token"| Variable | Required | Description |
|---|---|---|
CONFLUENCE_SITE_URL |
Yes | Confluence Cloud site URL |
CONFLUENCE_EMAIL |
Yes | Atlassian account email |
CONFLUENCE_API_TOKEN |
Yes | API token from Atlassian Account Settings |
| Metric | Value |
|---|---|
| E2E Tests | Claude Code plugin integration (tests/e2e/) |
| Unit & Live Tests | Maintained in the confluence-as library |
| Code Style | PEP 8 compliant |
This repo ships skills (documentation) — the CLI code and its unit/live integration tests live in the confluence-as library.
# Run E2E tests (requires the Claude Code CLI plus
# ANTHROPIC_API_KEY or an existing ~/.claude login)
./scripts/run-e2e-tests.sh # Docker
./scripts/run-e2e-tests.sh --local # Local
# Or invoke pytest directly
pytest tests/e2e/ -v
# Unit and live integration tests live in the confluence-as library
# See: https://github.com/grandcamel/confluence-asAuthentication failed
- Verify API token at Atlassian Account Settings
- Ensure email matches the token owner
- Check URL includes
https://and ends with.atlassian.net
Permission denied
- Verify access in Confluence web UI
- Some operations require admin permissions
- Check if content is restricted
CQL syntax error
# Validate your query
confluence-as search validate "your query"Check quotes are balanced and field names are valid.
Plugin installation fails
Claude Code strictly validates plugin.json. Common issues:
- Unrecognized keys - Remove any custom keys (only standard plugin.json fields allowed)
- Wrong marketplace name - Use
plugin@marketplace-nameformat - Cache path - Plugin cache includes
.claude-plugin/directory
# Verify installation
cat ~/.claude/plugins/cache/*/confluence-assistant-skills/*/.claude-plugin/plugin.json| Resource | Description |
|---|---|
| CLAUDE.md | Developer guide, patterns, API reference |
| CHANGELOG.md | Release history |
| Confluence API Docs | Official API reference |
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes with tests
- Commit with Conventional Commits format
- Push and submit a pull request
# Commit format
feat(page): add copy page functionality
fix(search): handle empty CQL results
docs: update README
test(space): add integration testsMIT License — see LICENSE for details.