What problem does it solve? Writing or debugging a client that talks directly to the Docker Engine HTTP API is full of traps the CLI hides: garbled multiplexed log frames, builds that report HTTP 200 but failed, filters that silently match nothing, and auth headers rejected over base64 padding. This Skill documents the failure modes the official reference states once and clients get wrong repeatedly. ## Core Features & Use Cases - API version negotiation: Explains /version probing, ApiVersion pinning, and how missing features fail silently as 404s or ignored parameters. - Stream and frame decoding: Covers the 8-byte multiplexed frame format for logs, attach, and exec, the Tty raw-stream difference, and newline-delimited JSON streams for build, pull, and push where errors arrive inside a 200 response. - Filters, auth, and paths: Details the JSON map-of-string-arrays filter shape, padded base64url X-Registry-Auth (including the anonymous e30= form), tar build contexts, and exec's two-call lifecycle. - Use Case: Your Perl or Python client prints header bytes in container logs. Use this Skill to identify the missing demultiplexing step and implement the frame reader correctly. ## Quick Start Ask the AI to explain why my Docker API client shows garbled bytes in container logs and how to demultiplex the stream.