Give AI agents focused access to waveform context through Pi Agent integration, repeatable command workflows and bounded JSON/TUI queries.
Pi Agent integration gives the model a compact summary while keeping the full-color waveform visible for you.
Adds a focused waveform action for the model and presents the complete colored TUI view alongside the result.
svw agent <wave> … produces bounded JSON or static
TUI frames for any shell harness — metadata, values, change evidence and
renders, composable with pipes and scripts.
The shared svw-waveform skill teaches the agent how to
query metadata, keep stable signal IDs for evidence, and copy exact
hierarchical names into render calls.
The integration returns a concise completion summary to the model while keeping the complete colored TUI view available for you to review.
│ separators without crossing the value row; multiple
changes collapsed into one cell use ▓ rail activity markers.Install svw first from the home page, then add the Pi Agent extension with one command:
pi install npm:pi-svw-waveform
Keep the svw-waveform agent skill installed alongside. The
skill helps Pi Agent inspect the right signals, retain useful evidence and
request clear waveform views consistently.
svw --headless
Headless mode runs svw without a terminal UI: it reads
: command lines from stdin, executes them exactly as the
interactive TUI would, and writes result messages to stdout. Every command
in the command tutorial works here unchanged —
same parser, same semantics.
# pipe commands in — one per line, leading ':' optional
printf 'mark 30\nmarks\npattern top.clk=1\nq\n' | svw --headless wave.vcd
# replay a saved session, then run a check script
svw --headless -s debug.svw < checks.svwcmd
error:-prefixed lines carrying
the script line number; lines may be indented, and # starts
a comment.Use headless mode when you want the full interactive command surface — sessions, markers, reports, coverage — from a script or regression suite.
svw agent
svw agent <waveform|-> <query> answers a single
question and exits. Data queries write exactly one JSON object; renders
write a static UTF-8 svw TUI frame with no terminal control sequences —
safe to embed in tool output.
svw agent wave.fst info # timescale, ranges, counts
svw agent wave.fst signals clk 10 # search: name + stable ID
svw agent wave.fst value 42 125000 # value of signal 42 at a tick
svw agent wave.fst changes 42 0 200 100 # change evidence, paginated
svw agent wave.fst render 0 200 top.clk top.state \
--width 120 --color ansi --view wave # static waveform frame
svw agent - compare golden.vcd dut.vcd \
--signals top.a top.b --range-fs 0 1000000 # typed compare evidence
info, signals,
value, changes, render.design-info,
design-objects, design-source,
xprobe-object, xprobe-signal,
drivers, loads, active-drivers,
trace-x.records,
assertion-stats, uvm-* history queries.coverage-info,
coverage-runs, coverage-points.compare with signal, range and
X/Z/tolerance policies.signals returns both the full hierarchical
name and a snapshot-scoped stable ID:
copy names into render, keep IDs for value/change/xprobe
evidence. Object IDs come from design-objects.next_cursor bound to
the waveform revision and the query.time_context with the exact femtoseconds-per-tick, and
compare --range-fs takes decimal femtoseconds directly.svw.tool-error.v1 JSON object
on stderr: category, retryable flag, the failed field with its valid
range, and a suggested next call — enough to self-repair without
reparsing prose.- as the waveform when a query needs no open file
(design and coverage queries).| interface | shape | best for |
|---|---|---|
| Pi Agent integration | visual waveform result | Pi Agent sessions: concise model context and a full view for you |
svw --headless | stdin/stdout : command scripts |
CI regression, replaying sessions, anything the TUI can do |
svw agent | one-shot typed JSON / static TUI frame | short, evidence-focused agent tasks |
svw mcp | persistent stdio MCP server, strict schemas | agent harnesses with MCP support |
svw rpc | JSON-RPC 2.0 over stdio, subscriptions | custom automation and editor integrations |