Curio’s Quick Find feature is a super fast way to find and jump to your project’s idea spaces and figures.
Using Quick Find
Press ⇧⌘F to bring up the Quick Find window, which will appear above the current Curio project window. You may also choose the Edit > Quick Find menu.
After the Quick Find window appears, type in a search query and the window expands to reveal idea spaces and/or figures that match that query.
You can directly click on a result or use the arrow keys to highlight a result and press Return, you will then instantly jump to the selected item. If the Option key is pressed then the item destination will be opened in the secondary split view.
Alternatively you can also press Escape or click on the idea space behind the Quick Find window to dismiss Quick Find.
Quick Find supports queries as simple as:
to as complex as:
(ipad or iphone) @SteveJ #event #2010 (start > 2010-06-25 or due < 2w) progress < 50
Refreshing the Results
By design, if you bring up Quick Find again within a launch session it will show you the last results without refreshing first. This way you can make changes to found items between subsequent returns to Quick Find to jump to the next item.
To force a refresh simply press Return to force a re-query, or change the query which will automatically refresh the results.
Saving and Reusing Queries
When you enter a new query into the Quick Find window, a small Save button becomes visible. Click it and your query is saved for easy reuse. Simply click the magnifying glass on the Quick Find window to choose the query from the popup menu that appears.
If you select a previously saved query from that popup menu then a small Delete button appears, so you can easily delete that saved query. Or if you make changes to the query text, the button changes to Update so you can update its existing entry.
Terms are AND’ed together by default, so searching for
#2021 #personal @GeorgeB means that all three terms must match.
You can use
or (case-insensitive), such as
#personal or @GeorgeB, or the
|| symbol, if you wish.
not is also supported although generally not very useful. Finding all items where
not priority=3 returns a flood of results.)
Parentheses may be used to assist with the logic, such as
#GTD/active (#personal or @GeorgeB).
Where appropriate the following operators are allowed:
And, in certain situations, specifically custom data string values, you can also use the
endswith operators such as
#FullName endswith jobs.
Curio looks for special prefixes at the very start of the query which can come in handy:
-will force the result to be sorted in descending order, ex:
+will force the result to be sorted in ascending order, ex:
Note there’s a space after the prefix character before the rest of the query text.
The query can include optional commands that allow you to fine-tune the results.
By default Curio sorts the results by title, alphabetically in ascending order.
However, it tries to be smart about this.
For example, if your search query includes the term
priority > 2 then Curio will will automatically sort the results by priority in descending order.
If you simply want to reverse the sort order you can use the special
+ starting prefix described above.
Or you can force Curio to sort by a specific field, even if it’s not part of the query, by using the
sort command like this:
- value prefix before the field name can be used to force an ascending or descending sort.
Your sort options are:
title- the title
start- start date
due- due date
done- done date
added- date added
modified- date last modified
progress- progress (percent complete)
By default Curio searches the entire project.
However, you can limit the scope if you wish using the
scope command like this:
Your scope options are:
s- the current section
s/- the current section and any child sections
i- the current idea space
i/- the current idea space and any child idea spaces
journal- the Journal section
archive- the Archive section
Text queries are case-insensitive contains searches by default. This means searching for
mac will match “macintosh” and “iMac” and “stomachache” as they all contain “mac”.
What Text is Searched?
With figures, the figure’s title or text content is included in the search, as well as any meta note text, internal OCR text (like if imported from Evernote), and the URL path if an URL is associated with the figure. Note that asset document contents are not included.
With Organizer items, such as idea spaces or documents dragged into the Organizer, the item title and any note text is included. The contents of Organizer documents are not included.
You can search for multi-word phrases by using double-quotes, such as
You can also use case-insensitive regular expressions (regex) in your text queries, thanks to a helpful
/ prefix which tell Curio you’re entering regex.
Curio will auto-remove the slash from the term before performing the query.
For example, searching for
/\bmac will match words the start with “mac” such as “macintosh” but not “iMac” or “stomachache”.
Another example, searching for
/\bping[0-7] will find all figures that contains the word that starts with “ping” followed by a numeric between 0 and 7.
Thus it will match “ping1” and “ping535” but not “ping8” or “shopping2”.
Curio automatically adds a
.* to the beginning and end of the entered query since you generally want to find the given query anywhere within a text figure.
You can disable this auto prefix and suffix, if you’d like.
For example, say you type
/steve.*jobs into the Quick Find window:
- The slash prefix tells Curio that this is regex so it’s automatically stripped:
- It is then auto-prefix/suffixed internally so it looks like this:
- This is then used as the query and will then match the text “Steve Jobs”, “Steve P. Jobs”, “Steve Paul Jobs”, and “Steven Paul Jobs”.
Entered regex can’t include a space.
Internally Curio uses your query to construct a formatted expression which it then passes to
NSPredicate to actually perform the query.
MATCHES expression term is used to handle the regex evaluation so Curio is limited to its regex capabilities.
Prefix any tags with a
#. Note that all tags and tag sets need to be entered with spaces removed, case-insensitive.
- Tags nested within a tag set will need the full tag path specied. For example, you could search for
#detailedTasks/onholdto match a figure or idea space associated with a tag named On Hold within the Detailed Tasks tag set.
- You can also simply search for
#specialand it will find all items with that tag, either as a standalone keyword tag or as a tag within a tag set.
- You can search for tag set names, like
/suffix), which will find all items associated with any tag in that tag set. As a shortcut, if the entered tag set name doesn’t coincidentally exist as a tag name you can simply enter
#gtdif you wish.
Quick Find supports autocomplete while typing a tag so you can easily find and choose one from the popup that appears.
If you’ve created custom figure data, such as “Price” and “First Name”, then you can build queries like
#price > 30 and
Note the custom data field key has to begin with a
#, with spaces removed, case-insensitive.
With text values, the query is case-insensitive.
If you have a figure with a custom value of “George” then
#firstname beginswith geo will find it.
Quick Find supports autocomplete while typing a custom data key so you can easily find and choose one from the popup that appears.
Prefix any resources with a
The full resource name must be specified, spaces removed, case-insensitive. For example, you could search for
@georgeBrowning to match a figure associated with a resource named George Browning.
Quick Find supports autocomplete while typing a resource so you can easily find and choose one from the popup that appears.
Prefix any reference types with a
The full reference type name must be specified, spaces removed, case-insensitive. For example, you could search for
^rebuttal or ^primaryWitness to match a figure that has a Rebuttal or Primary Witness reference association.
Quick Find supports autocomplete while typing a reference type so you can easily find and choose one from the popup that appears.
Query for ratings, such as
rating >= 3 to find all figures with 3 or more stars.
Query for priority, such as
priority = 5 to find all figures with an urgent priority.
The values are as follows: very low (1), low (2), medium (3), high (4), or urgent (5) priority.
You can query for figure progress (aka percent complete), such as
progress < 100.
Note that only figures that have a visible checkmark are included in the results.
Curio supports several different date fields:
Date values can be entered in standard YYYY-MM-DD format such as
You can also pass numeric values and Curio will compute the date for you:
start < 2or
start < 2dreturns all items that start within the next 2 days.
modified > -2wreturns all items modified in the past 2 weeks.
due < 3mreturns items due within the next 3 months.
start < 1yreturns items that start within the next year.
Query for asset figure file extensions, such as
ext=pdf to find all PDF asset figures.
Curio performs a number of automatic substitutions to allow more readable expressions.
|Type This||Maps to This||Allowing|
Curio supports a
curio://search?query=... URL scheme which will bring up Quick Find with the given query.
Note that the query parameters have to be URL encoded so they are valid within the URL. Use the following mappings to convert certain special characters into their safe, encoded hex equivalents.
So, for example, you would encode the query for:
"financial results" #Apple/iMac-Pro @Accounting start<2
Online URL encoders can make this easier to do.