Local test-bench gateway for reusable instrument and DUT plugins.
Links
AI / Agents
Developers
Stephen Eaton
Community
Contributing guide
Code of conduct
Security policy
Full license MIT
Meta
Requires: Python >=3.13
Package Info
BenchWeave is a Python test-bench gateway for embedded systems: reusable instrument and DUT plugins, shared device profiles, and safety-aware automated testing, exposed to applications and coding agents over REST and MCP.
Status: architecture baseline and Python scaffold. The repository carries versioned contracts, PoC/MVP plans and architecture validation in CI. The gateway side of interface 0.1.0 is live in the PoC — REST routes and MCP tools over FastAPI/FastMCP on one core-operations seam; hardware qualification and unattended bench operation remain separate, commissioned work.
The plan
- Connect instruments and devices under test through reusable plugins and typed device profiles.
- Share profiles and implementations through a central registry, with local admission and offline execution.
- Coordinate bounded test procedures with explicit ownership, measurement evidence and verified safe endings.
- Expose a consistent REST and MCP interface for applications and coding agents.
The first PoC is simulator-first. The planned hardware MVP targets the FNIRSI DPS-150, with ESP32 as the provisional controller family.
Where to start
- Operator guide — install, configure and run the gateway.
- Device developer guide — device creation, gateway hosting and shared packages, with the AI task template and human review checklist.
- Develop your device with AI — five-step paths for device plugins and custom firmware.
- Architecture v1.5 — the admitted architecture baseline.
- Standards — the versioned contract sets: OTDP, registry, execution, interface, plugin UI and plugin UI preview.
- CLI reference — the
benchweavecommand tree.
Sister repository
The plugin developer SDK (benchweave-sdk) provides the offline plugin tooling — project generation, validation, mocks and the local UI preview. It is mounted in this repository at packages/sdk as a git submodule with its own CI and release cycle; the plugin SDK guide documents it.