argot docs GitHub ↗

Getting started

Install argot and calibrate it on your repo in a couple of minutes.

argot is a voice linter. It learns your repo’s voice from its own git history, then flags the hunks whose token distribution diverges from the learned norm — the code that’s valid, typed, and lint-clean, but doesn’t sound like anyone on your team wrote it. No model, no cloud, no GPU.

Status: alpha. The scorer works and ships honest benchmarks, but argot is not yet recommended for production gating. See Limitations for the v1 roadmap.

Install

curl -fsSL https://raw.githubusercontent.com/get-tmonier/argot/main/install.sh | sh

The curl installer drops the argot binary in ~/.local/bin and installs uv if it’s missing. Prefer a package manager?

npm install -g @tmonier/argot

Prerequisites

argot’s scoring engine is a Python subprocess driven through uv. The curl installer adds it automatically; if you install via npm, make sure uv is on your PATH:

curl -LsSf https://astral.sh/uv/install.sh | sh

Everything runs locally — no API key, no account, nothing leaves your machine.

Calibrate, then check

argot has three commands. Run them in order the first time, then just check on every commit.

cd your-repo
argot extract      # walk git history → .argot/dataset.jsonl
argot fit          # build the repo corpus + baseline, then calibrate the threshold
argot check        # score uncommitted changes (or pass a ref/range)

That’s it. extract and fit are the one-time setup (re-run fit after a major refactor); check is the thing you run on every diff.

argot check · 2 hunks above threshold (1 foreign · 1 suspicious)
note: argot is a probabilistic style linter — verify before action.

src/utils/http-helpers.ts
  ●  L42-L48   8.21  foreign     · workdir · foreign import (import)
     ↳ axios — 0 of 47 module specifiers in repo
       common here: react (320×), express (88×), pg (47×)

What argot is — and isn’t

If your team ships LLM-assisted code, this is the layer your CI is missing.

Where to next