google/magikaPublic

Fast and accurate AI powered file content types detection

AI summary: A highly optimized, AI-powered file type detection tool achieving 99% accuracy within milliseconds.

Stars
18.7K
+4 today
Forks
1.2K
Watchers
77
Open issues
125
Open PRs
56
Contributors
~51
Commits
1.8K
Branches
30

RustApache-2.0Created Aug 22, 2023Last push 2d agoLatest release cli/v1.1.0+38 stars this week+698 this month

Quick answers

What is magika?
A highly optimized, AI-powered file type detection tool achieving 99% accuracy within milliseconds.
What does magika do?
Magika replaces traditional, heuristic-based file identification tools like 'libmagic' with a custom deep learning model trained on over 100 million samples. It solves the problem of inaccurate file type detection, particularly for complex or easily confused textual and binary formats. Under the hood, it uses a highly optimized Keras Keras/ONNX classification model that is small enough (a few megabytes) to run efficiently on a single CPU. The tool is capable of accurately identifying over 200 distinct content types in milliseconds, making it suitable for high-throughput environments. This is the exact technology used internally by Google to route and secure files across Gmail, Drive, and Safe Browsing.
Who is magika for?
Security researchers, data engineers, and backend developers who need reliable, fast, and accurate file type detection at scale. Requires basic familiarity with Python or command-line execution.
How do I get started with magika?
pip install magika
How popular is magika on GitHub?
google/magika has 18,690 stars and 1,175 forks on GitHub, and gained 38 stars in the last 7 days.
What license does magika use?
google/magika is released under the Apache-2.0 license.

Star history

since Jul 29, 2026
05K10K15KJul 2026Aug 2026Sep 2026Oct 2026
18.7K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 10 commits2025-10-02: 16 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 1 commit2025-10-07: 12 commits2025-10-08: 8 commits2025-10-09: 1 commit2025-10-10: 15 commits2025-10-11: 1 commit2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 2 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 7 commits2025-10-22: 4 commits2025-10-23: 2 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 16 commits2025-10-30: 13 commits2025-10-31: 17 commits2025-11-01: 0 commits2025-11-02: 1 commit2025-11-03: 1 commit2025-11-04: 0 commits2025-11-05: 3 commits2025-11-06: 0 commits2025-11-07: 1 commit2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 1 commit2025-11-11: 1 commit2025-11-12: 2 commits2025-11-13: 1 commit2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 1 commit2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 5 commits2026-01-11: 0 commits2026-01-12: 1 commit2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 2 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 2 commits2026-02-04: 1 commit2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 3 commits2026-02-12: 8 commits2026-02-13: 2 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 3 commits2026-02-17: 0 commits2026-02-18: 1 commit2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 4 commits2026-02-25: 5 commits2026-02-26: 2 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 3 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 2 commits2026-03-19: 4 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 1 commit2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 1 commit2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 2 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 1 commit2026-04-24: 2 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 5 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 1 commit2026-05-05: 1 commit2026-05-06: 1 commit2026-05-07: 1 commit2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 2 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 1 commit2026-06-10: 2 commits2026-06-11: 2 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 1 commit2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 1 commit2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 5 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 1 commit2026-08-06: 0 commits2026-08-07: 1 commit2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 1 commit2026-08-13: 1 commit2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 1 commit2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 1 commit2026-09-03: 0 commits2026-09-04: 1 commit2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 3 commits2026-09-08: 8 commits2026-09-09: 10 commits2026-09-10: 3 commits2026-09-11: 3 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 5 commits2026-09-16: 2 commits2026-09-17: 0 commits2026-09-18: 4 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 1 commit2026-09-22: 0 commits2026-09-23: 1 commit2026-09-24: 2 commits2026-09-25: 5 commits2026-09-26: 0 commits
269 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    18,690 stars

  • Well documented

    High community health score

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What magika does

Magika replaces traditional, heuristic-based file identification tools like 'libmagic' with a custom deep learning model trained on over 100 million samples. It solves the problem of inaccurate file type detection, particularly for complex or easily confused textual and binary formats. Under the hood, it uses a highly optimized Keras Keras/ONNX classification model that is small enough (a few megabytes) to run efficiently on a single CPU. The tool is capable of accurately identifying over 200 distinct content types in milliseconds, making it suitable for high-throughput environments. This is the exact technology used internally by Google to route and secure files across Gmail, Drive, and Safe Browsing.

