Security-focused local file type detection powered by Google Magika
Project description
detect-file-type-local
An OpenClaw skill for AI-powered local file type detection.
Wraps Google Magika to provide ML-based file type identification that runs entirely offline. No API keys, no network calls — just local inference on an embedded ONNX model.
Features
- 214 file types detected by content, not extension
- Fully offline — no network access required
- Fast — only reads the bytes needed for classification
- Batch support — process multiple files or entire directories
- Multiple output formats — JSON, human-readable, bare MIME type
- Stdin support — pipe content directly
Quick Start
pip install -e .
# Detect a single file
detect-file-type-local document.pdf
# Batch detect
detect-file-type-local --human *.pdf *.png
# Recursive directory scan
detect-file-type-local -r ./uploads/
# Pipe from stdin
cat mystery_file | detect-file-type-local -
Compatibility alias: detect-file-type remains available.
Output Formats
JSON (default):
{
"path": "photo.jpg",
"label": "jpeg",
"mime_type": "image/jpeg",
"score": 0.99,
"group": "image",
"description": "JPEG image",
"is_text": false
}
Human-readable:
photo.jpg: JPEG image (image/jpeg) [score: 0.99]
MIME-only:
image/jpeg
OpenClaw Skill
See SKILL.md for the OpenClaw skill definition, including structured output schemas and usage guidance for LLM integration.
Note: this skill currently uses manual local installation (pip install -e ...). Auto-install metadata will be added after a public package artifact is published and resolvable.
Development
pip install -e '.[dev]'
pytest tests/ -v
ruff check .
Release
PyPI publishing is automated via GitHub Actions (Publish Python Package workflow):
- Create a GitHub release with a tag matching package version (for example,
v0.1.0) - Workflow builds and validates artifacts
- Workflow publishes to PyPI via trusted publishing
After PyPI release, update and republish the ClawHub skill metadata to enable auto-install from detect-file-type-local.
License
MIT — see LICENSE.
This project uses Google Magika (Apache-2.0). See NOTICE and THIRD_PARTY_LICENSES.md.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file detect_file_type_local-0.1.0.tar.gz.
File metadata
- Download URL: detect_file_type_local-0.1.0.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d76ba356151607d20979d3ed4be3d6650207ec94447eff73e0d3a4155209316
|
|
| MD5 |
d2afb7cbe286bda941ca576d13dabb55
|
|
| BLAKE2b-256 |
4ef094a74268d75461b69c79acfe051ce55a867181bc5da005190a64f34f8dce
|
Provenance
The following attestation bundles were made for detect_file_type_local-0.1.0.tar.gz:
Publisher:
pypi-publish.yml on pgeraghty/openclaw-detect-file-type-local
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
detect_file_type_local-0.1.0.tar.gz -
Subject digest:
9d76ba356151607d20979d3ed4be3d6650207ec94447eff73e0d3a4155209316 - Sigstore transparency entry: 997276536
- Sigstore integration time:
-
Permalink:
pgeraghty/openclaw-detect-file-type-local@e0e4359f9ddfe133864d1a7cff5b462ccddaa66e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/pgeraghty
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@e0e4359f9ddfe133864d1a7cff5b462ccddaa66e -
Trigger Event:
push
-
Statement type:
File details
Details for the file detect_file_type_local-0.1.0-py3-none-any.whl.
File metadata
- Download URL: detect_file_type_local-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d72b8d39971d0d57696c5a7e741c2fb10538111e33c3233ef3477a43019d4b5
|
|
| MD5 |
d228a8b3e24aa00897c3eb6a29ca40f1
|
|
| BLAKE2b-256 |
5cc81f4e2faabd5056aa5ba612d417396f8c59a304a92928defad5adb92e9f79
|
Provenance
The following attestation bundles were made for detect_file_type_local-0.1.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on pgeraghty/openclaw-detect-file-type-local
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
detect_file_type_local-0.1.0-py3-none-any.whl -
Subject digest:
9d72b8d39971d0d57696c5a7e741c2fb10538111e33c3233ef3477a43019d4b5 - Sigstore transparency entry: 997276540
- Sigstore integration time:
-
Permalink:
pgeraghty/openclaw-detect-file-type-local@e0e4359f9ddfe133864d1a7cff5b462ccddaa66e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/pgeraghty
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@e0e4359f9ddfe133864d1a7cff5b462ccddaa66e -
Trigger Event:
push
-
Statement type: