argot

io.github.get-tmonier由 GitHub 帳號 get-tmonier 發布v0.2.127更新於 Oct 25, 2026

Read-only context and complete checks against patterns learned from git history. Local; no LLM.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

Argot 是本地、唯讀的 MCP 伺服器,讓助理依倉庫自身 git 歷史學到的模式對變更做統計式檢查。

可以做什麼
提供已擬合倉庫的唯讀脈絡,包括學到的慣例與歷史模式,並為每項發現附上倉庫證據,方便助理說明某處變更為何顯得陌生。提供區塊層級與完整變更集檢查,標記陌生匯入或呼叫、罕見詞元、違反慣例、已被取代的寫法、重複或位置不當的函式、反向的分層相依,以及被削弱或刪除的測試。將發現呈現為待人工判斷的審查提示,而非結論,由使用者決定是否接受。倉庫擬合本身仍是獨立的本地 CLI 或技能流程,不是 MCP 操作。
適用情境
適用於審查 AI 或人工提交的拉取請求,且倉庫有可用的 git 歷史;希望助理指出型別正確但在風格或結構上與該程式庫格格不入的程式碼時使用。它只是審查輔助,不是正確性判準,應搭配一般審查與測試。
執行需求
以本地 stdio 程序執行,透過 npx 從 npm 套件 @tmonier/argot 啟動(也可全域安裝)。倉庫需先用本地 CLI(argot init)完成擬合,並具備可用的 git 歷史與支援的原始碼;依賴模型的工具需要該擬合快照。不需帳號、API 金鑰或網路存取,嵌入模型隨二進位檔一併提供。
安裝前請注意
發現結果具機率性,可能出錯;結果乾淨不代表變更正確,單一發現也不等於缺陷。擬合會寫入設定檔與快照目錄到倉庫,需審查後提交,CI 只讀取基礎分支快照。歷史淺、自動產生或第三方引入的倉庫可能擬合效果不佳。網路僅用於更新、下載發行包或明確設定的整合,可用環境變數 ARGOT_OFFLINE 關閉。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 argot,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[argot]

Lint the rules you never wrote down.

AI writes the code. argot harnesses it with the one thing that can’t hallucinate: your repo’s own history.
Statistics, not a second LLM. 100% local. It surfaces the divergence — you decide what to accept.

argot.tmonier.com  ·  Documentation  ·  Evidence  ·  Research log

[Release] [npm] [License]

[One statically-linked Rust binary] [100% local, no cloud, no account] [12 supported languages] [Benchmarked on 36 real repositories]

Start with an audit

argot audit needs no prior Argot fit or configuration. It fits a historical base in a temporary worktree, then evaluates the surviving base-to-HEAD net diff. Your working tree is left untouched. It is a review prompt—not a census of who wrote code, or proof that a finding is a defect.

sh
# macOS / Linuxcurl --proto '=https' --tlsv1.2 -LsSf https://github.com/get-tmonier/argot/releases/latest/download/argot-installer.sh | sh
cd your-repositoryargot audit

Windows: powershell -c "irm https://github.com/get-tmonier/argot/releases/latest/download/argot-installer.ps1 | iex". The npm package is also available as npm install -g @tmonier/argot.

Audit needs usable Git history and supported source. It has no fixed runtime promise. It runs fully offline — the code-embedding model behind the semantic findings ships inside the binary. See Getting started for install and fit details.

If the audit gives you a useful lead, fit the current repository and score the changes you intend to review:

sh
argot initargot check

Review and commit the generated argot.toml and .argot/ fit snapshot, then merge it into the branch future PRs target before adding a CI workflow. Local tools and CI then use the same learned baseline. CI only reads the base branch snapshot; it never fits, so the initial snapshot PR must be separate from the CI-workflow PR. argot status later recommends a local fit-and-commit refresh only when accepted source, function, or layout surfaces have materially changed. Commit count and age are not refresh triggers by default; [fit] refresh-after is available only as an explicit team backstop. The argot-refresh skill re-audits exclusions, structural paths, and mutes before fitting, so a reorganized repository does not blindly relearn old scope.

mermaid
flowchart LR    A["argot init<br/>learn locally"] --> B["review + commit<br/>argot.toml · .argot/"]    B --> C["local tools + CI<br/>read one baseline"]    C --> D{"material accepted drift?"}    D -- no --> C    D -- yes --> E["argot-refresh<br/>review scope · fit locally"]    E --> B

The embedding model itself ships inside the binary. Git stores only the repository-specific learned snapshot—typically a few MB to a few tens of MB—so every clone can reproduce the check without retraining or operating a service.

check reports patterns worth reviewing on the selected changeset; a clean result does not prove the change correct or fully idiomatic. Read the Audit, Init and Fit, and Check guides for the exact contracts.

What it surfaces

Type checkers ask if it compiles. argot asks if it’s yours. A clean, type-correct, well-reviewed pull request can still be foreign to the repository it lands in. These are the rules argot ships, every one of them learned from your own history rather than configured by hand:

RuleGroupWhat it flags
foreign-importvoicean import of a dependency the repo has never used
unfamiliar-calleevoicea call to a receiver or callee the repo's code never calls
rare-tokensvoicea token sequence statistically foreign to the repo's voice
conventionvoicea construction that breaks a convention learned from the repo
supersededvoicea pattern this repo has been replacing, or declared migrated away
redundantsemantica new function that duplicates one the repo already has
misplacedsemantica function that looks like it belongs in another module area
layeringarchitecturean internal import that reverses the repo's layer direction
test-deletedintegritya test removed while the code it exercised still exists
test-disabledintegritya skip marker added, or a test gutted, as production changes
test-weakenedintegrityassertions removed, tautologized, or loosened alongside a change
rule-tamperedgovernancea change that removes or weakens a locked rule

