Skip to main content

A framework for automating hardware lab tools, featuring a Model Context Protocol (MCP) server for agentic AI interaction.

Project description

ContextWire

UWAGA: this README.md is a placeholder and meant (for now) as a rough draft

A Gloriously Over-Engineered Hardware Automation Framework

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.

⚠️ Current Status: Alpha AF

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.

✨ Core Features

  • 💬 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.

🚀 Getting Started

(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

🚦 Run Modes

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.

📦 Planned Device Support

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

🤝 How to Contribute

Found a bug? Have a brilliant idea? Want to add support for a new device? Excellent.

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-awesome-idea).
  3. Make your changes.
  4. Submit a pull request and tell me what you broke.

📜 License

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 regrets Some regrets.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contextwire-0.0.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

contextwire-0.0.1-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file contextwire-0.0.1.tar.gz.

File metadata

  • Download URL: contextwire-0.0.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for contextwire-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f8030e1b258f0389efb76c0d2a927d5d4581b5d65f77a11547aeb3aae4bfbddb
MD5 138758cfb96c7340260fa475d71a89ac
BLAKE2b-256 2f562e52ca36d8c630bb606a8d53cf1765421565a85e69152ce97e8ff0df73b1

See more details on using hashes here.

File details

Details for the file contextwire-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: contextwire-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for contextwire-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b301dc705f0ad2e2ae7ce86b4303fdb2f57691380c9004cea66351260809235c
MD5 04d31995ad467249c5c4512295a18771
BLAKE2b-256 eee17b5524c29894f7431ea4582e367833730ed2f350ecb0a2df5ba5b5b7a85c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page