Skip to main content
Journal
Kraken9 min read

ChatGPT will browse. We would rather not give the model the internet.

Deep Search is a private CRW. SearXNG and the browser stay off the public network. Kraken asks. Citations come back. Django never calls Chrome.

Painted private research pipeline: Kraken Ask, CRW crate, SearXNG and Lightpanda behind a fence, squid-pen icon

Most “AI search” is a model with a browser plugin and a prayer. The prompt leaves your tenancy, the scraper is whoever’s, and the citation is a URL you hope still exists. We wanted research next to the wiki, with a job you can poll, a citation you can keep, and a network diagram you can defend.

Kraken Deep Search compared with ChatGPT, Notion, Confluence
Topic
Kraken Deep Search
ChatGPT
Notion
Confluence
Who searchesPrivate SearXNG, via CRWOpenAI’s browsingYour pagesRovo / Atlassian
Who rendersLightpanda, then ChromeTheirsN/ATheirs
Django talks toCRW_URL + CRW_API_KEY. That is it.ChatGPTNotionAtlassian
The jobDurable AIJob. Poll phases.The threadA chat over pagesA Rovo session
Connected appsComposio sources as citationsIf you paste themIf you built the DBJira macros
  • Pick Kraken Deep Search if

    The wiki has to retrieve the web, and you are not willing to hand the language model a browser.

  • Pick ChatGPT if

    You want an answer with browsing in one tab, and you accept that the retrieval is theirs.

  • Pick Notion if

    Q&A over your own pages is enough. You do not need a private search engine.

  • Pick Confluence if

    Rovo is already in the Atlassian bill, and leaving the retrieval there is a political fact.

Kraken Ask is the surface. You pick a model the workspace is allowed to use. The API validates that, then either streams a short turn or mints a durable AIJob and returns. The browser does not hold the research loop open. If you close the tab, the job is still a row.

The actual architecture

  • shellstack-api and qcluster call only CRW (CRW 0.31 in our stack). One URL, one API key.
  • CRW owns retrieval. Behind it, on a private Compose network: SearXNG, Lightpanda, then Chrome. Those ports are not public.
  • Phases persist on the job: preparing, search, scrape, read, results, think, write, memory, done — or a safe failure. Citations stay with the job.
  • PDF extraction in Kraken’s attachment pipeline also uses CRW. Same boundary. Django does not grow a second scraper.
  • Coolify: only CRW gets a domain. SearXNG, Lightpanda and Chrome stay on the research network. Same key on the API and the worker.
  • The optional Browserless stealth Chrome is SSPL-3.0. Review that licence before you turn it on. Default Chrome is the honest path.

What we refuse to do

Never point Django or a Shelly browser bundle at SearXNG, Lightpanda or Chrome. If a future feature needs a page fetch, it goes through CRW. That is the whole point of having a retrieval service.

Composio as a research source

The same workspace connections you use for GitHub and calendar can be read-only research sources. Kraken Deep Search will search connected apps, bound the tools and the hits, and treat them as citations — not as a prompt dump. Tokens stay in the API process. The browser never sees a Composio secret.

If the model needs the web, give it a retrieval service. Do not give it the network.

Use this stack when research has to sit beside the document, and the scraper is not allowed on the same network as billing.

Keep reading

Painted constellation of Tides, TurtleTime, Kraken and Shelly panels around the ShellStack hex-and-terminal icon
Suite

ClickUp is one app. We did not want one app.

ClickUp jams every job into one window. Notion jams every job into a page tree. Jira jams every job into an issue tracker. We built five apps and one organisation.

  • ClickUp
  • Jira
  • Notion

Read