Repositories add their own on top — a TOML manifest plus a sandboxed Rhai script under .argot/rules/, with working ones to copy in examples/rules/. No recompilation.

argot is a probabilistic review guardrail, not a correctness oracle. Each finding carries repository evidence. Treat it as a prompt to inspect and make the human decision explicit—never as proof that the code is wrong.

Choose how to run it

The CLI is the complete, explicit changeset check. Other routes have narrower triggers and coverage; none provides a universal acceptance-time check.

RouteExecution classPrerequisites and coverageEvidence status
CLIInvoked by a user or agentRun audit, init, or the full check; fitting is required where the command needs it.CLI/source inventory, 2026-07-22
SkillsInvokedSeven on-demand workflows for a compatible skill host; installation does not schedule commands, configure MCP, or add a hook.Manifest/source inventory, 2026-07-30
MCPPassiveA configured client selects read-only context, hunk, or complete-changeset tools; a fitted repository is required for model-dependent tools. Fitting remains an explicit local CLI/skill workflow.Focused test and source inspection, 2026-07-30
Claude Code pluginAutomatic when configured, plus invoked/passive surfacesIts opt-in pre-write hook, in a fitted repository, asks only when a Write, Edit, or MultiEdit introduces a foreign import. It never blocks and is not a full or end-of-turn check.Manifest/source inspection, 2026-07-22
pre-commitAutomatic when user-configuredScores staged supported files in a fitted repository. The argot-check hook is advisory for findings; argot-check-gate is opt-in for error-severity exits.Manifest inspection, 2026-07-22
GitHub ActionAutomatic when user-configuredScores the configured ref/range in a workflow; it needs checkout history and release-download access. fail-on-hits defaults to false.Action manifest inspection, 2026-07-22

Canonical setup and host details: Claude Code, other agents and MCP, and CI and pre-commit.

Evidence and limits

Current public measurements are detector-specific, not a product-wide accuracy or combined-brief claim. The approved claim manifest records:

  • visible foreign-symbol fixtures: 620/637 — 97.3% across 36 corpora and 12 languages;
  • reinvention fixtures: 545/584 — 93.3% across 31 corpora and 11 languages;
  • placement transplants: 12,899/13,456 — 95.9% across the 22 evaluable corpora and 11 languages (the other nine abstain because their layouts have no separable architecture);
  • layering fixtures: 264/272 — 97.1% across 25 corpora and 12 languages;
  • test-integrity fixtures: 154/164 — 93.9% across 23 corpora and 12 languages.

A catch rate means little without the noise it costs, so both are published. On the same 36 corpora, the voice detectors flag 0.25% of ordinary accepted edits — and 0.00% of the hunks in newly added files, where a repository has the least to say about what belongs.

Each number has a distinct corpus, denominator, and qualifier. The combined briefing/noise result and ordinary-repository timing are not yet measured public claims. See the benchmark methodology and sources.

Argot ships adapters for 12 languages. The five tested release targets are macOS arm64/x64, Linux x64/arm64, and Windows x64. The local analysis path uses statistical, graph, scripted, and embedding evidence; no generative or opinion-forming model decides a finding.

Fit health matters. A repository with shallow, generated, vendored, or otherwise unsuitable history may not produce a useful model. Argot is also least reliable for an incorrect choice made entirely with familiar vocabulary, masked prose, and code outside the selected range. Read Limitations before relying on a specific detector.

Reproducible authored proof

[Authored two-commit fixture: argot audit --commits 1 reports one foreign token sequence in an introduced Django-style import. Semantic, architecture, and integrity are unavailable in this development build.]

This is an authored fixture, not a wild-case corpus. Its pinned command, version, receipts, checksums, regeneration procedure, and the visual’s non-byte-stable GIF qualification are documented in the proof receipt. The image is a reproducible companion to the auditable Markdown receipt.

Privacy and open source

Argot analyzes source, history, and findings locally. The individual local core is free, MIT-licensed open source, and requires no account or cloud service. Argot has no default telemetry and does not upload source code. No analysis it performs needs a network at all — the code-embedding model behind the semantic findings is compiled into the binary. It can still use network paths for update/version checks, release downloads, or an explicitly configured review/update/CI integration. Set ARGOT_OFFLINE=1 to prevent network use; nothing analytical is lost.

Read the complete privacy and security boundary, security policy, and MIT license.

Contribute

Contributions are welcome. Start with CONTRIBUTING.md, then see the product strategy for the maintained decision record and research log for evidence.

Acknowledgements

Every number argot publishes is measured against the real history of 36 open-source projects, across the twelve supported languages — fastapi, rich, faker, saleor, wagtail, scrapy, hono, ink, faker-js, excalidraw, outline, express, commander, eslint, gh-cli, hugo, ripgrep, bat, guava, junit5, powershell, jellyfin, redis, curl, rocksdb, fmt, homebrew, rubocop, laravel, composer, castle-engine, mORMot2, uos, ideU, MSEide/MSEgui, and dagster.

The benchmark would not exist without them, and we are grateful to their maintainers and contributors. Argot vendors and redistributes none of their code: the harness clones each repository at a pinned SHA, reads its history locally, and ships nothing from it. Each project remains under its own license, held by its own authors. Full list with links, and what argot does commit: benchmarks/README.md.

argot does redistribute one thing. The model behind redundant and misplaced is a 15.6M-parameter static table distilled from jina-embeddings-v2-base-code (Jina AI, Apache-2.0) using the model2vec technique (MinishLab, MIT). Its weights are compiled into the binary and redistributed under Apache-2.0; full terms in NOTICE. argot is not affiliated with either project.

來源:README.md,提交 254a7ef

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.127最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分