Claude Code plugin providing skills (documentation) for Confluence automation.
Project description
| 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
Get Started ยท View Skills ยท Documentation ยท Contributing
๐ค Without Assistant Skills
Time: 15+ minutes per page |
๐ฏ With Assistant Skills
Time: 10 seconds |
โก 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.
Find Content-- 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 Results# Export to CSV
confluence search export "label = 'release-notes'" \
--format csv \
--output-file releases.csv
# Export to JSON
confluence search export "space = 'DOCS'" \
--format json
|
๐ฅ 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.
Project details
Release history Release notifications | RSS feed
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
|