| 17 Skills |
88 Scripts |
940 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
Get Started Β· View Skills Β· Documentation Β· Contributing
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 -r requirements.txt |
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 -e .
# Verify installation
confluence --version
confluence space list --limit 1 |
# 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" |
If you're using this as part of the Assistant Skills ecosystem, run the setup wizard after installing:
/assistant-skills-setupThis 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| 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["π§ 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
| 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 |
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 search export "label = 'release-notes'" \
--format csv \
--output-file releases.csv
# Export to JSON
confluence search export "space = 'DOCS'" \
--format 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 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# 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-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 |
|---|---|
| Unit Tests | Comprehensive coverage |
| E2E Tests | Claude Code integration |
| Code Style | PEP 8 compliant |
Live integration tests are maintained in the confluence-as library.
# Run all tests
pytest -v
# Run with coverage
pytest --cov=confluence_as --cov-report=html
# Run E2E tests (requires ANTHROPIC_API_KEY)
./scripts/run-e2e-tests.sh # Docker
./scripts/run-e2e-tests.sh --local # Local
# Live integration tests have been migrated to 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 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.