The config files VS Code never checks: DeviceTree overlays, TOML manifests, AutoHotkey v2 scripts

A status = "enabled" in an overlay is not a syntax error — the node just comes up disabled, and you find that out on the bench. Paste a file below: all 22 checks run here in your browser, offline, no sign-up. Same 22 rules as the extension.

Install free

Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.

VS Code MarketplacenpmMCP server (npx)Docker Hub
ext install ReadyStack.autohotkey-toml-devicetree-snippets
npx @readystack/autohotkey-toml-devicetree-snippets <file>
npx @readystack/autohotkey-toml-devicetree-snippets --mcp

Team? One key for every ReadyStack linter, 5 seats, $149 once

Get the full rule table as a PDF
All 22 rules AutoHotkey v2, TOML and DeviceTree checks for VS Code checks, each with its source and date, on printable pages you can hand to your team or auditor. We email it now, and once more only if a rule changes. No newsletter.

Get the full version $29

Two things a single open file cannot give you. Scale: the same 22 checks across every overlay, manifest and script in the repository in one pass. Handover: the findings written out as a CSV, JSON or HTML file you can attach to a review, a ticket or a release checklist.

One payment, one licence key for this tool. The key is shown right after payment.

A freelance embedded software engineer bills a median of $103.27 per hour (contractrates.fyi crowdsourced rates, checked 2026-09-08). One licence costs less than twenty minutes of that hour.

Buy the full version — $29
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

The five config lines VS Code accepts and your build does not

There is a category of bug that never shows up as a red squiggle. You edit an overlay, the editor stays quiet, you push, and three hours later someone on the hardware bench tells you the sensor is not on the I2C bus.

Here is the line that did it:

&i2c1 {
    status = "enabled";
};

DeviceTree accepts exactly two values in that property: "okay" and "disabled". Anything else is not an error — it is simply not "okay", so the node comes up switched off. "enabled" is the most natural word in English and the wrong word here, which is why this one keeps happening. The compiler does not warn. The editor does not warn. The board boots, and the device is missing.

The pattern generalises. The files that break a build hardest are the ones nobody writes a language server for:

[project]
port = 08080
limits = { cpu = 2, }

TOML rejects an integer with a leading zero outright, and an inline table may not carry a trailing comma. Both stop the parser dead. Your editor renders both in cheerful syntax colours, because the grammar highlighter and the parser are not the same program.

Same story in AutoHotkey. A script pinned with #Requires AutoHotkey v1 will refuse every v2 construct you paste into it, and MsgBox, text is v1 comma syntax that v2 reads as something else entirely. Same story in Inkling, where inkling "1.0" quietly rejects 2.0 graph and concept blocks.

What we did about it

We wrote 22 checks for exactly these silent breakages and put them in a VS Code extension, next to 46 snippets across 9 language packs — AutoHotkey v2, TOML, DeviceTree, MicroProfile/Java, Ren'Py, Swift, Inkling, Python colour rules, and repo config such as .editorconfig and CI workflow files.

The checks are regular-expression rules with a message written to say what the build will do, not what the rule is called. When you run it on the file above you get:

  2: This script is pinned to AutoHotkey v1, so every v2 snippet in this pack will fail to load here.
  7: DeviceTree accepts only "okay" or "disabled" here. Anything else leaves the node switched off at boot.
  9: This DeviceTree property is not closed with a semicolon, and the compiler will report the error on a later line.
 15: TOML rejects an integer with a leading zero. Write 9, or quote it as "09" if it is a code.
 16: A TOML inline table may not end with a trailing comma. The parser stops on this line.
 17: A credential is written straight into this file. Move it to an environment variable or a file the repository ignores.

Seven findings in seventeen lines, none of which the editor had marked.

Where the line is drawn

All 22 checks and all 46 snippets are free on the file you have open, and on just the lines you highlight. No key, no account, no watermark, no trial counter, nothing leaves your machine. If that is all you need, that is the whole product and you are done.

What a licence buys is a different axis, not a better version of the same thing: scale and handover. It runs the identical 22 checks across every overlay, manifest and script in the repository in one pass, and writes the findings out as a CSV, JSON or HTML file you can attach to a review or a release checklist. $29 once.

You can try the checks without installing anything — the free web page runs the same 22 rules in the browser.

15 seconds — what it actually does

Questions people ask

What does this extension actually do?

It reads the file you have open and reports 22 breakages VS Code does not flag: a DeviceTree property missing its semicolon, status = "enabled" instead of "okay", a TOML inline table with a trailing comma, an AutoHotkey v1 command still using comma syntax, a credential written into a config file. Each finding carries a line number. It also inserts any of 46 snippets at the cursor.

Who is this for?

Firmware and embedded engineers who write DeviceTree overlays for Zephyr, Raspberry Pi or a custom board; Python and Rust maintainers who hand-edit pyproject.toml or Cargo.toml; AutoHotkey v2 users migrating scripts off v1; and anyone maintaining Ren'Py, Swift, MicroProfile or Inkling files in VS Code. It is aimed at people whose editor stays silent on exactly the files that break the build.

Why will free tools not do this?

VS Code ships no validator for .dts, .overlay or pyproject.toml, so the editor stays quiet. A chat assistant only sees the file you remember to paste, and the overlay that breaks a boot is usually the one you forgot you touched. The compiler does catch some of these, but it catches them after you push, which is the trip to the bench this pack is meant to prevent.

What is free and what needs a licence?

Free covers the whole job on one file: all 22 checks and all 46 snippets on the open document or the lines you highlight, unlimited, offline, no key. A licence changes the scale and the output, not the quality. It runs the identical checks over every file in the repository at once and writes the findings out as a file. No watermark, no trial timer.

How does the price compare with paying a person?

A freelance embedded software engineer bills a median of $103.27 an hour according to the crowdsourced rates at contractrates.fyi, checked on 2026-09-08. The licence is $29 once, which is under twenty minutes of that rate, and a single overlay that comes up disabled on hardware costs more than twenty minutes to track down..

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.

Embed this tool on your site (free)

Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.

 All embeddable tools

For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →