Probably a huge mistake. But like, a powerful, scripted, glorious mistake.
ContextWire is your new hardware automation overlord. It aims to talk to Saleae, Bus Pirate, Simplicity Commander, and even your dusty LXI o-scope, all from one place. No more juggling 17 terminals and making ritual sacrifices to the demo gods — just a single, unified interface to script, control, and automate your lab gear.
This project is in the very early stages of development. Expect bugs, breaking changes, and moments of existential dread. If it works, it's a miracle. If it breaks, you get to keep both pieces.
- 💬 Unified Control: Access all your tools through a REST API, WebSockets, or the Model Context Protocol (MCP) for agentic AI interactions.
- 🔌 Modular Drivers: A plug-and-play architecture makes it easy to add new hardware. If it has a port, we can probably talk to it. Eventually.
- 🧪 Built for Embedded Devs: Perfect for anyone who is sick of vendor-specific GUIs and wants to script their hardware interactions.
- 🔧 Built with Python: Because I hate myself just enough.
(This section is a placeholder for when things actually work.)
1. Installation (Theoretically):
git clone https://github.com/skakri/contextwire.git
cd contextwire
# ???
cd ..
rm -rf contextwire
2. Configuration:
Copy the example environment file and pretend to fill it out.
cp .env.example .env
3. Run It:
Launch the server and pray (we use Python 3.x as default here, don't be a caveman).
python -m contextwire.main --run-api --run-ws
ContextWire can be launched in several modes, simultaneously if you're feeling brave:
- Stateful MCP Server: A server implementing the Model Context Protocol, allowing agentic AI systems to maintain and interact with hardware state and context.
- REST API Server: For stateless, command-based control. Perfect for integration with scripts and CI/CD pipelines.
- WebSocket Server: For real-time, bidirectional communication. Stream live data or build interactive remote shells.
| Device / Interface | Status | Notes |
|---|---|---|
| Saleae Logic Analyzer | 🔜 WIP |
logic2-automation library |
| Simplicity Commander | ➡️ Up Next |
Wrapping the commander CLI |
| Bus Pirate | ❓ Planned |
Binary bitbang mode |
| LXI Instruments | 🤯 Maybe |
via lxi-tools or similar |
| Sigrok-Supported Devices | 🤯 Maybe |
The holy grail of driver support |
Found a bug? Have a brilliant idea? Want to add support for a new device? Excellent.
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-awesome-idea). - Make your changes.
- Submit a pull request and tell me what you broke.
Licensed under the Apache 2.0 License.
Made with poor life choices. Also yes, I wrote parts of this README by wasting tokens because I couldn't be bothered to write it myself.
No regretsSome regrets.