# Medius > Mouse-passthrough firmware for MAKCU-class boxes: an open binary control protocol, byte-exact device behavior, and the medius Rust library. Documentation as Markdown for AI agents. Each link is the Markdown twin of a page; the whole corpus is at https://medius.k4tech.net/llms-full.txt. MCP server: https://medius.k4tech.net/mcp (Streamable HTTP; tools: search, fetch, search_docs, get_page, list_pages). ## Native API - [Medius Native API](https://medius.k4tech.net/native.md): The binary control protocol - [Quickstart](https://medius.k4tech.net/native/quickstart.md): Plug in and send your first command - [How it fits together](https://medius.k4tech.net/native/architecture.md): Mouse, box, and PC - [Ports](https://medius.k4tech.net/native/hardware.md): The three USB ports and how to cable them - [Transport](https://medius.k4tech.net/native/transport.md): USB-serial port - [Connection & handshake](https://medius.k4tech.net/native/connection.md): Open, find, and handshake - [Frame format](https://medius.k4tech.net/native/frame.md): The one packet shape - [Injection model](https://medius.k4tech.net/native/injection.md): A set of fields, two verbs, added on top of the user's input - [Inject](https://medius.k4tech.net/native/commands/inject.md): Press and release any input - [Move](https://medius.k4tech.net/native/commands/move.md): Cursor motion and scroll - [Requests](https://medius.k4tech.net/native/commands/requests.md): Query the box for state - [Admin](https://medius.k4tech.net/native/commands/admin.md): Reset, reboot, and logs - [LED](https://medius.k4tech.net/native/commands/led.md): Drive a status LED - [Lock](https://medius.k4tech.net/native/commands/lock.md): Block one physical input by class - [Catch](https://medius.k4tech.net/native/commands/catch.md): Stream the physical mouse, keyboard, and media input to the PC - [Option](https://medius.k4tech.net/native/commands/option.md): Set a persistent box option by id - [CLIP](https://medius.k4tech.net/native/commands/clip.md): Preload input and let the box play it back, frame by frame - [Usage IDs](https://medius.k4tech.net/native/commands/usage.md): The id numbers inject and lock take - [Flashing](https://medius.k4tech.net/native/flashing.md): Writing new firmware - [Troubleshooting](https://medius.k4tech.net/native/troubleshooting.md): Common failures and what they mean ## Rust Library - [Medius Rust Library](https://medius.k4tech.net/library.md): Official Rust client - [Connecting](https://medius.k4tech.net/library/connection.md): Open, find, and hand the box back - [Discovery](https://medius.k4tech.net/library/discovery.md): Find and open one box out of several - [Inject](https://medius.k4tech.net/library/inject.md): Press and release any input - [Move](https://medius.k4tech.net/library/move.md): Cursor motion and scroll - [Requests](https://medius.k4tech.net/library/requests.md): Asking the box a question and waiting for the answer - [Admin](https://medius.k4tech.net/library/admin.md): Reboot a chip and return to passthrough - [LED](https://medius.k4tech.net/library/led.md): Drive a status LED, or hand it back to the box - [Lock](https://medius.k4tech.net/library/lock.md): Block one physical input; injection still drives it - [Catch](https://medius.k4tech.net/library/catch.md): Stream the physical mouse and keyboard input - [Options](https://medius.k4tech.net/library/options.md): Persistent box settings - [Clip](https://medius.k4tech.net/library/clip.md): Preload input and let the box play it back - [Lifecycle](https://medius.k4tech.net/library/lifecycle.md): Holding injected input alive and recovering a dropped link - [Diagnostics](https://medius.k4tech.net/library/diagnostics.md): Read-only views of the link - [Async](https://medius.k4tech.net/library/features/async.md): AsyncDevice on any executor - [Mock](https://medius.k4tech.net/library/features/mock.md): Test without hardware - [Flash](https://medius.k4tech.net/library/features/flash.md): Reflash a box from Rust - [Tracing](https://medius.k4tech.net/library/features/tracing.md): Structured diagnostics over the link - [Three kinds of call](https://medius.k4tech.net/library/guides/calls.md): Fire-and-forget, blocking query, no round-trip - [Choosing a port](https://medius.k4tech.net/library/guides/connection.md): When more than one box is plugged in - [Testing without hardware](https://medius.k4tech.net/library/guides/testing.md): Assert the frames with MockBox - [Types & errors](https://medius.k4tech.net/library/types.md): Arguments, results, and errors - [Enums](https://medius.k4tech.net/library/types/enums.md): Command and status enumerations - [Structs](https://medius.k4tech.net/library/types/structs.md): Values the box reports back - [Frame types](https://medius.k4tech.net/library/types/frames.md): FrameType and DecodedFrame for low-level work - [Errors](https://medius.k4tech.net/library/types/errors.md): The Error enum and the Result alias ## Bindings - [Bindings](https://medius.k4tech.net/bindings.md): Drive the box from C, C++, or Python - [Install](https://medius.k4tech.net/bindings/c.md): No build step, works in C and C++ - [First program](https://medius.k4tech.net/bindings/c/quickstart.md): Find the box, send a command, read one event, free it - [Calls & errors](https://medius.k4tech.net/bindings/c/usage.md): The C-specific shapes: status codes, handle lifecycle, builders - [Streams](https://medius.k4tech.net/bindings/c/streams.md): Read live input and logs in C - [API index](https://medius.k4tech.net/bindings/c/api.md): Every C function, linked to what it does - [Types & errors](https://medius.k4tech.net/bindings/c/types.md): Every C struct, enum, and status code, by table - [Build & features](https://medius.k4tech.net/bindings/c/build.md): Linking and the optional surfaces - [Install](https://medius.k4tech.net/bindings/python.md): pip install medius - [First program](https://medius.k4tech.net/bindings/python/quickstart.md): Connect, move, click, read one event - [Calls & errors](https://medius.k4tech.net/bindings/python/usage.md): The Python patterns: blocking, exceptions, lifecycle, builders - [Streams](https://medius.k4tech.net/bindings/python/streams.md): Consume live input and device logs - [API index](https://medius.k4tech.net/bindings/python/api.md): Every Python call, linked to what it does - [Types & errors](https://medius.k4tech.net/bindings/python/types.md): Every enum, dataclass, and exception the package exposes - [Build & features](https://medius.k4tech.net/bindings/python/build.md): Turning on mock and flash, and building from source ## Docs - [AI & LLM access](https://medius.k4tech.net/ai.md): Read these docs from an agent