| 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.
Metadata
Release files for confluence-assistant-skills-plugin 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| confluence_assistant_skills_plugin-2.0.0.tar.gz | 9.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| confluence_assistant_skills_plugin-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.9 kB
Release files / confluence_assistant_skills_plugin-2.0.0.tar.gz
| Download URL | confluence_assistant_skills_plugin-2.0.0.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
181e788be2d94a59a05cb214df4369a28ca56591521b2dab196bb61f093e2d5a
|
|
BLAKE2b-256 checksum How to use checksums |
76619fa63b8680f3e1544d5d55f79e678aa6dd4dd3cc1376b28c3b87d0e84b08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / confluence_assistant_skills_plugin-2.0.0-py3-none-any.whl
| Download URL | confluence_assistant_skills_plugin-2.0.0-py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0afc9bdc1b8ab1a269317df1c0eb898f5870879f1891027a2d031193f8092efc
|
|
BLAKE2b-256 checksum How to use checksums |
b7e579d3c208a0f4b03fc81e529ccb2914bc2e368ca60287c02f4dcb17bd081f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Security for confluence-assistant-skills-plugin 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.