A deep-research supplier pinch an enforced budget, verified quotes, and a privacy bound for section data.
Ask a question. mole decomposes it, searches, sounds sources, extracts claims, checks each declare against the matter it came from, looks for contradictions between them, and writes an reply pinch citations. Every exemplary telephone is reserved against a budget earlier it happens and settled after, truthful the ceiling you group is the ceiling it hits.
It runs arsenic a azygous fixed binary connected your machine, uses your ain API keys, and speaks MCP truthful a coding supplier tin thrust it — either by handing mole a mobility and collecting the answer, or, successful toolkit mode, by doing the reasoning pinch its own model while mole supplies the parts that are not exemplary calls.
Three things mole does that a chat interface pinch web hunt does not.
The fund is enforced, not estimated. Every telephone is reserved earlier it is made and settled after, against a ledger pinch non-negative constraints successful the database schema itself. --usd 0.50 intends the tally stops astatine 50 cents. Measured overshoot crossed the trial corpus is 0%.
Every declare carries a quote, checked against the source. A declare whose quote does not look verbatim successful the page it was mined from is discarded astatine extraction, before it tin scope an answer. Claims that past tin beryllium re-read against their source afterwards, and 1 that turns retired not to beryllium supported is marked arsenic specified in the study alternatively than softly dropped.
Your section information stays local. Point mole astatine a CSV aliases a files and it will analyse it without the contents leaving your machine: the exemplary chooses a hypothesis template and file names, mole renders and runs the SQL, and only aggregates — counts, means, trial results, buckets covering astatine slightest 5 records — are allowed back. mole crossings shows you precisely what left.
Script — Linux and macOS, amd64 and arm64:
Downloads the merchandise archive for your platform, verifies its SHA-256 against the checksums published pinch the release, and installs mole and mole-mcp into ~/.local/bin (or /usr/local/bin if that is writable). It uses sudo only if the target directory needs it, and --dry-run shows what it would do. If piping a script into a ammunition makes you uneasy — reasonable — publication it first, aliases usage 1 of the paths below.
Homebrew — macOS and Linux:
Fully qualified, and it has to be: an unrelated mole (a macOS cleanup tool) is in homebrew/core, truthful brew instal mole will ever mean that one. Both instal a binary called mole, truthful only 1 tin beryllium linked astatine a time.
Arch Linux — from the AUR:
Not mole: that sanction and mole-bin connected the AUR beryllium to an SSH tunnelling tool that has held them since 2020. The package installs /usr/bin/mole and declares the conflict, truthful pacman will show you alternatively than overwrite anything.
Debian and Ubuntu — .deb from the releases page:
An .rpm is published for the aforesaid platforms.
From source — needs Go 1.25+:
Or clone and make install, which stamps the type truthful mole type reports the tag alternatively than dev.
Every way installs the aforesaid thing: 2 fixed binaries pinch nary runtime dependencies, built CGO_ENABLED=0. The database is SQLite, created connected first use under your XDG information directory.
You request a hunt supplier and a exemplary provider. Keys unrecorded in ~/.config/mole/config.json, mode 0600 — ne'er successful situation variables that leak into process listings, and ne'er successful .mcp.json.
Any OpenAI-compatible endpoint useful — DeepSeek, Ollama, llama.cpp, vLLM, a proxy:
A exemplary served from localhost is priced astatine zero and still counted successful tokens, so --tokens bounds a self-hosted tally that costs nary money astatine all.
Budget is required, and the 2 units are mutually exclusive. Only dollar mode can price a hunt call; only token mode tin bound a exemplary whose rates mole does not know.
Answers from the claims that convention already collected. No caller searching, nary new spending beyond the 1 telephone to building the answer.
Build a dataset alternatively of prose
! marks the section that identifies a row. Rows are merged crossed sources by fuzzy key, truthful Aldi and Aldi UK go 1 statement pinch 2 sources. CSV holds 1 value per compartment and says truthful — it carries a root count and a contested file naming the fields the sources disagree about. JSON carries each disagreeing worth with the sources down each.
CSV, TSV, JSON and JSONL are supported; Parquet is not. The exemplary ne'er sees a row and ne'er writes SQL — it picks a template and file names, and mole renders the statement.
Listens connected a unix socket, mode 0600, successful a backstage directory, and refuses connections from immoderate different user. Point a customer astatine the shim:
No credentials successful that record — the shim forwards to the daemon, which holds them.
Use the subscription you already salary for (toolkit mode)
The statement supra has mole ain the model: it plans, mines and writes pinch your API key, and the coding supplier driving it is pressing a button. Toolkit mode inverts that. The agent's exemplary does the reasoning; mole contributes the deterministic half — which is the half worthy having, and the half that does not attraction whose model is connected the different broadside of it.
If you are wrong Claude Code aliases Qwen Code connected a subscription, your exemplary tokens are already paid for. This is the mode for that.
Fourteen tools, each named mole.<tool>, alongside the research.* devices — the flag adds a aboveground alternatively than replacing one:
| session | session_open, session_close |
| retrieval | search, fetch — done mole's SSRF guard, robots handling and complaint limiter |
| evidence | verify_quote, claim_add, claims_list, citations |
| local data | connect_list, aggregate — the privateness boundary, unchanged |
| graph | pairs_candidates, edge_add |
| dataset | rows_add, dataset |
Three character types provender the aforesaid graph. web searches and sounds pages. academic queries Crossref, OpenAlex, arXiv and PubMed, deduplicates by DOI and prefers open-access afloat text. local_compute runs deterministic SQL complete data you registered and ne'er lets a statement scope the model.
Toolkit mode runs the aforesaid machinery pinch the arrows reversed: the supplier decides what to search, what to publication and which claims relate, and mole does the quote checking, the brace retrieval, the merging and the SQL rendering. Both modes stock 1 transcript of each — the aforesaid AcceptRow for dataset rows, the aforesaid aggregation gate, the same lexical retriever — truthful a toolkit chart and an autonomous 1 are built the aforesaid way.
mole grades its ain runs. mole eval <session-id> prints a scorecard, and any metric it cannot compute says truthful alternatively of softly reference zero.
| budget overshoot | 0% — nary tally has exceeded its ceiling |
| claim integrity | 100% — each stored declare carries a root and a verbatim quote |
| citation accuracy | 100% — each quote recovered successful the root it cites |
| grounding rate | 80% — of claims re-read against their source, confirmed |
| contradiction precision | 70% pinch the corroborate pass, 51% without |
| merge precision / recall | 1.000 / 1.000 connected constructed crushed truth |
Bug reports and issues are welcome. Code contributions spell done a CLA — see CONTRIBUTING.md, which explains what it is for and what it cannot do.
Maintainers: the merchandise runbook is RELEASING.md.
The 1 believe this task asks for that astir do not: falsify your ain fix. After a change, revert the system and corroborate the trial fails. A trial that passes with the hole removed proves nothing, and respective of this project's ain tests have been caught doing precisely that.
Apache-2.0. See LICENSE and NOTICE.
English (US) ·
Indonesian (ID) ·