Installation
Requirements
Section titled “Requirements”- Windows, macOS or Linux. No administrator rights: everything installs into your user account.
- Python 3.12 or 3.13, the versions Latet is tested on. You do not have to install it yourself: uv fetches one when needed.
- At least one supported agent: Claude Code, Codex, OpenCode, Gemini CLI, or a tool that takes an OpenAI-, Anthropic- or Gemini-compatible address (see GitHub Copilot, JetBrains, Zed and other tools).
One-line installer
Section titled “One-line installer”On macOS and Linux:
curl -LsSf https://raw.githubusercontent.com/Latet-AI/latet/main/scripts/install.sh | shOn Windows (PowerShell):
irm https://raw.githubusercontent.com/Latet-AI/latet/main/scripts/install.ps1 | iexThe script does two things, in this order:
- Installs uv, the Python tool manager, if it is not on your machine yet.
- Installs the latest release of Latet from
GitHub as an isolated command-line tool, with uv. Local name detection and text in images come
with it; their models are downloaded only when you ask. Where they cannot be installed, Latet
is installed without them, and the script ends by saying so; a Latet already installed with
them is left as it was instead. If an older Latet is running, it stops it, and does not start
it again. To upgrade,
latet upgradeis the better way. After the script has upgraded a Latet, runlatet start, andlatet agents apply claudeif Claude Code goes through Latet for good, so that it gets the new plugin.
On macOS and Linux, open a new terminal afterwards: the script adds Latet to your PATH for the
terminals you open next, not for the one it ran in.
If that one cannot find latet either, run uv tool update-shell and open another.
The script changes nothing else: none of your agents’ settings, nothing that starts at login. New to
Latet? latet tutorial shows it at work in about 30 minutes. Then run one
session through Latet with latet claude or latet codex, as the
Quickstart shows, and route your agents for good
with latet global-install once it fits your work.
Two environment variables change what the script does:
| Variable | Effect |
|---|---|
LATET_NO_MODIFY_PATH=1 |
Leave your PATH and shell profile alone. If the script installs uv, set UV_NO_MODIFY_PATH=1 too, for uv’s own installer. |
LATET_SOURCE |
What to install instead of the latest release: a wheel file, or a requirement such as latet @ <url>. |
Recommended: names and images from day one
Section titled “Recommended: names and images from day one”Patterns find what has a shape: a key, an email address, an IBAN. Two things have none, and need a model that runs on your computer:
- Names and street addresses in free text, such as Emily Carter lives at 42 Mill Lane: the local name model finds them.
- The text in screenshots, such as an IBAN on an invoice: text recognition reads it, and Latet covers each value on the image with its fake. Without it, images leave as they are.
The installer installs what both run on. Download their models once:
latet ner install # the name model, about 1.6 GBlatet ocr install # the text recognition models, about 31 MBOr let latet global-install --ner --ocr download them with the rest of its setup. Both run on
this computer only: the models come once from huggingface.co, at a pinned revision and checked
against pinned SHA-256s, and nothing is sent anywhere. Name detection and
Text in images below say more about each.
Upgrade
Section titled “Upgrade”latet upgradeIt installs the latest release from GitHub as the installer does, local name detection and text in images included. It stops the daemon first (Windows cannot replace files that are in use), installs the new Claude Code plugin if you use Claude Code, and starts the daemon again. A Latet installed without name detection or text in images gets them this way. Where the new release cannot have them, a Latet that has them is left as it was, and one without them is upgraded without them.
Install with an AI agent
Section titled “Install with an AI agent”Ask your AI agent to follow
llms-install.md in the
repository. It installs Latet, which changes nothing on its own, then tells you how you can go on:
see it at work first with latet tutorial; try it one session at a time, with no setting of your
agents changed; have it on for every session; set up your other tools; download the local models.
It waits for your choice, and runs latet global-install with your answers only if you choose
every session, for example:
latet global-install --yes --profile balanced --agents claude,codex --auto-mode-review block --ner --ocrRun it in Docker
Section titled “Run it in Docker”To keep Python off your computer, run the daemon as a container instead and point your agents at it: see Docker.
Name detection
Section titled “Name detection”Names and street addresses in free text, such as Emily Carter lives at 42 Mill Lane, need a statistical model, which Latet runs on your machine. Secrets and structured data such as emails and IBANs do not need it; names do, so it is worth having from day one.
latet ner install # downloads the model once (about 1.6 GB)It runs on the ner extra (ONNX Runtime and a tokenizer), which the installer installs with Latet.
- The model is OpenAI’s Privacy Filter, Apache-2.0 licensed, in its int8 ONNX build: it reads many languages, Italian, English, French, German and Spanish included. It comes from huggingface.co at a pinned revision, and every file is checked against a pinned SHA-256 before use. While the daemon runs it takes up to about 2 GB of memory.
- After the download it runs on your CPU. Nothing is sent anywhere, and Latet connects to
huggingface.co only when you run
latet ner install. - A running daemon starts using it at once.
latet ner statusshows whether it is in use;latet ner removedeletes it. To keep it installed but unused, setner: offin the configuration.
What it looks for depends on the profile; see Detection.
Text in images
Section titled “Text in images”Screenshots carry values too: an email address in a terminal, an IBAN on an invoice. Latet can read the text in images on your machine and mask it, covering each value on the image with its fake.
latet ocr install # downloads the models once (about 31 MB)The models are PaddleOCR’s PP-OCRv6 small, Apache-2.0 licensed, from huggingface.co at a pinned
revision and checked against pinned SHA-256s; they run on your CPU, on the ocr extra (ONNX
Runtime and Pillow) the installer installs with Latet. See
Screenshots and images.
A local reviewer (optional)
Section titled “A local reviewer (optional)”If you run a language model on your own server (llama.cpp, Ollama, LM Studio), Latet can have it read every text before it leaves and mask what the detectors miss: names in passing, health details, a password written in a sentence. Nothing to install in Latet: turn it on in the dashboard’s Rules page, or see Local reviewer.
Run from source
Section titled “Run from source”For contributors, or to try changes that are not in a release yet.
git clone https://github.com/Latet-AI/latet.gitcd latetuv syncuv run latet versionuv run latet serve # the daemon in the foreground on http://127.0.0.1:5283; Ctrl+C stops itPut uv run in front of every command: uv run latet global-install, uv run latet claude, and so on.
Two things differ from an installed copy:
- Start the daemon yourself. When the daemon is not running, the Claude Code plugin starts it
with the
latetcommand, and in a checkout that command is not on yourPATH. Runuv run latet start, or letuv run latet global-installstart it at login.uv run latet claudestarts it too. - Build the dashboard’s web files. In
dashboard/, runnpm ciand thennpm run build(Node.js 22.12 or newer). Until then,latet dashboardopens a page that says the files are missing, andlatet tutorialwarns that its page will not show. A Latet installed from the repository’s address (git+https://...) lacks them too.
Start at login runs the daemon from the checkout’s virtual environment, so run uv run latet global-uninstall
before you move or delete the checkout. See Contributing for the development
workflow.
© 2026 Emanuele Casabona · VAT IT02293040990 · Privacy policy · Legal notice · latet.ai