Search DSL
ctxd uses a domain-specific language (DSL) for search. Queries use explicit field prefixes with boolean operators. One query returns every match across all connected apps.
Basic syntax
Section titled “Basic syntax”Every query starts with text: followed by the search term:
text:deploymentAdd filters to narrow results:
text:deployment application:slacktext:deployment application:slack date:>2025-01-01Field prefixes
Section titled “Field prefixes”| Prefix | Filters | Example |
|---|---|---|
text: | Document content (required) | text:deployment |
application: | Source app | application:slack |
date: | Modified date | date:>2025-01-01 |
in_channel: | Slack channel | in_channel:engineering |
repo: | GitHub repo | repo:team/backend |
IN: | File/folder path | IN:/Projects/2024 |
Text operators
Section titled “Text operators”Inside text:(), you can use boolean operators:
| Operator | Meaning | Example |
|---|---|---|
+term | Required (AND) | text:(+deploy +runbook) |
-term | Excluded (NOT) | text:(deploy -test) |
term1 | term2 | OR | text:(deploy | release) |
"exact phrase" | Phrase match | text:"deployment runbook" |
term* | Wildcard prefix | text:deploy* |
Boolean operators
Section titled “Boolean operators”Combine field filters with AND, OR, NOT:
text:deployment AND application:slacktext:deployment OR text:releasetext:deployment NOT application:githubSpaces between fields act as implicit AND:
text:deployment application:slackis the same as:
text:deployment AND application:slackDate filters
Section titled “Date filters”date:>2025-01-01 # after datedate:<2025-12-31 # before datedate:[2025-01-01 TO 2025-03-31] # date rangeExamples
Section titled “Examples”Search Slack for deployment discussions since January:
text:(deploy* OR release) application:slack date:>2025-01-01Find meeting notes in a specific Drive folder:
text:"meeting notes" application:google_drive IN:/Projects/2024Search a specific GitHub repo for bug reports:
text:(bug* OR issue OR "not working") repo:team/backendFind standups from a Slack channel in Q1:
text:(update* | status | blocker) in_channel:engineering date:[2025-01-01 TO 2025-03-31]Search everything across all apps:
text:"quarterly review"- Always use the
text:prefix. Bare words without a prefix are not supported. - Use parentheses for multi-word text:
text:(word1 word2)ortext:"word1 word2" - Wildcards only work at the end of a word:
deploy*works,*deploydoes not - Repo filters support wildcards:
repo:*/backend