Local Offline Search Tool — a web search engine that runs entirely on your computer.
The database is stored locally, nothing is ever sent anywhere, and there's no search history. It keeps finding results with no internet connection at all.
lostlost -s # web UI and Web API on http://127.0.0.1:1057
lost -s -a 0.0.0.0 -p 8080 # serve the local network on port 8080
lost -b # same as -s, but in the background
lost -w # run desktop app and web server togetherlost hacker news # Search for hacker news website
lost cache:https://slashdot.org # View stored copy in the terminal
lost -f json rust -site:crates.io # Output search results formatted as JSON
lost --suggest "rust comp" # autocomplete
lost --suggest "how to _ catfish" # autocomplete, fill in the blanklost -d hacker-news.csv # import a BigQuery export of bigquery-public-data.hacker_news.full
lost -d CC-MAIN-…-00000.warc.wet.gz CC-MAIN-…-00000.warc.wat.gz # import Common Crawl data
lost --imports # list past imports to see what's in the database
lost --remove-import 3 # remove import along with all pages that came from it
lost -e rust.lost rust compiler # export what a search finds (or everything: lost -e all.lost)
lost -e rust.lost --sign rust # the same, signed with your ID (exports are unsigned by default)"exact phrase""how to * catfish"-excludeOR( )site:intitle:allintitle:inurl:(inurl:gemini://,inurl:.onion/)allinurl:intext:allintext:filetype:link:contains:(contains:pdf: pages linking to PDFs)related:(related:example.com)lang:/language:(lang:de,language:german)near:(catfish near:3 cornmeal)word*(catf*)
LOST searches through whatever datasets you import. It comes out of the box with two pages (the front pages of Hacker News and Slashdot), so you could start seeing it in action right away.
- Common Crawl (WET and WAT files)
- Hacker News (BigQuery CSV export)
.lostfiles — LOST's own format- Gemini, Gopher, Spartan, Nex, Finger,
.onion, I2P, IPFS, Arweave, Nostr, TON and Swarm — crawled withlost-spider(see below)
Common Crawl is a 501(c)(3) American non-profit organization that crawls the internet and provides a free, open-source archive of web data to the public. Their datasets are available for free to anyone here. The combined full size of their latest dataset is over 20TiB.
Here's one of the ways to obtain a small piece of their data:
curl -s https://data.commoncrawl.org/crawl-data/CC-MAIN-2026-39/wet.paths.gz | zcat | head -c 500000000 > sample.wet
curl -s https://data.commoncrawl.org/crawl-data/CC-MAIN-2026-39/wat.paths.gz | zcat | head -c 500000000 > sample.watThe Hacker News public dataset is available on Google BigQuery. The dataset is part of the Google Cloud Marketplace Public Datasets and contains over 50 million rows (stories, comments, job posts) derived directly from the official Hacker News Firebase API. Merging this dataset into your LOST database will allow you to search through pages of Hacker News locally. The full size exceeds 50GiB.
Sample SQL command to select a chunk of data:
SELECT * FROM `bigquery-public-data.hacker_news.full` WHERE timestamp >= '2026-01-01' AND timestamp < '2026-10-10';LOST is capable of importing and exporting .lost dataset files, which makes it possible to freely and safely exchange crawl data with other LOST users. They aren't signed unless you ask (lost -e FILE --sign, or the "Sign it" checkbox): a signature lets others tell which files are yours and keeps your database from getting corrupted or spammed, but it also says who made the file. Both exports and imports can be made either via CLI (see Usage) or GUI (Settings → Data).
LOST itself never goes online. For Geminispace, Gopherspace, Spartan, Nex and Finger, .onion sites, I2P sites, IPFS, Arweave, Nostr, TON Sites and Swarm there's lost-spider, a separate crawler that isn't built or installed by default:
cargo install lost --features spider # or: make spider
lost-spider gemini # crawl all of Geminispace
lost-spider gemini --link example.org -o my.lost # start at a capsule nothing links to
lost-spider gemini --link example.org --dont-crawl # only that page, nothing else
lost-spider gemini -c -o my.lost # carry on where it stopped
lost-spider gopher # crawl all of Gopherspace
lost-spider spartan # Spartan capsules (Gemini without TLS)
lost-spider nex # Nex servers
lost-spider finger --link finger://plan.cat/someone # people's .plans
lost-spider onion # .onion sites, through Tor (127.0.0.1:9050)
lost-spider i2p # I2P sites, through an I2P router (127.0.0.1:4444)
lost-spider ipfs # IPFS sites, through an IPFS node's gateway (127.0.0.1:8080)
lost-spider ipfs --link vitalik.eth # an ENS name, or a CID, or an IPNS name
lost-spider arweave # the permaweb, through a public gateway
lost-spider nostr # Nostr: notes, articles and profiles, from relays
lost-spider nostr --link npub1… # someone's profile and posts first
lost-spider nostr --search "bitcoin mining" # and what relays find for that
lost-spider ton # TON Sites, through a TON proxy (127.0.0.1:8080)
lost-spider swarm # Swarm sites, through a public gateway
lost-spider swarm --gateway http://127.0.0.1:1633 # … or through your own Bee node
lost-spider gemini --proxy socks5://127.0.0.1:9050 # Gemini through Tor
lost -d my.lost # import what it foundIt obeys robots.txt, asks each server for one thing a second (--delay), and saves everything into one .lost file, unsigned unless you ask for --sign. The file is complete even if you stop it with Ctrl-C. See lost-spider --help for search boxes, blacklists, proxies and limits.
onion needs Tor running, ton a TON proxy (rldp-http-proxy -p 8080 -c 3333 -C global.config.json, or Tonutils Proxy), i2p an I2P router (i2pd or Java I2P), and ipfs an IPFS node (Kubo, ipfs daemon), or --gateway https://ipfs.io to ask a public gateway instead (one request at a time). arweave needs nothing: it asks a public gateway (one request at a time), and also goes through everything Arweave stores, newest first, besides following links. Neither does swarm, but public Swarm gateways only serve the sites they allow, so a Bee node of your own (--gateway http://127.0.0.1:1633) reaches more; Swarm has no index, so it follows links only. nostr needs nothing either: it lists what well-known relays have, newest first, and goes from authors to their profiles and the relays they use; every post's signature is checked, and posts meant to expire, or that their authors asked to delete, aren't kept. With --search, relays that can search are asked for each phrase, and an npub1… line in a --blacklist skips that author's posts. I2P is slow: reaching a site for the first time can take a minute or more, so its timeout is 120 seconds by default (-t changes it, for any network), and on a router (or Tor) that has just started, lost-spider waits a few minutes until it can reach sites. Images and other files are never downloaded, only their links. Before crawling .onion sites, lost-spider gets Ahmia's list of onion sites banned for child abuse material and skips them; it won't start without that list. Darknets host all sorts of things, so it's worth keeping a --blacklist with title:/…/ and body:/…/ rules for what you don't want in your dataset.
The local database is stored by default either in ~/.lost/ (Linux, BSD), ~/Library/Application Support/LOST/ (macOS),
or %LOCALAPPDATA%\LOST\ (Windows, i.e. C:\Users\NAME\AppData\Local\LOST\).
cargo build --releasecargo build --release --no-default-features --features clicargo build --release --no-default-features --features cli,servercargo build --release --no-default-features --features cli,guicargo build --release --no-default-features --libcargo build --release --no-default-features --features spider --bin lost-spidermake tarball # (see the Makefile)
make deb # needs cargo-deb
make appimage # needs appimagetoolDownload a package from the releases:
- Debian, Ubuntu, Mint:
sudo apt install ./lost_…_amd64.deb - Any Linux: the
.AppImage— make it executable and run it. Or unpack the tarball and runsudo sh dist/install.sh. - macOS: unzip, drag LOST to Applications. The first time, right-click it and choose Open (it isn't signed yet).
- Windows: unzip and run
lost.exe.
To run the web server as a service (Linux, after installing the .deb or with install.sh):
sudo systemctl enable --now lost, then open http://127.0.0.1:1057.
From source: make && sudo make install (sudo make uninstall to remove).
0BSD.
res/web/mikado.light.min.js is Mikado, © Nextapps GmbH, Apache-2.0.