Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/Midstall/claude-for-hardwareWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/midstall/claude-for-hardware/fpga-fit)<a href="https://agentmods.dev/commands/midstall/claude-for-hardware/fpga-fit"><img src="https://agentmods.dev/badge/commands/midstall/claude-for-hardware/fpga-fit/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/midstall/claude-for-hardware/fpga-fit"><img src="https://agentmods.dev/badge/commands/midstall/claude-for-hardware/fpga-fit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00016 | $0.00371 |
| Opus 5 | $0.00008 | $0.00186 |
| Sonnet 5 | $0.00003 | $0.00074 |
| Haiku 4.5 | $0.00002 | $0.00037 |
Grade A, and why
fpga-fit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
The user wants to fit an RTL design onto an FPGA, hit timing, or fix a route that will not converge. Context they gave: $ARGUMENTS
Invoke the fpga-synthesis-fit skill, and rtl-area-timing if the bottleneck is a structure (a wide multiply, a barrel shifter, a compute-everything-and-select datapath). Then drive this loop, one measured step at a time:
- Measure with the right number. Read post-pack nextpnr
TRELLIS_COMB(or the equivalent post-place utilization), never the pre-pack synth LUT count. For timing, read the critical-path report and name the specific primitive on it. - If it will not route: try other seeds before changing RTL, watch the overused-wire count trend toward zero, and keep utilization under the thrash threshold (roughly 85 percent, and BRAM under 90).
- If it is too big or too slow: apply one structural change from
rtl-area-timing(internal multiply pipeline, dead-arm removal, resource sharing, fixed-slice mux), then re-measure post-pack. Stop optimizing a resource once it leaves the critical path. - Check for the flop-ROM trap: a "ROM" with per-entry reset values becomes a huge flop array. Instantiate block RAM with init instead.
- If you generate a bring-up bitstream, confirm its configured clock is at or below the measured Fmax.
Report each step's measurement and the one change you made, not a batch of speculative edits. Do not claim a win without a post-pack number.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 17 lines · 16 tokens per session scan A 48e4ce0a1d28
fpga-fit is a command published in the GitHub repository Midstall/claude-for-hardware (20 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 16 tokens to every session and 371 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
debug
A command-line debugging toolkit for embedded programs using J-Link or OpenOCD, tools that connect a computer to a microcontroller for inspection.
scope
A command for connecting to supported oscilloscopes, capturing or reading waveforms, measuring them, and saving results as CSV files or plots. An oscilloscope is a device that displays changing electrical signals.
la
A command for capturing and decoding signals with a Saleae logic analyzer, a device that records electrical digital signals over time. It supports buses such as UART, SPI, and I2C, which are common ways chips communicate with peripherals.
svd
A command-line tool that reads CMSIS-SVD files, which describe a chip's peripherals, registers, and bit fields. It can list register addresses and decode the current register values while the device is running.
map
A parser for Keil compiler map files, which are build reports describing where program code and data are placed in memory. It reports object sizes, memory regions, symbols, and stack or heap details.
size
A command that reads a Keil compiler .map file, a build report describing where firmware uses memory. It reports Flash, RAM, stack, and heap allocation and compares usage with warning limits.