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.
npx skills add ariklapid/pyslang-mcp --skill pyslang-verilog-contextgit clone --depth 1 https://github.com/ariklapid/pyslang-mcpWrote 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/skills/ariklapid/pyslang-mcp/pyslang-verilog-context)<a href="https://agentmods.dev/skills/ariklapid/pyslang-mcp/pyslang-verilog-context"><img src="https://agentmods.dev/badge/skills/ariklapid/pyslang-mcp/pyslang-verilog-context/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/skills/ariklapid/pyslang-mcp/pyslang-verilog-context"><img src="https://agentmods.dev/badge/skills/ariklapid/pyslang-mcp/pyslang-verilog-context.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.00107 | $0.01093 |
| Opus 5 | $0.00053 | $0.00547 |
| Sonnet 5 | $0.00021 | $0.00219 |
| Haiku 4.5 | $0.00011 | $0.00109 |
Grade A, and why
pyslang-verilog-context 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 12d 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.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
pyslang-verilog-context
Use pyslang-mcp as read-only compiler-backed context for Verilog and
SystemVerilog work. Keep normal file editing outside the MCP tools.
First Decision
Use pyslang-mcp when the answer depends on any of these:
- parse or semantic diagnostics
- filelist expansion, include dirs, or defines
- module, interface, or package inventory
- ports, declarations, child instances, or hierarchy
- declaration/reference lookup
- syntax-shape or preprocessing metadata
- RTL edits that should preserve an existing compile context
Use direct file reads and rg first for tiny lexical questions, comments,
renames, or incomplete snippets where a compiler frontend cannot add much.
Workflow
-
Establish the HDL input boundary.
- Prefer user-provided
project_root, files, filelist, include dirs, defines, and top modules. - Otherwise infer the smallest conservative project root that contains the source set.
- Keep all paths under
project_root.
- Prefer user-provided
-
Load the project.
- Use
pyslang_parse_filelistfor.finputs. - Use
pyslang_parse_filesfor explicit.sv,.svh,.v, or.vhinputs. - Pass known
include_dirs,defines, andtop_modules; do not invent them when the repo does not provide them.
- Use
-
Check diagnostics early.
- Call
pyslang_get_diagnosticsbefore making structural claims. - Treat parse or semantic errors as primary evidence and explain how they limit downstream analysis.
- Do not claim the RTL is functionally correct because diagnostics are clean.
- Call
-
Ask focused follow-up questions.
- Use
pyslang_list_design_unitsto discover modules, interfaces, and packages. - Use
pyslang_describe_design_unitfor ports, declarations, and child instances. - Use
pyslang_get_hierarchyfor instance tree questions. - Use
pyslang_find_symbolfor declarations and references. - Use
pyslang_summarize_diagnostics_by_codebefore scanning long raw diagnostics in large RTL projects. - Use
pyslang_find_memberwhen the question is local to one design unit andpyslang_find_symbolis too broad. - Use
pyslang_get_assignmentsfor "what drives this signal" or "where is this signal used on the RHS" questions. - Use
pyslang_get_instance_connectionswhen one instance's port bindings are needed without a full hierarchy dump. - Use
pyslang_trace_connectivityfor bounded structural tracing through assignments and instance port bindings. - Use
pyslang_preprocess_filesfor include/define questions. - Use
pyslang_dump_syntax_tree_summaryfor syntax-shape questions. - Use
pyslang_get_project_summarywhen a compact overview is enough.
- Use
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- agents/openai.yaml 459 B
- evals/fixtures/pyslang-mcp-examples/buggy/easy/edge_detect_polarity_bug/edge_detect.sv 539 B
- evals/fixtures/pyslang-mcp-examples/buggy/easy/simple_counter_priority_bug/simple_counter.v 825 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/apb_timer_irq_race_bug/apb_timer.sv 2.2 KB
- evals/fixtures/pyslang-mcp-examples/buggy/hard/apb_timer_irq_race_bug/include/apb_timer_defs.svh 40 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/apb_timer_irq_race_bug/project.f 25 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/apb_timer_irq_race_bug/rtl.f 40 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/apb_timer_irq_race_bug/timer_core.sv 1.2 KB
- evals/fixtures/pyslang-mcp-examples/buggy/hard/apb_timer_irq_race_bug/timer_pkg.sv 265 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/sync_fifo_count_bug/include/fifo_defs.svh 34 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/sync_fifo_count_bug/project.f 25 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/sync_fifo_count_bug/rtl.f 47 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/sync_fifo_count_bug/sync_fifo_mem.sv 581 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/sync_fifo_count_bug/sync_fifo_pkg.sv 409 B
- evals/fixtures/pyslang-mcp-examples/buggy/hard/sync_fifo_count_bug/sync_fifo.sv 2.1 KB
- evals/fixtures/pyslang-mcp-examples/buggy/medium/priority_arbiter_mask_bug/priority_arbiter.sv 726 B
- evals/fixtures/pyslang-mcp-examples/buggy/medium/register_pipe_valid_bug/register_pipe.v 791 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/apb_timer/apb_timer.sv 2.2 KB
- evals/fixtures/pyslang-mcp-examples/reference/ip/apb_timer/include/apb_timer_defs.svh 40 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/apb_timer/project.f 25 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/apb_timer/rtl.f 40 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/apb_timer/timer_core.sv 1.2 KB
- evals/fixtures/pyslang-mcp-examples/reference/ip/apb_timer/timer_pkg.sv 265 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/sync_fifo/include/fifo_defs.svh 34 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/sync_fifo/project.f 25 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/sync_fifo/rtl.f 47 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/sync_fifo/sync_fifo_mem.sv 593 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/sync_fifo/sync_fifo_pkg.sv 409 B
- evals/fixtures/pyslang-mcp-examples/reference/ip/sync_fifo/sync_fifo.sv 2.1 KB
- evals/fixtures/pyslang-mcp-examples/reference/single/systemverilog/edge_detect/edge_detect.sv 539 B
- evals/fixtures/pyslang-mcp-examples/reference/single/systemverilog/priority_arbiter/priority_arbiter.sv 721 B
- evals/fixtures/pyslang-mcp-examples/reference/single/systemverilog/tap_delay_line/tap_delay_line.sv 942 B
- evals/fixtures/pyslang-mcp-examples/reference/single/verilog/register_pipe/register_pipe.v 748 B
- evals/fixtures/pyslang-mcp-examples/reference/single/verilog/simple_counter/simple_counter.v 825 B
- evals/fixtures/pyslang-mcp-tests/broken/broken.sv 54 B
- evals/fixtures/pyslang-mcp-tests/multi_file/child.sv 130 B
- evals/fixtures/pyslang-mcp-tests/multi_file/include/defs.svh 21 B
- evals/fixtures/pyslang-mcp-tests/multi_file/pkg.sv 67 B
- evals/fixtures/pyslang-mcp-tests/multi_file/project.f 41 B
- evals/fixtures/pyslang-mcp-tests/multi_file/rtl.f 23 B
- evals/fixtures/pyslang-mcp-tests/multi_file/top.sv 203 B
- evals/fixtures/pyslang-mcp-tests/verilog_debug/project.f 17 B
- evals/fixtures/pyslang-mcp-tests/verilog_debug/verilog_debug.sv 1.8 KB
- evals/fixtures/rtl-workflow-fixtures/cdc/explicit_2ff.sv 372 B
- evals/fixtures/rtl-workflow-fixtures/cdc/multi_consumer_crossing.sv 374 B
- evals/fixtures/rtl-workflow-fixtures/cdc/naming_only_sync_trap.sv 290 B
- evals/fixtures/rtl-workflow-fixtures/cdc/unsync_single_bit.sv 277 B
- evals/fixtures/rtl-workflow-fixtures/dv/command_fsm.sv 1.6 KB
- evals/fixtures/rtl-workflow-fixtures/dv/csr_timer_counter.sv 941 B
- evals/fixtures/rtl-workflow-fixtures/dv/missing_intent_block.sv 725 B
- evals/fixtures/rtl-workflow-fixtures/dv/status_fifo.sv 1.4 KB
- evals/fixtures/rtl-workflow-fixtures/dv/streaming_buffer.sv 782 B
- evals/fixtures/rtl-workflow-fixtures/hdl-design-view/simple_counter.sv 433 B
- evals/fixtures/rtl-workflow-fixtures/rtl-design/command_dispatch_fsm.sv 973 B
- evals/fixtures/rtl-workflow-fixtures/rtl-design/dual_clock_event_bridge.sv 726 B
- evals/fixtures/rtl-workflow-fixtures/rtl-design/load_store_command_processor.sv 2.2 KB
- evals/fixtures/rtl-workflow-fixtures/rtl-design/single_clock_controller.sv 867 B
- evals/fixtures/rtl-workflow-fixtures/rtl-design/warm_reset_status_bridge.sv 552 B
- evals/fixtures/rtl-workflow-fixtures/timing/cross_module_path_add8.sv 130 B
- evals/fixtures/rtl-workflow-fixtures/timing/cross_module_path_top.sv 392 B
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.
- 12d ago First seen · 114 lines · 107 tokens per session scan A 4d8a6911a31f
pyslang-verilog-context is a skill published in the GitHub repository ariklapid/pyslang-mcp (20 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 107 tokens to every session and 1,093 once invoked, about $0.0005 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 skills, from other repositories
cardputer-buddy
Iterate on the Cardputer-Adv MicroPython app bundle (Claude Buddy, Snake, Hello) after the device is already provisioned via m5-onboard. Use when the user wants to add a new app, push a single changed .py without re-flashing, watch device serial logs, or run a one-shot REPL command. Trigger on "add an app", "push to…
doca-argp
Use this skill for hands-on DOCA Arg Parser CLI work on a shipped sample or new DOCA-using app — adding / removing / renaming flags; wiring docaargpinit → register params → docaargpstart → docaargpdestroy in order; picking a parameter type from the full public enum (DOCAARGPTYPESTRING, INT, BOOLEAN, DEVICE, DEVICEREP…
holoscan-install-wheel
Install Holoscan SDK Python wheel via pip into a venv. Use for Python installs; not for native C++/apt or Conda installs.
zener-language
Read or edit Zener HDL, package APIs, and tool-managed dependencies.
embedded-stm32
Best practices for embedded C/C++ development on STM32 microcontrollers using the HAL, covering peripherals, DMA, interrupts, memory constraints, and hardware-focused testing. Use when writing STM32 HAL code, configuring peripherals generated by STM32CubeMX, working with interrupts or DMA, debugging with SWD/JTAG…
001-commands-inventory
Use when you need to generate a checklist document with embedded commands inventory, following the embedded template exactly and producing INVENTORY-COMMANDS-JAVA.md in the project root. This should trigger for requests such as Create embedded commands inventory checklist; Generate INVENTORY-COMMANDS-JAVA.md; Use…