confluence-search · git:20260901.5d17d6a · 2026-09-01 · sha256 105150fad540a04f
confluence-search git:20260901.5d17d6aA
Immutable. This exact content is served forever at /api/v1/blob/105150fad540a04f.
---
name: confluence-search
description: Search Confluence using CQL queries, validate syntax, export results, and manage search history. ALWAYS use when user wants to find, search, or query for content.
triggers:
- search confluence
- find pages
- search pages
- CQL
- query confluence
- export search
- search results
- find content
- search by label
- saved search
origin:
type: upstream
upstream:
repository: grandcamel/Confluence-Assistant-Skills
path: skills/confluence-search
ref: 403eac8ad8a0812e6d41ed70cbc0fdf2ff4b7542
license: MIT
trust:
tier: reviewed
reviewed_at: '2026-08-26'
reviewed_by: ulises-jeremias
reviewed_provenance: sha256:e108ba43a041668431ec4786122304e851c4eff455817abf12cccced9adb15fa
maintenance:
status: active
last_checked: '2026-08-26'
distribution:
mode: vendored
redistribution_allowed: true
attribution_file: LICENSE
security:
scripts: false
shell: false
network: true
mcp: false
hooks: false
---
# Confluence Search Skill
Search Confluence content using CQL (Confluence Query Language).
---
## ⚠️ PRIMARY USE CASE
**This skill finds content across Confluence.** Use this skill for:
- Searching pages by text, title, or labels
- Building CQL queries for complex searches
- Exporting search results to CSV/JSON
- Finding content by date, creator, or space
**This is a read-only skill** - it cannot create, modify, or delete content.
---
## When to Use This Skill
| Trigger | Example |
|---------|---------|
| Text search | "Find pages about API documentation" |
| Label search | "Find all pages with label 'approved'" |
| Space search | "Search for content in DOCS space" |
| Date-based | "Find pages modified this week" |
| Export | "Export all pages in KB space to CSV" |
| CQL query | "Run CQL: space = DOCS AND type = page" |
---
## When NOT to Use This Skill
| Operation | Use Instead |
|-----------|-------------|
| Create/edit pages | `confluence-page` |
| Add/remove labels | `confluence-label` |
| Manage permissions | `confluence-permission` |
| View page hierarchy | `confluence-hierarchy` |
---
## Risk Levels
All operations are **read-only** with no risk:
| Operation | Risk | Notes |
|-----------|------|-------|
| Search content | - | Read-only |
| Validate CQL | - | Read-only |
| Export results | - | Creates local file only |
| View history | - | Local history only |
---
## Overview
This skill provides powerful search capabilities:
- Execute CQL queries
- Validate CQL syntax
- Get field and value suggestions
- Interactive query builder
- Export results to CSV/JSON
- Streaming export for large result sets
- Query history management
## CQL Query Patterns
### Basic Queries
```cql
# Find pages in a space
space = "DOCS" AND type = page
# Find by label
label = "documentation"
# Text search
text ~ "API documentation"
# By creator
creator = "john.doe@company.com"
creator = currentUser()
# By date
created >= "2024-01-01"
lastModified > startOfMonth()
```
### Advanced Queries
```cql
# Multiple spaces
space in ("DOCS", "KB", "DEV") AND type = page
# Exclude labels
label = "approved" AND label != "draft"
# Date ranges
lastModified >= "2024-01-01" AND lastModified < "2024-02-01"
# Ancestor (child pages)
ancestor = 12345
# Combined with ordering
space = "DOCS" AND label = "api" ORDER BY lastModified DESC
# Attachments in a space
type = attachment AND space = "DOCS"
# Blog posts by date
type = blogpost AND created >= startOfYear()
```
### CQL Fields Reference
| Field | Description | Example |
|-------|-------------|---------|
| space | Space key | `space = "DOCS"` |
| title | Page title | `title ~ "API"` |
| text | Full text search | `text ~ "configuration"` |
| type | Content type | `type = page` |
| label | Content label | `label = "docs"` |
| creator | Content creator | `creator = currentUser()` |
| contributor | Any contributor | `contributor = "email"` |
| created | Creation date | `created >= "2024-01-01"` |
| lastModified | Last modified date | `lastModified > startOfWeek()` |
| parent | Parent page ID | `parent = 12345` |
| ancestor | Ancestor page ID | `ancestor = 12345` |
| id | Content ID | `id = 12345` |
## CLI Commands
**Output format tip:** A global `-o/--output` flag placed before the subcommand (e.g. `confluence-as -o json search cql "..."`) sets the default output format for all subcommands; an explicit subcommand-level `--output` wins. Note that for `search export` and `search stream-export`, the subcommand-level `-o/--output` is the output **file path**, not the format - use `--format` there.
### confluence-as search cql
Execute CQL queries against Confluence.
**Usage:**
```bash
# Simple text search
confluence-as search cql "text ~ 'API documentation'"
# Search with space filter
confluence-as search cql "space = 'DOCS' AND type = page"
# With limit
confluence-as search cql "label = 'approved'" --limit 50
# Show excerpts
confluence-as search cql "text ~ 'config'" --show-excerpts
```
**Arguments:**
- `cql` - CQL query string (required)
- `--limit, -l` - Maximum results (default: 25)
- `--show-excerpts` - Show content excerpts
- `--show-labels` - Show content labels
- `--show-ancestors` - Show ancestor pages
- `--output, -o` - Output format: text or json
### confluence-as search validate
Validate CQL query syntax.
**Usage:**
```bash
confluence-as search validate "space = 'DOCS' AND type = page"
confluence-as search validate "invalid query (("
```
**Arguments:**
- `cql` - CQL query to validate (required)
### confluence-as search suggest
Get CQL field and value suggestions.
**Usage:**
```bash
# Get field suggestions
confluence-as search suggest --fields
# Get values for a field
confluence-as search suggest --field space
confluence-as search suggest --field type
# Get operators and functions
confluence-as search suggest --operators
confluence-as search suggest --functions
```
**Arguments:**
- `--fields` - List all available CQL fields
- `--field NAME` - Get values for a specific field
- `--operators` - List all CQL operators
- `--functions` - List all CQL functions
- `--output, -o` - Output format: text or json
### confluence-as search interactive
Interactive CQL query builder.
**Usage:**
```bash
confluence-as search interactive
confluence-as search interactive --space DOCS
confluence-as search interactive --type page --execute
```
**Arguments:**
- `--space` - Pre-filter by space
- `--type` - Pre-filter by content type: page, blogpost, comment, or attachment
- `--limit, -l` - Maximum results (default: 25)
- `--execute` - Execute query after building
### confluence-as search export
Export search results to file.
**Usage:**
```bash
# Export to CSV
confluence-as search export "space = 'DOCS'" --format csv --output results.csv
# Export to JSON
confluence-as search export "label = 'api'" --format json --output results.json
# Select columns
confluence-as search export "type = page" --columns id,title,space,created --output pages.csv
```
**Arguments:**
- `cql` - CQL query (required)
- `--format, -f` - Output format: csv or json (default: csv)
- `--output, -o` - Output file path (required)
- `--columns` - Columns to include (comma-separated)
- `--limit, -l` - Maximum results
### confluence-as search stream-export
Export large result sets with checkpoints.
**Usage:**
```bash
# Full export with progress
confluence-as search stream-export "space = 'DOCS'" --output docs.csv
# Resume from checkpoint
confluence-as search stream-export "space = 'DOCS'" --output docs.csv --resume
# Custom batch size
confluence-as search stream-export "type = page" --output pages.csv --batch-size 50
```
**Arguments:**
- `cql` - CQL query (required)
- `--output, -o` - Output file path (required)
- `--format, -f` - Output format: csv or json (inferred from extension if not specified)
- `--columns` - Columns to include (comma-separated)
- `--batch-size` - Records per batch (default: 100)
- `--resume` - Resume from last checkpoint
### confluence-as search history
Manage local query history.
**Usage:**
```bash
# List recent queries
confluence-as search history list
confluence-as search history list --limit 10
# Search history
confluence-as search history search "space = DOCS"
# Show specific query by index
confluence-as search history show 5
# Clear history
confluence-as search history clear
# Export history to file
confluence-as search history export history.csv
confluence-as search history export history.json --format json
# Cleanup old entries
confluence-as search history cleanup --days 30
```
**Subcommands:**
- `list` - List recent queries (--limit default: 20, --output)
- `search KEYWORD` - Search history for queries containing keyword
- `show INDEX` - Show specific query by index
- `clear` - Clear all query history
- `export FILE` - Export history to file (--format: csv or json)
- `cleanup` - Remove old entries (--days default: 90)
### confluence-as search content
Simple text search (no CQL knowledge required).
**Usage:**
```bash
confluence-as search content "meeting notes"
confluence-as search content "meeting notes" --space DOCS
confluence-as search content "API documentation" --type page
```
**Arguments:**
- `query` - Search text (required)
- `--space` - Limit to space
- `--type` - Content type: page or blogpost. Omit the flag to search all types. (The CLI also accepts `all`, but that injects the literal `type = all` into the CQL, which the server rejects - do not use it.)
- `--limit, -l` - Maximum results
- `--output, -o` - Output format
## Examples
### Natural Language Triggers
- "Search for pages about API documentation"
- "Find all pages with label 'approved' in DOCS space"
- "Search for content created this month"
- "Export all pages in KB space to CSV"
- "Find pages modified by me today"
---
## Common Pitfalls
### 1. CQL Syntax Errors
- **Problem**: Query fails with syntax error
- **Solution**: Use `confluence-as search validate "query"` to check syntax first
### 2. Quoting Issues
- **Problem**: Values with spaces not matching
- **Solution**: Use double quotes: `space = "My Space"` or single quotes: `label = 'my-label'`
### 3. Case Sensitivity
- **Problem**: Search not finding expected results
- **Solution**: Text search (`~`) is case-insensitive, but `=` is exact match
### 4. Date Format
- **Problem**: Date queries failing
- **Solution**: Use `YYYY-MM-DD` format or functions like `startOfWeek()`, `now("-7d")`
### 5. Large Result Sets
- **Problem**: Export timing out or running slow
- **Solution**: Use `stream-export` for large datasets, add `--batch-size` option
### 6. Empty Results
- **Problem**: Search returns nothing when content exists
- **Solution**: Check space permissions, verify space key is correct, try broader query
---
## Error Handling
| Error | Cause | Resolution |
|-------|-------|------------|
| **400 Bad Request** | Invalid CQL syntax | Use `confluence-as search validate` to check query |
| **403 Forbidden** | No permission to search space | Request space access |
| **408 Timeout** | Query too complex or large result set | Simplify query, use pagination |
### CQL Troubleshooting
**Validate query before running:**
```bash
confluence-as search validate "space = 'DOCS' AND type = page"
```
**Build query interactively:**
```bash
confluence-as search interactive --space DOCS
```
**Check available fields:**
```bash
confluence-as search suggest --fields
confluence-as search suggest --field space
```
**Common CQL fixes:**
```cql
# Wrong: unquoted space with spaces
space = My Space
# Right: quoted space name
space = "My Space"
# Wrong: wrong date format
created > 01-15-2025
# Right: correct date format
created > "2025-01-15"
# Wrong: invalid operator for text
text = "exact match"
# Right: use contains operator
text ~ "search text"
```