Sleuth
Curio includes Sleuth, its integrated research assistant to make finding anything on the web fast and fun.
Sleuth can help you research ideas by giving you easy access to almost any search engine available on the Internet. You can quickly look up images, definitions, rhyming words, translations, and general information related to any topic. You only have to fill in the search field once, and then visit the sites that most interest you. When you find something you want to remember, simply drag and drop it into an idea space.
AI Chat Services
Sleuth has support for the chat-based AI services, like ChatGPT. Unlike other Sleuth sites, these services have their own conversational chat interfaces for interacting with the user so Sleuth’s search field isn’t used. See more notes about these services below.
Searching in Sleuth
- Reveal the Sleuth window by clicking the Sleuth toolbar button or choosing the Window > Show Sleuth menu item.
- Type a word or phrase in the search field located at the top of the Sleuth window.
- Press Return to perform the search on the currently selected website, or choose a different site from the site popup menu located to the right of the search field.
- The search results will be displayed in the bottom part of the Sleuth window. You can explore your search results as you would any website.
- You can use the back and forward arrows at the top of the Sleuth window to navigate web pages.
Importing Sleuth Content into Curio
- Drag images, selected text, and web links from the Sleuth window to any idea space or the project library to save the results you like.
- You can grab the URL of the currently displayed page by dragging it from the status area located at the bottom of the Sleuth window.
Changing the Sleuth Site
- To see search results for the same word or phrase on a different site, click on the site menu and choose another site.
- You can also click on the up and down arrows next to the site menu to perform the same search on the previous and next sites within a category respectively.
Changing the Page Zoom
- Choose View > Zoom In (⌘>), View > Zoom Out (⌘<), or View > Actual Size (⌘0).
- The zoom increments jump through the same percentages as Safari: 50%, 75%, 85%, 100%, 115%, 125%, 150%, 175%, 200%, 250%, 300%.
- The zoom change is only for this session. 100% actual size will be used at next launch.
Make the Sleuth Window Always Appear on Top of All Other Windows
- Click the On Top toolbar button on the Sleuth window. Click again to turn off this feature.
Make the Sleuth Window Transparent so You Can See Through It
- Click the Transparency toolbar button on the Sleuth window. Click again to turn off this effect.
Add or Edit Sleuth Sites
- Click the Customize toolbar button on the Sleuth window, and follow the steps detailed on the next idea space.
AI Chat Services
Sleuth includes support for AI chat services, like ChatGPT and Google Gemini.
Unlike other Sleuth sites, these services have their own conversational chat interfaces for interacting with the user so Sleuth’s search field isn’t used.
Essentially, for these types of services, Sleuth is simply a handy web view directly to their web-based site, either as a standalone Sleuth window or from within the convenient Sleuth shelf sidebar. Curio is not accessing the AI service directly via their API.
Many if not all of these services off a free plan, while some offer one or more advanced “plus” or “pro” paid plans offering more functionality and capabilities which you can subscribe to directly with their service.
🚨 Important 🚨
- Zengobi does not have access to your queries or history.
- Zengobi is not responsible for a service’s responses or output.
- Zengobi is not involved with sign-up or paid subscriptions to a service.
- AI responses can occasionally make up facts or “hallucinate” outputs.
- It is vital that you read and understand the Terms of Use and Privacy Policy of the AI chat service for their data use and retention policies before submitting any information to that service.
- Unless these services state otherwise, any data you input could be used to train their AI models.
- Do not submit personally identifiable, confidential, or private information.
Included AI Chat Services
Google Gemini
This first time you login to Google Gemini it may warn you that your browser is not supported. This is because Curio uses an embedded Web View - it’s not Google Chrome or Safari. You can click Try Again and Google will allow you to continue the login process.
Sign In With Apple/Google
Several services support sign-in with via the site’s Continue with Apple or Continue with Google buttons and that should work without issue from within Sleuth.
Sign In Via Email
Some services have an unusual sign-in process where, instead of the typical username and password login, you enter an email address and they email you a magic login link.
The problem is clicking the emailed login link will open it in your default browser, not Sleuth.
So, once you receive that email, use the following trick to validate your login within Sleuth:
- In the email you will find a Sign In or similar button. Clicking that button would open it in the browser, which doesn’t help Sleuth, so instead right-click on it and choose Copy Link.
- Go back to the Sleuth window and in the bottom-left corner replace the displayed link URL with the link URL from your clipboard then press Return.
- You should now be signed in and validated for both Sleuth and the Sleuth shelf. Your login will be valid on subsequent re-launches of Curio as they’ll reuse your stored credentials.
Sign In Via Passkeys
Unfortunately passkeys aren’t supported in web views (an Apple WKWebView limitation), so you have to use a password to gain access to any service. Lots of developers are hoping Apple adds support for passkeys to web views one day soon.
Local LLM Services
It’s now possible to run a local LLM service thanks to Apple’s latest blazingly fast Apple Silicon chips, numerous open source LLM models, and an every-growing field of local LLM app servers.
After finding and configuring your selected service, it can be enabled within Sleuth by setting two specific advanced settings:
- Specify the action URL for the service.
defaults write com.zengobi.curio "Local LLM URL" -string "http://localhost:11434" - Optionally specify the name of the service. If not set then “Local LLM” will be used as the name.
defaults write com.zengobi.curio "Local LLM Name" -string "Pico AI Homelab"
Then relaunch Curio and your Sleuth and Sleuth shelf’s AI section will include an item at the top with your local LLM.
Chat Interface Required
Some local LLM apps, like Pico AI Homelab, include a built-in web server that Curio and even your Safari or Chrome browser can use to support chatting with a local LLM. Pico AI can also easily install LLM models to your machine with a point and click interface. This setup allows you to use Sleuth or your browser to chat with any local LLM model in a way similar to how you might use chatgpt.com.
If you hear of any other great apps similar to Pico AI please let us know.
OpenAI API Interface
But other more advanced apps, like the very popular LM Studio and Ollama products, currently only have an OpenAI-compatible API interface (that is, a /v1/chat/completions
endpoint), not a browser-friendly chat interface.
Those apps only accept raw API programmatic queries, so Curio’s Sleuth and your browser can’t connect to them.
If you want to use one of those advanced services you would need to also install a helper service which provides a web interface to the underlying LLM service. The most popular product of this type is probably Open WebUI.
This is a very dynamic and active field of development so searching for “local llm web ui” might be the best way to find the latest and greatest solutions. And it could be that LM Studio and Ollama integrate a web interface as they continue development.
On a related note, Apple’s MLX team recently suggested this setup if you’d like to use their mlx-lm
python-based server with Open WebUI.
Bundled Prompts
When using an AI chat service, the Sleuth window may reveal a small button with a keyboard icon image. When clicked, a popup menu with several bundled prompts are included that you can use for your conversations with the chatbot.
Including Selected Text
If you hold the ⌥ key when choosing some of the prompts, the selected text from your Curio idea space will be included in the prompt. This makes it handy to, for example, rewrite a selected figure’s text so it sounds more formal. If editing a text figure or an Organizer text document, or annotating a PDF figure, and a range of text is selected then Curio will use that text. Else if a figure is selected then it will use that figure’s text.
Customizing Sleuth
Sleuth comes with built-in support for a number of the most popular Internet search sites. It also supports a flexible architecture that allows you to add additional Internet search sites to its list of supported sites.
Adding your own websites to Curio’s Sleuth tool can be as simple as drag and drop. It all depends on how search information is sent to the site’s server.
Note that Curio from the Mac App Store does not support remote, insecure http
Sleuth sites.
GET or POST
An HTML form uses one of two methods to send information via HTTP to the server: GET or POST. When the GET method is used, all of the search criteria are passed to the server via the request URL. This makes it easy for Sleuth to extract the information needed directly from the request URL and automatically create a new site.
When the POST method is used, most of the search criteria are passed to the server in the body of the HTTP request. In this situation, Sleuth is unable to extract the necessary information from the resulting request URL to automatically create a new site. However, if you’re familiar with HTML and you have access to the HTML code for the search form you want to add to Sleuth, you can easily create a new site manually.
Add a New Search Site Based on the GET Method
- In Sleuth’s main window, click on the Customize button (the one with the pencil icon) to switch over to the Sleuth configuration view.
- Choose a collection from the list located along the left side of the window.
- In a web browser of your choosing, go to the desired website’s search page and execute a search for the word “Fish”. Searching for the word “fish” will allow you to skip step 5.
- After the search results are returned, drag the resulting URL from your web browser’s address field and drop it into the list of sites on the right side of the Sleuth window. You can position exactly where you’d like the new site to appear in the list.
- If Sleuth cannot automatically determine your search phrase, a dialog will appear asking you to select which word or phrase for which you searched. Select the word from the popup menu and click Choose. If your search phrase does not appear in the list, click None of the Above.
- The site information form will be displayed with the information Sleuth was able to extract. Type the name you want to give this site in the Name field.
- Click Save.
Add a New Search Site Based on the POST Method
- In Sleuth’s main window, click on the Customize button (the one with the pencil icon) to switch over to the Sleuth configuration view.
- Choose a collection from the list located along the left side of the window.
- Click the “+” button located under the list of sites on the right side of the window to add a new site.
- In the site information dialog, type a name for the site, type the action URL, select POST from the method popup menu, and add the necessary input parameters for this search engine.
- Click Save.
- The value for the search phrase input parameter should always be set to “%%PHRASE%%”. Sleuth will automatically replace this value with your search phrase when you execute a search. Take a look at how other sites are configured by double-clicking on them in the sites list for other examples.
Delete a Custom Sleuth Site
- You can delete the selected site by pressing the Delete key.
Adding Search Site Collections
- In Sleuth’s main window, click on the Customize button (the one with the pencil icon) to switch over to the Sleuth configuration view.
- Click the “+” button located under the list of collections on the left side of the window to add a new collection.
- Type the name for the new collection.
- You can populate your new collection by creating new Sleuth sites or by dragging sites from another collection and dropping them onto your new collection.
- You can delete the selected collection by pressing the Delete key.
Enabling and Disabling Search Sites and Collections
- Click the checkbox next to the item in the list.
Sleuth Download Support
Sleuth and Sleuth shelf support downloading files in these scenarios:
- A clicked on link is using an HTML anchor
download
attribute which indicates the link URL should be downloaded and not displayed in the browser which is handy for images. - A clicked on link has a file extension that could be displayed in the browser but it’s in our special extensions list so we’ll download it. This list includes pdf,csv,md,zip and can be customized with the Sleuth Download Extensions setting.
- The clicked on link can’t be displayed in the browser so will trigger a download automatically.
Oddly, the right-click Download Linked File and Download Image menu items don’t initiate a download for whatever reason. They don’t even trigger a breakpoint in Curio’s code.
As a note, ChatGPT can sometimes offer a link to download a generated output file. However, these links appear to be problematic even within Safari or Chrome and don’t appear to work in Sleuth, either.
KidSafe Sleuth
Curio’s amazing Sleuth internet research assistant is a quick and easy way to find images, videos, definitions, and other information on the internet. Since Sleuth can configured to search specific sites and the user simply enters the search phrase, it’s a wonderful way to restrict access to what a child can see.
Curio has a hidden option which will allow even more restrictive access via a KidSafe setting, which is perfect for school and home environments.
These restrictions include:
- Only show KidSafe sites in its sites popup, such as Google Images with SafeSearch instead the normal Google Images.
- Disallow Sleuth site customization.
- Block any query phrase which contains profanity.
- Block any query results which contain profanity.
To Enable KidSafe Sleuth
- Make sure Curio is not running then launch Applications > Utilities > Terminal and type the following and press Return:
defaults write com.zengobi.curio “Sleuth Is KidSafe” -bool yes - Or you can just click on this and relaunch.