Quick Start
Here you can find a number of quick examples just to get you started.
To learn about Magika’s inner workings, see the Core Concepts section.
Command Line Tool Examples
Section titled “Command Line Tool Examples”% cd tests_data/basic && magika -r * | headasm/code.asm: Assembly (code)batch/simple.bat: DOS batch file (code)c/code.c: C source (code)css/code.css: CSS source (code)csv/magika_test.csv: CSV document (code)dockerfile/Dockerfile: Dockerfile (code)docx/doc.docx: Microsoft Word 2007+ document (document)docx/magika_test.docx: Microsoft Word 2007+ document (document)eml/sample.eml: RFC 822 mail (text)empty/empty_file: Empty file (inode)% magika ./tests_data/basic/python/code.py --json[ { "path": "./tests_data/basic/python/code.py", "result": { "status": "ok", "value": { "dl": { "description": "Python source", "extensions": [ "py", "pyi" ], "group": "code", "is_text": true, "label": "python", "mime_type": "text/x-python" }, "output": { "description": "Python source", "extensions": [ "py", "pyi" ], "group": "code", "is_text": true, "label": "python", "mime_type": "text/x-python" }, "score": 0.996999979019165 } } }]% cat tests_data/basic/ini/doc.ini | magika --: INI configuration file (text)% magika --helpDetermines file content types using AI
Usage: magika [OPTIONS] [PATH]...
Arguments: [PATH]... List of paths to the files to analyze.
Use a dash (-) to read from standard input (can only be used once).
Options: -r, --recursive Identifies files within directories instead of identifying the directory itself
--no-dereference Identifies symbolic links as is instead of identifying their content by following them
--colors Prints with colors regardless of terminal support
--no-colors Prints without colors regardless of terminal support
-s, --output-score Prints the prediction score in addition to the content type
-i, --mime-type Prints the MIME type instead of the content type description
-l, --label Prints a simple label instead of the content type description
--json Prints in JSON format
--jsonl Prints in JSONL format
--format <CUSTOM> Prints using a custom format (use --help for details).
The following placeholders are supported:
%p The file path %l The unique label identifying the content type %d The description of the content type %g The group of the content type %m The MIME type of the content type %e Possible file extensions for the content type %s The score of the content type for the file %S The score of the content type for the file in percent %b The model output if overruled (empty otherwise) %% A literal %
-h, --help Print help (see a summary with '-h')
-V, --version Print versionFor more examples and documentation about the CLI, see https://crates.io/crates/magika-cli.
Python Examples
Section titled “Python Examples”>>> from magika import Magika>>> m = Magika()>>> res = m.identify_bytes(b'function log(msg) {console.log(msg);}')>>> print(res.output.label)javascript>>> from magika import Magika>>> m = Magika()>>> res = m.identify_path('./tests_data/basic/ini/doc.ini')>>> print(res.output.label)ini>>> from magika import Magika>>> m = Magika()>>> with open('./tests_data/basic/ini/doc.ini', 'rb') as f:>>> res = m.identify_stream(f)>>> print(res.output.label)iniFor more examples and documentation about the Python module, see the Python Magika module section.