| 14 Skills |
88 Scripts |
940 Tests |
CQL Query Support |
🚀 Stop clicking through Confluence. Start talking to it.
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
⚡ Quick Start
1️⃣ InstallOption A: Claude Code Plugin (recommended)
Option B: Manual git clone https://github.com/grandcamel/Confluence-Assistant-Skills.git
pip install -r requirements.txt
|
2️⃣ Configureexport 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 |
3️⃣ Install CLIpip install -e .
# Verify installation
confluence --version
confluence space list --limit 1
|
4️⃣ Use# CLI commands
confluence page get 12345
confluence search cql "space = DOCS"
confluence 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"
|
🔧 Setup (Assistant Skills)
If you're using this as part of the Assistant Skills ecosystem, run the setup wizard after installing:
/assistant-skills-setup
This configures:
- Shared Python venv at
~/.assistant-skills-venv/ - Required dependencies from
requirements.txt - Environment variables (prompts you to set:
CONFLUENCE_SITE_URL,CONFLUENCE_EMAIL,CONFLUENCE_API_TOKEN) claude-asshell function for running Claude with dependencies
After setup, use claude-as instead of claude:
claude-as # Runs Claude with Assistant Skills venv activated
Environment Variables
| 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 |
🎯 What You Can Do
flowchart LR
subgraph Input["💬 Natural Language"]
A["Create a page about..."]
B["Find all pages with..."]
C["Update permissions for..."]
end
subgraph Skills["🔧 14 Skills"]
D[Pages]
E[Search]
F[Permissions]
G[Labels]
H[Comments]
I[+ 9 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
📦 Available Skills
| Skill | Purpose | Example Commands |
|---|---|---|
| confluence-page | Create, read, update, delete pages | create_page, get_page, update_page, copy_page, move_page |
| confluence-space | Manage spaces | list_spaces, create_space, get_space, delete_space |
| confluence-search | CQL queries & export | cql_search, search_content, export_results, cql_validate |
| confluence-comment | Page comments | add_comment, get_comments, update_comment, delete_comment |
| confluence-attachment | File attachments | upload_attachment, download_attachment, list_attachments |
| confluence-label | Content labeling | add_label, remove_label, get_labels |
| confluence-template | Page templates | list_templates, get_template, create_from_template |
| confluence-property | Content properties | get_properties, set_property, delete_property |
| confluence-permission | Access control | get_space_permissions, add_space_permission |
| confluence-analytics | View statistics | get_page_views |
| confluence-watch | Content watching | watch_page, unwatch_page |
| confluence-hierarchy | Page tree navigation | get_ancestors, get_children, get_descendants |
| confluence-jira | JIRA integration | embed_jira_issues, get_linked_issues |
| confluence-assistant | Central hub | Routes to specialized skills |
🔍 CQL Query Power
Full Confluence Query Language support with validation, suggestions, and export.
👥 Who Is This For?
📝 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 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 page create RELEASES "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 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 permission space DOCS --output json
🏗️ Architecture
# Root configuration
pytest.ini # Test paths, markers, import mode
conftest.py # Shared fixtures and pytest hooks
.claude/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
└── shared/
├── config/ # Configuration schema
└── tests/ # Shared test fixtures
# Shared library (PyPI package)
confluence-assistant-skills-lib
├── 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
🔐 Configuration
Environment Variables
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 |
✅ Quality & Testing
| Metric | Value |
|---|---|
| Total Tests | 940 |
| Unit Tests | Comprehensive coverage |
| Live Integration Tests | 64 test files |
| Code Style | PEP 8 compliant |
# Run all tests
pytest -v
# Run unit tests only (skip live integration)
pytest .claude/skills/ -v --ignore-glob="**/live_integration/*"
# Run with coverage
pytest --cov=confluence_assistant_skills_lib --cov-report=html
# Run live integration tests
pytest .claude/skills/*/tests/live_integration/ --live -v
# Run E2E tests (requires ANTHROPIC_API_KEY)
./scripts/run-e2e-tests.sh # Docker
./scripts/run-e2e-tests.sh --local # Local
🛠️ Troubleshooting
Authentication 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 search validate "your query"
Check quotes are balanced and field names are valid.
📚 Documentation
| Resource | Description |
|---|---|
| CLAUDE.md | Developer guide, patterns, API reference |
| CHANGELOG.md | Release history |
| Confluence API Docs | Official API reference |
🤝 Contributing
- 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 tests
📄 License
MIT License — see LICENSE for details.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file confluence_assistant_skills_plugin-2.0.0.tar.gz.
File metadata
- Download URL: confluence_assistant_skills_plugin-2.0.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
181e788be2d94a59a05cb214df4369a28ca56591521b2dab196bb61f093e2d5a
|
|
| MD5 |
82084f745c10cf4ab6da4f33854bcb5b
|
|
| BLAKE2b-256 |
76619fa63b8680f3e1544d5d55f79e678aa6dd4dd3cc1376b28c3b87d0e84b08
|
File details
Details for the file confluence_assistant_skills_plugin-2.0.0-py3-none-any.whl.
File metadata
- Download URL: confluence_assistant_skills_plugin-2.0.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0afc9bdc1b8ab1a269317df1c0eb898f5870879f1891027a2d031193f8092efc
|
|
| MD5 |
b0bf3a0cf27e541587a7dfc17add651b
|
|
| BLAKE2b-256 |
b7e579d3c208a0f4b03fc81e529ccb2914bc2e368ca60287c02f4dcb17bd081f
|