Skip to content

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.

Every query starts with text: followed by the search term:

text:deployment

Add filters to narrow results:

text:deployment application:slack
text:deployment application:slack date:>2025-01-01
PrefixFiltersExample
text:Document content (required)text:deployment
application:Source appapplication:slack
date:Modified datedate:>2025-01-01
in_channel:Slack channelin_channel:engineering
repo:GitHub reporepo:team/backend
IN:File/folder pathIN:/Projects/2024

Inside text:(), you can use boolean operators:

OperatorMeaningExample
+termRequired (AND)text:(+deploy +runbook)
-termExcluded (NOT)text:(deploy -test)
term1 | term2ORtext:(deploy | release)
"exact phrase"Phrase matchtext:"deployment runbook"
term*Wildcard prefixtext:deploy*

Combine field filters with AND, OR, NOT:

text:deployment AND application:slack
text:deployment OR text:release
text:deployment NOT application:github

Spaces between fields act as implicit AND:

text:deployment application:slack

is the same as:

text:deployment AND application:slack
date:>2025-01-01 # after date
date:<2025-12-31 # before date
date:[2025-01-01 TO 2025-03-31] # date range

Search Slack for deployment discussions since January:

text:(deploy* OR release) application:slack date:>2025-01-01

Find meeting notes in a specific Drive folder:

text:"meeting notes" application:google_drive IN:/Projects/2024

Search a specific GitHub repo for bug reports:

text:(bug* OR issue OR "not working") repo:team/backend

Find 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) or text:"word1 word2"
  • Wildcards only work at the end of a word: deploy* works, *deploy does not
  • Repo filters support wildcards: repo:*/backend