Security researchers, data engineers, and backend developers who need reliable, fast, and accurate file type detection at scale. Requires basic familiarity with Python or command-line execution.

  • Deep learning core: Utilizes a custom, trained neural network instead of traditional magic number heuristics for detection.
  • Millisecond inference: Optimized to perform predictions almost instantaneously, even without GPU acceleration.
  • Massive training dataset: Model behavior is informed by a training corpus of approximately 100 million diverse file samples.
  • Broad format coverage: Accurately distinguishes between over 200 different binary and textual file types.
  • Lightweight footprint: The entire classification model weighs only a few megabytes, ensuring low memory overhead.

Where teams use it

Security scanning pipelines

Security teams can integrate Magika to accurately identify file types before routing them to specific malware analysis engines.

Data ingestion routing

Data engineers processing massive user uploads can use the tool to reliably sort files into appropriate processing queues based on actual content.

Replacing libmagic

Developers experiencing high error rates with traditional file command utilities can drop in Magika for significantly improved accuracy.

High-throughput content filtering

Cloud service providers can scan millions of attachments daily without incurring massive compute costs due to the model's CPU optimization.

Getting started: pip install magika

README

main branch

Magika

image NPM Version image image Go Version

OpenSSF Best Practices CodeQL Python Coverage Actions status PyPI Monthly Downloads PyPI Downloads

Magika is a novel AI-powered file type detection tool that relies on the recent advance of deep learning to provide accurate detection. Under the hood, Magika employs a custom, highly optimized model that only weighs about a few MBs, and enables precise file identification within milliseconds, even when running on a single CPU. Magika has been trained and evaluated on a dataset of ~100M samples across 200+ content types (covering both binary and textual file formats), and it achieves an average ~99% accuracy on our test set.

Here is an example of what Magika command line output looks like:

Magika is used at scale to help improve Google users' safety by routing Gmail, Drive, and Safe Browsing files to the proper security and content policy scanners, processing hundreds billions samples on a weekly basis. Magika has also been integrated with VirusTotal (example) and abuse.ch (example).

For more context you can read our initial announcement post on Google's OSS blog, you can consult Magika's website, and you can read more in our research paper, published at the IEEE/ACM International Conference on Software Engineering (ICSE) 2025.

You can try Magika without installing anything by using our web demo, which runs locally in your browser!

Highlights

  • Available as a command line tool written in Rust, a Python API, and additional bindings for Rust, JavaScript/TypeScript (with an experimental npm package, which powers our web demo), and GoLang (WIP).
  • Trained and evaluated on a dataset of ~100M files across 200+ content types.
  • On our test set, Magika achieves ~99% average precision and recall, outperforming existing approaches -- especially on textual content types.
  • After the model is loaded (which is a one-off overhead), the inference time is about 5ms per file, even when run on a single CPU.
  • You can invoke Magika with even thousands of files at the same time. You can also use -r for recursively scanning a directory.
  • Near-constant inference time, independently from the file size; Magika only uses a limited subset of the file's content.
  • Magika uses a per-content-type threshold system that determines whether to "trust" the prediction for the model, or whether to return a generic label, such as "Generic text document" or "Unknown binary data".
  • The tolerance to errors can be controlled via different prediction modes, such as high-confidence, medium-confidence, and best-guess.
  • The client and the bindings are already open source, and more is coming soon!

Table of Contents

  1. Getting Started
    1. Installation
    2. Quick Start
  2. Documentation
  3. Security Vulnerabilities
  4. License
  5. Disclaimer

Getting Started

Installation

Command Line Tool

Magika ships a CLI written in Rust, and can be installed in several ways.

Via magika python package:

pipx install magika

Via brew (macOS / Linux)

brew install magika

Via installer script:

curl -LsSf https://securityresearch.google/magika/install.sh | sh

or:

powershell -ExecutionPolicy Bypass -c "irm https://securityresearch.google/magika/install.ps1 | iex"

Via magika-cli Rust package:

cargo install --locked magika-cli

Python package

pip install magika

JavaScript package

npm install magika

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 of Magika's website.

Command Line Tool Examples

% cd tests_data/basic && magika -r * | head
asm/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 --help
Determines 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 version

For more examples and documentation about the CLI, see https://crates.io/crates/magika-cli.

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)
ini

For more examples and documentation about the Python module, see the Python Magika module section.

Documentation

Please consult Magika's website for detailed documentation about:

  • Core Concepts
    • How Magika works
    • Models & content types
    • Prediction modes
    • Understanding the output
  • CLI & Bindings (Python module, JavaScript module, ...)
  • Contributing
  • FAQ
  • ...

Security Vulnerabilities

Please contact us directly at [email protected].

License

Apache 2.0; see LICENSE for details.

