NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #936 most downloaded on PyPI
Pure python implementation of magic file detection
Last release 5 months ago
08 Apr 2026
Release timing varies
gaps range from 2 weeks to 8 months
Nearly every release is documented
notes for 31 of 31 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
35 releases · first in 2016
Adding Ogg scanner to distinguish Vorbis, Opus, Theora, FLAC, Speex, and OGM codecs
[Content_Types].xml content types as primary method, correctly identifying docx/xlsx/pptx files from LibreOffice, Google Docs, and other non-Microsoft tools (thanks to jonasdeboeck79)Fixing #141 deep scan no longer overrides valid binary format matches (e.g. JPEG) for files without extensions (thanks to marph91)
One column per quarter.
Adding #6 from_extension() and magic_extension() to look up MIME types by file extension
from_extension() and magic_extension() to look up MIME types by file extension-e/--extension CLI flag for extension-based MIME type lookupaudio/wave to audio/wav (thanks to Simon Willison and Andy - NebularNerd)Fixing #137 passing non-existent filename to from_string()/from_stream() no longer raises FileNotFoundError (thanks to denisw)
Fixing #126 Python scanner false positives — now uses AST node walking instead of regex to verify real Python constructs (thanks to ahobson)
Adding deep scan for improved accuracy #102 #94 #85 #70 #69 #12 #3
Fix #112 command line tool behavior (thanks to Sandro)
Adding #109 Halt on non-regular files like /dev/zero and /dev/random (thanks to Yuri Schaeffer)
Adding python and json scanners
Nothing published for this version
Adding #109 Halt on non-regular files like /dev/zero and /dev/random (thanks to Yuri Schaeffer)
Changing to publishing to pypi with Python 3.9
Adding #99 New file support (thanks to Andy - NebularNerd)
Adding new verbose output to command line with -v or --verbose
-v or --verboseAdding #87 sndhdr update and HD/CD/DVD Image files (thanks to Andy - NebularNerd)
Changing to support Python 3.7 again
Adding #72 #75 #76 #81 .what() to be a drop in replacement for imghdr.what() (thanks to Christian Clauss and Andy - NebularNerd)
.what() to be a drop in replacement for imghdr.what() (thanks to Christian Clauss and Andy - NebularNerd).htmlFixing #32 MP3 Detection improvements (thanks to Andy - NebularNerd and Sander)
Adding #52 magic data for JPEG XS (thanks to Andy - NebularNerd)
Adding #50 details for ZSoft .pcx files (thanks to Andy - NebularNerd)
Adding support for multi-part header checks (thanks to Andy)
Adding fix for resetting the stream after reading part of it (thanks to R. Singh)
Adding generic extension mapping for common file types
Adding support for Path for filename
Adding #38 webp mimetype (thanks to phith0n)
Adding #34 test files to build (thanks to James French)
Fixing how confidence works (thanks to Sean Stallbaum)
Adding new methods for stream handling (from_stream, magic_stream) (thanks to Robbert Korving)
Adding support for various other files (thanks to Don Tsang)
Adding support for PCAPNG files (thanks to bannsec)
Adding support for LZ4 and ZSTD archives (Thanks to Sergey Ponomarev)
Adding full magic info in results (Thanks to David Shunfenthal)
Fixing how __main__ was implemented (Thanks to Victor Domingos)
__main__ was implemented (Thanks to Victor Domingos)Adding filename extension hinting for string (Thanks to jiel)
Adding CI tests support for 3.4, 3.5, 3.6 and pypy
Your coding agent can read these notes before it upgrades. Set up the MCP server →