Repository navigation
Releases
Releases · Pinta365/bytepeel
bytepeel 0.1.1
Download the archive for your platform below (static binaries on Linux), or run it with npx bytepeel / install with npm install -g bytepeel or cargo install bytepeel. Checksums are in SHA256SUMS.
npx bytepeelandnpx -y bytepeel mcp: the npm package now has a
bytepeelcommand that runs the native CLI from a per-platform package
(bytepeel-linux-x64,-linux-arm64,-darwin-x64,-darwin-arm64,
-win32-x64), so the CLI and MCP server need no Rust toolchain.- An MCP Registry entry (
server.json,io.github.Pinta365/bytepeel). - A Claude Code plugin (
/plugin marketplace add Pinta365/bytepeel) with an
agent skill that tells the agent when and how to use bytepeel, and the MCP
server.
bytepeel 0.1.0
Download the archive for your platform below (static binaries on Linux), or install with cargo install bytepeel. Checksums are in SHA256SUMS.
First release.
Decoding
- Text layers: hex (any separators,
0xforms), base64 (standard and URL-safe,
padded or not), PEM (single blocks and bundles), JWT (JWS and JWE, with
exp/nbf/iatas ISO 8601), andxxd/hexdump -Cdumps (including
nonzero start offsets). - Compression: gzip (including concatenated members), zlib and zstd, behind the
optionaldeflateandzstdfeatures ofbytepeel-core(on in the CLI). - Binary formats: DER/ASN.1 (with about 175 named OIDs and encapsulated
BIT/OCTET STRINGs), CBOR, MessagePack and schemaless protobuf (ranked
interpretations of LEN fields, packed varint/fixed32/fixed64 alternatives,
groups, and every varint asuint/int/sint). - Layers nest in any order and are detected recursively, including inside
protobuf string and bytes fields and CBOR/MessagePack byte strings. - Ambiguity is reported, never silently resolved: ranked alternatives, and an
AMBIGUOUS_FORMATwarning when binary formats compete. - JSON output with a byte range on every node; 64-bit integers as strings;
long text and bytes previewed. Also a compacttreeoutline.
Selecting and editing
--get PATHselects one protobuf field, DER element, CBOR/MessagePack
value or JWT claim;--format rawwrites its payload. Paths cross formats.bytepeel setchanges (PATH=VALUE), adds (PATH+=VALUE) and removes
(--del PATH) protobuf fields, CBOR/MessagePack values and DER elements,
re-encoding every layer in its original style, with every other byte
preserved. Paths cross formats. Each edit is verified by decoding the
output again.
Limits
- Decompression is capped at 64 MiB per stream and 256 MiB per input.
- At most 1,000,000 protobuf fields, CBOR/MessagePack values and DER elements
are decoded per input (--max-items). - Nesting depth is capped (
--depth, default 16).
Interfaces
bytepeel: the CLI, with structured JSON errors and stable error codes.bytepeel mcp: a Model Context Protocol server on stdio withpeeland
settools.bytepeel-core: the Rust library, with no dependencies by default.- A WebAssembly build for JavaScript (Node, Deno, Bun, browsers), published
to npm asbytepeeland to JSR as@pinta365/bytepeel.