Repository navigation
Releases: cgaeking/rootmind
Release list
RootMind 2.6.1
Added
GET /proof?nonce=<hex>on the REST API and on MCP over HTTP (loopback only) (#70): answers, without a token,HMAC-SHA256(token, "rootmind-token-proof\0" + nonce), so a client can check that the server on a port knows the token before it sends it.
Changed
- Desktop: the agent's steps open and close with a click on their summary, also while the question runs ("Working: 7 steps, 0:42"). They start closed; while the question runs, the current step with its timer stays visible below the summary. Each step takes one line; a long search term or file list is cut off and shows in full on hover.
Fixed
- Windows:
service install(and so the installer, "error 7") and the app refused a running RootMind service with "Another program listens on 127.0.0.1:8000" on systems whose TCP listener table does not list the service's socket (#70).service install, the app and therootmindcommand line now let the service prove that it knows its token (GET /proof) before they send it, instead of looking up the port's owner in that table; a program that took the port cannot give the proof and still never receives a token. A service from before this release is checked in the table as before. - A service whose port another program already uses (for example a development server on port 3000) now logs "Port 3000 on 127.0.0.1 is already used by another program" instead of a
WinError 10013traceback (#70);rootmind apisays the same. The service manager still restarts the service, so it starts once the port is free. - Desktop: the chat scrolls along while new steps of a question come in, as long as it is scrolled to the end; scrolled up to read, it stays where it is.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (42.0 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.
RootMind 2.6.0
Added
POST /query/stream(#65): the same question asPOST /query, with the agent's steps as server-sent events while it works: astartevent (iteration limit, provider, model), onestepevent when a model or tool call starts and when it ends (the tool and its arguments, hits and the names of the files found, the windows read, duration, tokens), thenresult(thePOST /querybody) orerror. A comment line every 10 seconds while a step runs tells a long step from a lost connection. Closing the connection cancels the question: no further model or tool calls start (a model call already sent finishes in the background and its result is discarded). Steps carry no document text.POST /query, the command line and MCP are unchanged.- Desktop: the chat shows the agent's steps while a question runs (#65): each model call (step n of the limit), search (terms, file type, hits and the first file names), listing and read (file and page), with a running timer on the current step, so a long step is visibly working and the bounded loop is visible. After the answer the steps stay with it, collapsed ("How it searched: 5 steps, 8.9 s"). Stop now ends the question in the service too, and the message says after how many steps; steps that were running are marked as stopped. Instead of the 15-minute limit for a whole question, the app gives up only after two minutes without any sign from the service. With a backend without
POST /query/stream(older than this release) the app asks as before, without steps.
Fixed
- A full-text search could take minutes on an index with very large documents (#65): highlighted snippets were computed for every row ranked above the deepest returned result, including large spreadsheet and CSV exports that a file type or folder filter dropped afterwards. On a real index (18,811 documents, 2.1 billion characters) one agent search for
"Sehr geehrte" Schulzwith a PDF filter took over nine minutes. Snippets are now computed only for the results that are returned; which documents are found, their order and their snippets are unchanged.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (42.0 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.
RootMind 2.5.0
Added
- Command line for the running service (#35):
rootmind status,folders list|add|remove,index [--full] [--folder N] [--wait],search,ask,config llm,mcp tokens listandremote-access on|off|status, each with--json, in therootmindcommand and in the backend executable (rootmind-backend). They find the service of the account like the app does (service status, then a check that the service's own process listens on the port), read the REST token from its protected file and say clearly when the account cannot read it. API keys and the ngrok authtoken come from a file or stdin, never from an argument, and no secret is printed, not even masked.--urland--token-file(orRLM_URLandRLM_TOKEN_FILE) point the commands at another REST API; plainhttp://only to loopback. The README has a new "Command line" section. - Named MCP tokens with a folder scope (#35):
rootmind mcp tokens create <name> [--folders a,b] --out FILE,listandrevoke(andGET/POST/DELETE /mcp/tokens). The token is shown once (written to a new file, mode 0600 on Linux) and stored only as its SHA-256 inconfig.yaml; its folders limit what its searches, reads, listings and statistics see. A new or revoked token takes effect with the next request, without a restart. The existingdata/api_token.txtis the token nameddefault, so existing clients keep working. - Serving MCP to other machines:
mcp_http.networkinconfig.yamlmakes the service's MCP process also listen on another address, with TLS (tls_cert,tls_key), on a loopback port for a reverse proxy, or with plain HTTP only wheninsecure_http: true. It requiresmcp_http.allowed_hosts(checked against theHostheader) and accepts only named tokens unlessallow_default_tokenis set; the loopback listener is unchanged.mcp_http.allowed_originsextends the Origin allowlist. New guide docs/SERVER.md ("Run RootMind on a server": a dedicated account with lingering, folders, tokens, TLS or Caddy/nginx, clients) and a threat model for server use in SECURITY.md. rescan_minutesper folder (rootmind folders add --rescan-minutes N) re-scans that folder every N minutes, for mounted network shares where changes made on other machines raise no event.- Optional tracing of the question loop (#48, part 1), off by default. One span per model call (purpose, tokens, stop reason, tool requests, duration) and per tool call (arguments, result size, the documents a search returned, the window a read returned).
scripts/run_evals.py --trace <folder>writes a JSONL file and a readable Markdown summary per eval run, and each run in the results carries itstrace_id.tracing.local: trueinconfig.yamlwrites the same files underlogs/traces/in the data folder.tracing.langfuse: true(orrun_evals.py --langfuse) exports to Langfuse with the new optional extrarootmind-backend[tracing]and theLANGFUSE_*environment variables. With tracing off, the loop makes no tracing calls and loads no tracing code. Traces contain questions and document text but never API keys; SECURITY.md lists what they hold and where they go. - Each release now updates RootMind's entry in the official MCP Registry (
io.github.cgaeking/rootmind, therootmind.mcpbbundle) automatically (#49). A new job at the end ofrelease.ymlrendersserver.jsonfrom the templatepackaging/mcpb/server.jsonwith the version, the release's download URL and the SHA-256 of the publishedrootmind.mcpb(scripts/registry_server_json.py, checked againstSHA256SUMS.txt), validates it against the vendored schema and withmcp-publisher validate, and publishes it with a pinned, checksum-verifiedmcp-publisherthrough GitHub OIDC (no stored secret). Prereleases are not published; dry runs render and validate only. A registry failure leaves the GitHub release as it is and can be re-run.scripts/check_versions.pyalso checks the template's name, schema and placeholders. - Evals: a LangGraph baseline (#48, part 2).
scripts/run_evals.py --agent langgraphruns the 16 cases with RootMind's tools (same executors, so identical tool results), the same system prompt, model endpoint and scoring in LangChain's stock agent (langchain.agents.create_agent, LangGraph). It lives inbackend/evals/baselines/langgraph/with its own exactly pinned environment (langchain 1.4.7, langgraph 1.2.17, langchain-openai 1.7.2); the backend and its lock file do not depend on LangChain.--compare A.json B.jsonprints two live results side by side. Measured withgranite4.1:8bthrough Ollama, 3 runs per case: both agents 98%, 15 of 16 cases every run, about the same tool calls, tokens and latency; table and caveats inbackend/evals/README.md. Hosted models were not compared. examples/langchain_mcp/: RootMind's MCP server as tools in a LangChain agent throughlangchain-mcp-adapters, with an offline test against the real stdio server.
Changed
rootmind mcp-http --hostwith an address other than loopback now needs--tls-certand--tls-key, or--insecure-httpfor plain HTTP.- The
get_statisticstool counts only the documents of the folders the request may see. rootmind indexnow asks the running service to index. It still indexes in its own process with the new--local, with a global--config, whenRLM_HOMEis set, or when the account has no RootMind service;--connectoris now also spelled--folder, and--jsonprints the result.
Fixed
- Sources of an answer that names a search hit by its document id instead of its file name: the answer now cites that document, not every document the search returned (#47).
- Evals: the live checks failed correct answers that used typographic characters, which
granite4.1:8bdoes in most answers (a narrow no-break space in "1.1 kg", non-breaking hyphens in "2026-04-30"). Unicode spaces, hyphens, dashes, curly quotes and Markdown emphasis now count as their plain forms, and c14 accepts "not contain", "not available" and "cannot be determined" as "not found" (#47). Measured results for the local model inbackend/evals/README.mdand the README changed accordingly. - When the model ended a turn with an empty reply (no text, no tool call), typically right after a successful search, that empty turn became the answer ("The model stopped without producing an answer"). Seen with granite4.1:8b through Ollama in the eval runs for #47. The agent now asks once more for the final answer from the results so far, for every provider; the retry counts against the iteration limit, and in the last iteration the existing final call takes its place. If the second reply is empty too, the answer says so clearly. Empty replies with a refusal or content-filter stop reason are reported as before.
- Search hits got a page, slide or sheet (and a suggested read window) only when the whole query occurred word for word in the document (#55). Models search with several words ("Ultralight 1P tent target weight"), so most hits had no location, and answers cited none or a wrong one (in the #47 eval traces "Page 1" for a fact on page 2). The position now comes from the full-text match itself: the place in the shown snippet where the most query terms occur together on one page, slide or sheet.
- A
read_documentcall for a window that earlier reads of the same question already returned now carries a note that the text is already in the conversation, with a wider window to read instead. In the #47 traces a local model re-read 30–150-character windows of one invoice eight times until the iteration limit (48k tokens instead of about 5k). The text is still returned.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (41.9 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algor...RootMind 2.4.0
Added
- Ollama as a fourth LLM provider (#37): the question loop runs against a local Ollama server through its OpenAI-compatible API, with no API key. Choose Ollama in Settings → LLM (server address, model list from the server; the address is checked before it is saved) or set
provider: ollamaandbase_urlinconfig.yaml. The first call is not forced to use a tool, because not every model supports that; an answer that never searched is retried once with an explicit instruction. A missing model, a model without tool support and an unreachable server give readable errors.scripts/run_evals.py --provider ollamaneeds no key. The README documents what stays local and how to raise Ollama's context length.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (41.8 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.
RootMind 2.3.4
Fixed
- Desktop: the waiting hint in the chat ("Thinking …") was always German ("Denkt nach …"), also with the English interface. It now follows the interface language.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (41.8 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.
RootMind 2.3.3
Fixed
- The agent gave up after one search when the hits did not contain the answer, e.g. "Mitarbeiterzahl der Telekom Austria" against an English annual report that lists "T‑Mobile Austria Holding GmbH" with its "average number of employees". It now searches again in the documents' language and with other names for the same thing, tries at least three searches before saying something is not there, and says when the documents name it differently.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (41.8 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.
RootMind 2.3.2
Added
- Linux: installing the .deb or .rpm now prints how to start the app (
rootmind-desktop); the README and quickstart say it too, and the README explains how to run RootMind under WSL (systemd on).
Fixed
- Linux: with the dark theme, drop-down fields (theme, language, model) showed light text on a light box, because WebKitGTK draws native selects in the GTK theme; they now follow the app's palette.
- Linux: when the systemd user manager cannot be reached, the message now also says how to turn systemd on under WSL.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (41.8 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.
RootMind 2.3.1
Fixed
- The agent could answer a question without ever searching the user's documents, most
visibly on questions that sound like they are about private information ("do you know my
tax number?"): some models fall back to a trained "I don't have access to that" refusal
instead of trying thesearch_documentstool that exists for exactly that, and a soft
prompt instruction ("start with search_documents") did not reliably override it on every
model. The first LLM call of every query now forces a tool call (Anthropic
tool_choice: {"type": "any"}, OpenAI/xAItool_choice: "required"); later iterations in
the same query are unaffected and the model can still answer once it has enough.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (41.8 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.
RootMind 2.3.0
Added
- RootMind for Linux (#21). Each release ships
RootMind-amd64.deb(Ubuntu, Debian),RootMind-x86_64.rpm(Fedora, openSUSE Tumbleweed) andRootMind-x86_64.AppImage(other distributions), built with Tauri on Ubuntu 22.04 (glibc 2.35 or later, x86-64). The app, its window, chat, search, folders, settings, remote access and MCP over HTTP work as on Windows; the texts name systemd user services where Windows names a Windows service. - The background service on Linux runs as two systemd user services of your account,
rootmind-backend.service(REST API and indexing) androotmind-mcp-http.service(MCP over HTTP, on by default), in~/.config/systemd/user/. No root, no system-wide daemon and no administrator prompt: the app sets them up on its first start and updates them when the app is newer than the service (after a package update), with Set up and Repair in Settings › RootMind service as the fallback and the error shown when that fails. The services start when you log in;loginctl enable-lingerkeeps them running without a login (for example for n8n). rootmind-backend service install | uninstall | status [--json]on Linux, with the same options (except--user-sid), the samestatus --jsonshape (plusunit_diranddata_dir) and the same exit codes where they apply; 11 means that the account's systemd user manager cannot be reached (for example undersuorsudo), and 8 that it runs as root. The data folder is$XDG_DATA_HOME/rootmind(default~/.local/share/rootmind) with the same layout as on Windows: folders 0700 and token, authtoken and config files 0600, created with those modes; an existing folder is used only when it belongs to the account and nobody else can change it (else exit 6), and the service checks the folder and its secret files again when it starts.service installcopies the program intoruntime/<version>-<id>/of the data folder (an AppImage runs from a temporary mount), points the units there and deletes older copies once the new one runs; it refuses to copy from a folder another account can change (exit 10). It writesservice.json(where the copy is; no secret) for the Claude Desktop bundle.uninstallremoves the units and the program copies and keeps the data unless--purge.- The service reports ready to systemd once it listens (
Type=notify). A config, token or folder error ends it with exit code 2, which systemd does not restart; any other failure is restarted after 5 seconds. Like on Windows,service installand the app send a token only after checking that the unit's own process listens on the port (Linux:/proc/net/tcpand the process's sockets). rootmind-backend-linux-x64.tar.gz: the Linux backend on its own, for the command line and servers.- The Claude Desktop bundle (
rootmind.mcpb) also runs on Linux: it asks the program copy named in~/.local/share/rootmind/service.json(else/usr/lib/RootMind/backend/rootmind-backend) forservice status --json, looks it up again for every connection, and words its hints for Linux. - CI: the Linux backend build with its smoke test (PowerShell 7) and an end-to-end test that installs, checks, updates and removes the systemd user units on GitHub's Ubuntu runner (
backend-exe.yml); a Linux build and test of the desktop app's Rust shell (desktop.yml); the Linux packages in the release, checked by installing the .deb and running both packaged backends, with checksums and attestations (release.yml).
Changed
- The
servicecommands say "runs on Windows and Linux only" elsewhere (exit code 2). The Windows service, its installer and their behavior are unchanged. - Release notes list the Linux downloads.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (41.8 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
RootMind-amd64.deb |
The Linux app for Ubuntu and Debian: sudo apt install ./RootMind-amd64.deb. On its first start it sets up its background service as systemd user services of your account; no root needed for that. |
RootMind-x86_64.rpm |
The same for Fedora and openSUSE Tumbleweed: sudo dnf install ./RootMind-x86_64.rpm (openSUSE: sudo zypper install ./RootMind-x86_64.rpm). |
RootMind-x86_64.AppImage |
The same as an AppImage for other distributions, without installation: chmod +x RootMind-x86_64.AppImage, then run it (needs FUSE 2, libfuse2). |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own for Windows, for the command line and servers. Not needed for the app. |
rootmind-backend-linux-x64.tar.gz |
The backend on its own for Linux (x86-64, glibc 2.35 or later), for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.
RootMind 2.2.0
Added
- Remote access (ngrok) for cloud assistants (Grok Bot, a cloud-hosted n8n, other web agents), off by default (#27). Settings → RootMind service → Remote access (ngrok) takes an ngrok authtoken (write-only: once saved only "Saved" is shown) and an optional reserved domain; one checkbox, after a confirmation that anyone with the MCP token can read every indexed document and that what a cloud assistant reads goes to its provider, gives MCP over HTTP a public HTTPS address. The status (off, connecting, connected with the public MCP endpoint and Copy, or ngrok's error) is shown in the same place. The tunnel runs inside the
RootMind-MCP-HTTPservice with ngrok's open-source Python SDK (no ngrok program is installed), forwards only to the MCP server, starts with the service, survives updates, reconnects with growing pauses, and closes within seconds when turned off. Requests through it still need the MCP token and pass theOrigincheck. Disabled while MCP over HTTP is off; turning MCP over HTTP off also turns remote access off. No administrator approval is needed. - REST API:
GET /remote-accessandPOST /remote-access(bearer token). The authtoken is stored in%ProgramData%\RootMind\data\ngrok_authtoken.txt, readable only by SYSTEM, Administrators and the MCP service account, never inconfig.yaml, never returned and never logged;enabledanddomaingo toconfig.yaml(remote_access). The MCP service reports the tunnel's state indata\remote_access.json, the one file in the data folder it may write. - The smoke test checks that the packaged backend imports the ngrok SDK and that remote access is off by default; the service end-to-end test checks the new files' permissions.
Changed
- Docs: "Reach RootMind from cloud assistants" now starts with the built-in remote access; your own tunnel (Tailscale Funnel, the ngrok agent) remains the alternative. SECURITY.md describes the threat model of the public address and how the authtoken is stored.
Downloads
| File | What it is |
|---|---|
RootMind-Setup-x64.exe |
The Windows app with its background service (41.8 MB). Installs for all users of the computer and sets up the service for your account; needs one administrator approval, no Python. |
rootmind.mcpb |
RootMind for Claude Desktop: double-click it and Claude Desktop installs it. Needs RootMind installed with Serve MCP over HTTP on (the default). |
rootmind-backend-windows-x64.zip |
The backend on its own, for the command line and servers. Not needed for the app. |
SHA256SUMS.txt |
SHA-256 checksums of these files. |
Verify the download
The binaries are not code-signed yet. On the first start, Windows SmartScreen may show "Windows protected your PC" (choose More info, then Run anyway), and Smart App Control, when it is on, may block them; it has no exception for a single app. Check the files before you run them. The hash must match the line for the file in SHA256SUMS.txt:
(Get-FileHash .\RootMind-Setup-x64.exe -Algorithm SHA256).Hash.ToLower()sha256sum --check --ignore-missing SHA256SUMS.txt
gh attestation verify RootMind-Setup-x64.exe --repo cgaeking/rootmindEvery file has a build provenance attestation that ties it to this repository and to the workflow run that built it.
Code signing policy
See CODE_SIGNING.md: the binaries are not code-signed yet; what will be signed, team roles and the privacy policy.