OMS learns which toolchain your project uses by reading a handful of project files and comparing what it finds with a set of pinned versions. Nothing in your project is executed, so detection is safe to run on code you haven’t looked at yet.

What it reads

The toolchain reader opens only Anchor.toml, Cargo.toml, Cargo.lock, package.json, config and config.toml, plus files ending in .ts, .tsx, .js, .mjs and .rs. It skips symlinks and these folders: .git, .oms, node_modules, target, vendor and .oms-cargo. TOML files are parsed by python3 -I with tomllib, so this needs Python 3.11 or newer.

What it checks against

The pinned versions are Anchor 1.2.2, Solana and Agave 4.4.1, platform-tools 1.58, npm, and SBPF arch v3. The rules are anchor, pins, crates, duplicates, client, transaction, arch and advisory. Each finding carries a source URL and an observation date of 2026-11-08. The advisory rule flags Anchor 1.0.0 and 1.0.1, but only when the lock file confirms the version.

Where you see it

In a session, a summary of the report goes into the system prompt as untrusted project data, and the model can call a toolchain_check tool for the full report. On the command line, run oms toolchain check. See Check your toolchain. OMS also lists installed program clients from node_modules/<client>/package.json as “name version”.

Other detection

For lookups, OMS reads manifests (Cargo.toml, package.json, Anchor.toml and programs/*/Cargo.toml, 200 KB in total) and imports from at most 200 files and 200 names. It doesn’t follow symlinks, and it skips node_modules, target and dot folders.