# Confluence Search

> Runs an arbitrary CQL query against Confluence and returns structured page results. Use for "find pages about X", "search Confluence for Y", or any lookup not covered by a more specific Confluence skill. This is a read-only operation.

- Skill: `arfar-x/confluence-search` (Agent Skill)
- Install (CLI): `npx skillmds@latest add arfar-x/confluence-search`
- Raw SKILL.md: https://api.skillmd.com/api/skills/arfar-x/confluence-search/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: arfar-x (https://skillmd.com/u/arfar-x)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/arfar-x/confluence-search

---


# Confluence: Search

**Read-only.** Run from this skill's directory:

```bash
python3 ../confluence/scripts/confluence_tool.py search --cql "space = ENG AND type = page AND text ~ 'onboarding'" \
  [--max_results 25] [--include_body]
```

(First-time setup, once per environment: `pip install -r
../confluence/requirements.txt`.)

`--cql` is required -- a real [CQL](https://developer.atlassian.com/cloud/confluence/advanced-searching-using-cql/)
query, not a plain keyword string; build it yourself (e.g.
`space = ENG`, `type = page`, `title ~ '...'` for a title match,
`text ~ '...'` for a body-content match, `label = "..."`). Never guess
a space key -- resolve it via the parent `confluence` skill's
`list_spaces`/`get_space` first if you don't already know it.

Results don't include each page's body text by default -- pass
`--include_body` only when you actually need to quote matching content,
not just list titles; page bodies are often the largest single field
per result.

If the result contains `"error"`, tell the user what went wrong in
plain language (e.g. a malformed CQL expression) instead of retrying
silently or fabricating a result.

See `../confluence/README.md` for architecture details and the full
environment-variable table.

