Features
What jade does with your documents
A native Windows app (Flutter) that starts a local Python backend, listening on 127.0.0.1 only.
Search and sources
- Hybrid search
Vectors and BM25, merged, then reranked. The embeddings run on the CPU, locally.
- Numbered sources
Every answer from your documents lists the passages it used.
- File types
.docx .xlsx .xls .pdf .txt .md .csv .html .htm .odt .eml .msgand, best effort,.pst. - OCR
Local OCR for images and scanned PDFs is optional, and not in the installer.
Three modes
Chosen on the home screen, or left to automatic.
- Your documents
Searches the index and answers from the passages it finds.
- Web search
Uses your SearXNG, or DuckDuckGo directly from the PC when none is configured.
- Create a file
Word, Excel, PDF, PowerPoint, CSV, text, Markdown and HTML files, in
Documents\Jade.
Conversations
- Organised
Folders, pins, search, Word export and a local memory across conversations.
- Incognito
An incognito mode keeps nothing.
- Encrypted
Conversations are encrypted with the Windows account key. Use the backup to move them to another machine.
What leaves the machine
The documents stay. This is what goes out.
- The question and short excerpts
Sent over HTTPS to the inference server you configure (Ollama behind Cloudflare Access).
- Every outbound call is logged first
Each call is written to
outbound.jsonlbefore it is sent. Open it to check what leaves. - No telemetry, no cloud API
ChromaDB telemetry is off.
- NTFS rights
A user never gets an excerpt of a file they cannot read.
Running it
- Workstation or RDS server
On an RDS server each session gets its own backend on its own port.
- Updates
An update check against the latest release of a Gitea repository you configure: a button on workstations, a nightly scheduled task on RDS servers.
- Licensing, off by default
The repository holds an optional licence server, for whoever runs jade for customers and manages subscriptions. It is off by default (
LICENSE_ENABLED=0). When it is on, sending questions is blocked at the end of a term, and the history stays readable. See Licensing.
What it does not do
- Other systems
Windows 10 and 11 (x64) only. There is no macOS or Linux build or installer.
- Other languages
The interface and the answers are in French only.
- Answer without a server
It needs a reachable inference server. Without one, jade cannot answer.
- Keep excerpts on the PC
The question and short excerpts do leave the PC, by design. Web search sends the question to your SearXNG, or to DuckDuckGo when none is configured.
- Ship a signed installer
There is no GitHub release: you build the installer yourself. It is not code-signed, so SmartScreen shows an unknown publisher.
- Protect secrets from local processes
The secrets in
.envare sealed with DPAPI at machine scope, so any local process on the same machine can decrypt them. On a shared RDS server, restrict the Cloudflare service token. - Encrypt backups
Backups (
.jadebak) are not encrypted. - Index in real time
There is no Windows indexing service. The index is rebuilt every 30 minutes by default (
REINDEX_MINUTES).
Build jade
There is no published installer. The steps and the prerequisites are on the download page and in the docs.
$ git clone https://github.com/yetysw/jade.git && cd jade
$ python -m venv .venv
$ .venv\Scripts\activate
$ pip install -e .[dev]
$ cd flutter_app && flutter build windows --release && cd ..
$ python -m PyInstaller jade.spec --noconfirm
$ "%LOCALAPPDATA%\Programs\Inno Setup 6\ISCC.exe" installer\jade.iss