It is sent to our server only to run the extraction you asked for. It is held in memory for at most 30 minutes and then discarded. It is never written to disk or saved otherwise. Your browser might remember the key locally so you do not have to retype it the next time you visit Metalens. However, that copy of your key lives in your browser only and not on our server.
The PDF is uploaded to our server, which renders its pages and sends either the page images or the extracted text, together with the prompt, to the model provider you chose. The whole content of the document therefore reaches the provider.
If you provided your own API key, this runs through your own provider account under that provider's data policy. If you use Metalens credits via an account, it is our account at Google, and the Gemini API terms apply. Provider policies differ and change; check the current one before uploading sensitive material. If nothing may leave your machine, run the software locally with a local model (see below).
Everything you upload is deleted automatically two hours after your last activity. Download your results as JSON or CSV from the review screen before then; no account is needed for that. You can also delete everything at once with the link below.
Your data stays until you delete a paper or a dataset. Deleting removes the PDF, the page images, the raw model response and the records.
The hosted service runs in the United States (Fly.io, Virginia) with files in Cloudflare R2 object storage. If you are bound by an institutional data agreement that rules this out, you can run a local version of this yourself. You can find the Metalens code at github.com/johanna-einsiedler/metalens and a Python package for running MASEMiner locally at github.com/johanna-einsiedler/maseminer.
Not directly. In the hosted version the PDF is read and the model is called by our server, not by your browser. An address such as http://localhost:11434 therefore points at our server, where no model is running, and the connection fails.
localhost works and neither the PDF nor the text leaves your computer.Yes. The software is open source (MIT) and runs on your own computer as the metalens command: the same engine with an embedded database and no account. Your PDFs, page images and data stay in one folder on your machine. Use it when papers may not leave your computer, when several coders should review the same papers independently, or to work with a model that runs on your computer.
uvx metalensIf that reports that the package cannot be found, install it straight from GitHub instead:
uvx --from git+https://github.com/johanna-einsiedler/metalens metalensThe first start takes a minute. Your browser then opens
http://127.0.0.1:8775. Keep the terminal open while you work; Ctrl+C in the terminal stops Metalens. Run the same command to start it again..metalens in your home folder: the database, the PDFs and the page images. To keep a project in its own folder, start with --data-dir, for example uvx metalens --data-dir ~/my-review, and use the same option every time. Back up by copying the folder while Metalens is stopped..json file: under Presets in My workspace, press Load preset file. Or copy the file into the presets folder inside the data folder and reload the page..json file per paper next to its PDF) go in through the Import page and need no model. To extract with a model, enter your own API key on the extract page, or choose "Local / self-hosted" as provider and give the address of a model server on your computer (Ollama, LM Studio, vLLM, for example http://localhost:11434); then nothing leaves your computer.To update to the newest version, start once with uvx --refresh metalens. MASEMiner, the version with the MASEM presets only, starts the same way with maseminer in place of metalens (data in .maseminer, address http://127.0.0.1:8765). Both can be installed side by side.
No. Papers, datasets and presets are private to you until you publish a dataset. Publishing shares the extracted records, the evidence quotes, the preset and your verification history, but not the PDFs or page images.
It opens a pull request in the public datasets repository on GitHub; once merged, the dataset is listed in the data catalogue with a citation that points at the GitHub copy. A merged dataset is in git history and in any fork, so it cannot be withdrawn afterwards; corrections are published as a new version.
You are responsible for that, which is why the upload step asks you to confirm it. Two rules of thumb:
If a PDF contains personal data, data-protection law applies to the transfer to the model provider and to our servers.