Disclaimer

This project is not an official Google project. It is not supported by Google and Google specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

15 total
  1. cli/v1.1.0cli/v1.1.0Apr 24, 20269.5K downloads

    ## Install magika-cli 1.1.0 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/google/magika/releases/download/cli/v1.1.0/magika-cli-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/google/magika/releases/download/cli/v1.1.0/magika-cli-installer.ps1 | iex" ``` ## Download magika-cli 1.1.0 | File | Platform | Checksum | |--------|----------|----------| | [magika-cli-aarch64-apple-darwin.tar.xz](https://github.com/google/magika/releases/download/cli/v1.1.0/magika-cli-aarch64-apple-darwin.tar.xz) | Apple Silicon macOS | [checksum](https://github.com/google/magika/releases/download/cli/v1.1.0/magika-cli-aarch64-apple-darwin.tar.xz.sha256) | | [magika-cli-x86_64-pc-windows-msvc.zip](https://github.com/google/magika/releases/download/cli/v1.1.0/magika-cli-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://github.com/google/magika/releases/download/cli/v1.1.0/magika-cli-x86_64-pc-windows-msvc.zip.sha256) | | [magika-cli-aarch64-unknown-linux-gnu.tar.xz](https://github.com/google/magika/releases/download/cli/v1.1.0/magik

  2. Latest CLI releasecli-latestApr 24, 20262.2K downloads

    This moving release simply replicates the assets and commit hash of the latest CLI release. The latest CLI release is [cli/v1.1.0](https://github.com/google/magika/releases/tag/cli/v1.1.0).

  3. python-v1.0.2python-v1.0.2Feb 27, 2026

    Changelog: - Mark python 3.14 as supported. - Remove direct dependency on numpy. - Remove dependency on python-dotenv (note: .env files are no longer loaded automatically). - Remove onnxruntime<=1.20.1 Windows pin. See all CHANGELOGs here: https://github.com/google/magika/blob/python-v1.0.2/python/CHANGELOG.md#102---2026-02-25

  4. cli/v1.0.2cli/v1.0.2Feb 25, 20265.1K downloads

    ## Install magika 1.0.2 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/google/magika/releases/download/cli/v1.0.2/magika-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/google/magika/releases/download/cli/v1.0.2/magika-installer.ps1 | iex" ``` ## Download magika 1.0.2 | File | Platform | Checksum | |--------|----------|----------| | [magika-aarch64-apple-darwin.tar.xz](https://github.com/google/magika/releases/download/cli/v1.0.2/magika-aarch64-apple-darwin.tar.xz) | Apple Silicon macOS | [checksum](https://github.com/google/magika/releases/download/cli/v1.0.2/magika-aarch64-apple-darwin.tar.xz.sha256) | | [magika-x86_64-pc-windows-msvc.zip](https://github.com/google/magika/releases/download/cli/v1.0.2/magika-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://github.com/google/magika/releases/download/cli/v1.0.2/magika-x86_64-pc-windows-msvc.zip.sha256) | | [magika-aarch64-unknown-linux-gnu.tar.xz](https://github.com/google/magika/releases/download/cli/v1.0.2/magika-aarch64-unknown-linux-gnu.tar.xz) | ARM64

  5. python-v1.0.1python-v1.0.1Oct 31, 2025

    This release marks the first stable release, and the end of the experimental phase. Updated documentation is at the new website: https://securityresearch.google/magika/ See CHANGELOGs here: https://github.com/google/magika/blob/python-v1.0.1/python/CHANGELOG.md#101---2025-10-31.

Code frequency

additions and deletions
+20.9K-20.9KWeek of 2025-09-28: +546 linesWeek of 2025-09-28: -299 linesWeek of 2025-10-05: +15,692 linesWeek of 2025-10-05: -5,181 linesWeek of 2025-10-12: +173 linesWeek of 2025-10-12: -91 linesWeek of 2025-10-19: +36 linesWeek of 2025-10-19: -19 linesWeek of 2025-10-26: +1,703 linesWeek of 2025-10-26: -1,269 linesWeek of 2025-11-02: +306 linesWeek of 2025-11-02: -64 linesWeek of 2025-11-09: +61 linesWeek of 2025-11-09: -25 linesWeek of 2025-11-16: +0 linesWeek of 2025-11-16: -0 linesWeek of 2025-11-23: +14 linesWeek of 2025-11-23: -0 linesWeek of 2025-11-30: +0 linesWeek of 2025-11-30: -0 linesWeek of 2025-12-07: +0 linesWeek of 2025-12-07: -0 linesWeek of 2025-12-14: +0 linesWeek of 2025-12-14: -0 linesWeek of 2025-12-21: +0 linesWeek of 2025-12-21: -0 linesWeek of 2025-12-28: +0 linesWeek of 2025-12-28: -0 linesWeek of 2026-01-04: +12 linesWeek of 2026-01-04: -166 linesWeek of 2026-01-11: +11 linesWeek of 2026-01-11: -0 linesWeek of 2026-01-18: +7 linesWeek of 2026-01-18: -7 linesWeek of 2026-01-25: +0 linesWeek of 2026-01-25: -0 linesWeek of 2026-02-01: +15 linesWeek of 2026-02-01: -4 linesWeek of 2026-02-08: +270 linesWeek of 2026-02-08: -118 linesWeek of 2026-02-15: +191 linesWeek of 2026-02-15: -496 linesWeek of 2026-02-22: +154 linesWeek of 2026-02-22: -475 linesWeek of 2026-03-01: +97 linesWeek of 2026-03-01: -68 linesWeek of 2026-03-08: +0 linesWeek of 2026-03-08: -0 linesWeek of 2026-03-15: +1,319 linesWeek of 2026-03-15: -626 linesWeek of 2026-03-22: +0 linesWeek of 2026-03-22: -5 linesWeek of 2026-03-29: +0 linesWeek of 2026-03-29: -0 linesWeek of 2026-04-05: +0 linesWeek of 2026-04-05: -0 linesWeek of 2026-04-12: +19 linesWeek of 2026-04-12: -13 linesWeek of 2026-04-19: +90 linesWeek of 2026-04-19: -97 linesWeek of 2026-04-26: +47 linesWeek of 2026-04-26: -40 linesWeek of 2026-05-03: +33 linesWeek of 2026-05-03: -20 linesWeek of 2026-05-10: +0 linesWeek of 2026-05-10: -0 linesWeek of 2026-05-17: +77 linesWeek of 2026-05-17: -15 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +26 linesWeek of 2026-06-07: -7 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +6 linesWeek of 2026-06-21: -6 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +45 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +3,198 linesWeek of 2026-07-26: -2,298 linesWeek of 2026-08-02: +83 linesWeek of 2026-08-02: -5 linesWeek of 2026-08-09: +83 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +38 linesWeek of 2026-08-16: -0 linesWeek of 2026-08-23: +0 linesWeek of 2026-08-23: -0 linesWeek of 2026-08-30: +273 linesWeek of 2026-08-30: -0 linesWeek of 2026-09-06: +20,924 linesWeek of 2026-09-06: -6,329 linesWeek of 2026-09-13: +14,070 linesWeek of 2026-09-13: -232 linesWeek of 2026-09-20: +1,747 linesWeek of 2026-09-20: -636 linesSep 28, 2025Sep 20, 2026
+61.4K lines added, -18.6K removed over the last year.

Commits per week

last 52 weeks
460Week of 2025-09-28: 26 commitsWeek of 2025-10-05: 38 commitsWeek of 2025-10-12: 2 commitsWeek of 2025-10-19: 13 commitsWeek of 2025-10-26: 46 commitsWeek of 2025-11-02: 6 commitsWeek of 2025-11-09: 5 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 1 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 5 commitsWeek of 2026-01-11: 1 commitsWeek of 2026-01-18: 2 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 3 commitsWeek of 2026-02-08: 13 commitsWeek of 2026-02-15: 4 commitsWeek of 2026-02-22: 11 commitsWeek of 2026-03-01: 3 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 6 commitsWeek of 2026-03-22: 1 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 1 commitsWeek of 2026-04-19: 5 commitsWeek of 2026-04-26: 5 commitsWeek of 2026-05-03: 4 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 2 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 5 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 1 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 1 commitsWeek of 2026-07-26: 5 commitsWeek of 2026-08-02: 2 commitsWeek of 2026-08-09: 2 commitsWeek of 2026-08-16: 1 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 2 commitsWeek of 2026-09-06: 27 commitsWeek of 2026-09-13: 11 commitsWeek of 2026-09-20: 9 commitsSep 28, 2025Sep 20, 2026
269 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 4 commitsSun 10:00 — 0 commitsSun 11:00 — 2 commitsSun 12:00 — 9 commitsSun 13:00 — 1 commitsSun 14:00 — 2 commitsSun 15:00 — 9 commitsSun 16:00 — 2 commitsSun 17:00 — 5 commitsSun 18:00 — 0 commitsSun 19:00 — 1 commitsSun 20:00 — 0 commitsSun 21:00 — 2 commitsSun 22:00 — 3 commitsSun 23:00 — 1 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 14 commitsMon 6:00 — 2 commitsMon 7:00 — 4 commitsMon 8:00 — 11 commitsMon 9:00 — 18 commitsMon 10:00 — 18 commitsMon 11:00 — 34 commitsMon 12:00 — 26 commitsMon 13:00 — 32 commitsMon 14:00 — 25 commitsMon 15:00 — 13 commitsMon 16:00 — 14 commitsMon 17:00 — 8 commitsMon 18:00 — 3 commitsMon 19:00 — 1 commitsMon 20:00 — 1 commitsMon 21:00 — 5 commitsMon 22:00 — 1 commitsMon 23:00 — 4 commitsTue 0:00 — 1 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 2 commitsTue 6:00 — 1 commitsTue 7:00 — 2 commitsTue 8:00 — 14 commitsTue 9:00 — 12 commitsTue 10:00 — 31 commitsTue 11:00 — 18 commitsTue 12:00 — 12 commitsTue 13:00 — 26 commitsTue 14:00 — 20 commitsTue 15:00 — 17 commitsTue 16:00 — 17 commitsTue 17:00 — 11 commitsTue 18:00 — 2 commitsTue 19:00 — 2 commitsTue 20:00 — 8 commitsTue 21:00 — 4 commitsTue 22:00 — 5 commitsTue 23:00 — 3 commitsWed 0:00 — 0 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 1 commitsWed 4:00 — 1 commitsWed 5:00 — 2 commitsWed 6:00 — 7 commitsWed 7:00 — 12 commitsWed 8:00 — 14 commitsWed 9:00 — 19 commitsWed 10:00 — 35 commitsWed 11:00 — 14 commitsWed 12:00 — 20 commitsWed 13:00 — 28 commitsWed 14:00 — 40 commitsWed 15:00 — 45 commitsWed 16:00 — 24 commitsWed 17:00 — 14 commitsWed 18:00 — 16 commitsWed 19:00 — 2 commitsWed 20:00 — 8 commitsWed 21:00 — 9 commitsWed 22:00 — 10 commitsWed 23:00 — 2 commitsThu 0:00 — 2 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 1 commitsThu 5:00 — 3 commitsThu 6:00 — 2 commitsThu 7:00 — 1 commitsThu 8:00 — 23 commitsThu 9:00 — 33 commitsThu 10:00 — 24 commitsThu 11:00 — 25 commitsThu 12:00 — 21 commitsThu 13:00 — 27 commitsThu 14:00 — 23 commitsThu 15:00 — 35 commitsThu 16:00 — 22 commitsThu 17:00 — 17 commitsThu 18:00 — 11 commitsThu 19:00 — 20 commitsThu 20:00 — 24 commitsThu 21:00 — 14 commitsThu 22:00 — 7 commitsThu 23:00 — 8 commitsFri 0:00 — 7 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 2 commitsFri 4:00 — 1 commitsFri 5:00 — 4 commitsFri 6:00 — 2 commitsFri 7:00 — 0 commitsFri 8:00 — 17 commitsFri 9:00 — 18 commitsFri 10:00 — 21 commitsFri 11:00 — 14 commitsFri 12:00 — 23 commitsFri 13:00 — 30 commitsFri 14:00 — 50 commitsFri 15:00 — 29 commitsFri 16:00 — 17 commitsFri 17:00 — 6 commitsFri 18:00 — 5 commitsFri 19:00 — 1 commitsFri 20:00 — 3 commitsFri 21:00 — 0 commitsFri 22:00 — 2 commitsFri 23:00 — 6 commitsSat 0:00 — 4 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 3 commitsSat 9:00 — 0 commitsSat 10:00 — 2 commitsSat 11:00 — 5 commitsSat 12:00 — 0 commitsSat 13:00 — 3 commitsSat 14:00 — 0 commitsSat 15:00 — 1 commitsSat 16:00 — 2 commitsSat 17:00 — 4 commitsSat 18:00 — 8 commitsSat 19:00 — 2 commitsSat 20:00 — 2 commitsSat 21:00 — 0 commitsSat 22:00 — 0 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Apr 17, 2026daily#17+111
Apr 16, 2026daily#23+107
Apr 14, 2026daily#12+194
  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    295.2K stars · Shell

  • NousResearch/hermes-agent

    The agent that grows with you

    251.2K stars · Python

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    206.7K stars · TypeScript

  • tensorflow/tensorflow

    An Open Source Machine Learning Framework for Everyone

    200.7K stars · C++

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195.2K stars · Rust