Skip to content

Add aicheck CLI for AI content detection#1

Merged
MatrixA merged 1 commit intomainfrom
MatrixA/aicheck-cli
Mar 10, 2026
Merged

Add aicheck CLI for AI content detection#1
MatrixA merged 1 commit intomainfrom
MatrixA/aicheck-cli

Conversation

@MatrixA
Copy link
Owner

@MatrixA MatrixA commented Mar 10, 2026

Summary

Implement a Rust CLI tool (aic) that detects AI-generated content through three provenance signal layers:

  • C2PA manifests (HIGH confidence): reads digitalSourceType and claim_generator from C2PA Content Credentials embedded by DALL-E, Firefly, Bing, Sora, etc.
  • XMP/IPTC metadata (MEDIUM confidence): extracts DigitalSourceType, AISystemUsed, and CreatorTool fields
  • EXIF heuristics (LOW confidence): matches AI tool patterns in Software tag and checks for camera metadata absence

Features

  • Batch processing with recursive directory support
  • Multiple output modes: human-readable (colored), JSON, quiet (exit code only)
  • Metadata info dump via aic info <file>
  • Supports images, video, audio, and PDF formats
  • Test fixtures with XMP-tagged images

Technical Details

Uses Rust crates: c2pa (0.67), clap 4, kamadak-exif, quick-xml (for raw XMP parsing to avoid C++ build issues), serde for JSON serialization. Falls back gracefully when metadata is absent or stripped.

See README.md for usage examples and limitations (~19% detection coverage, metadata stripping by platforms, no support for proprietary watermarks like SynthID).

🤖 Generated with Claude

Add a Rust CLI tool (aic) that detects AI-generated content via three provenance layers:
- C2PA manifest reading (HIGH confidence): digitalSourceType and claim_generator
- XMP/IPTC metadata parsing (MEDIUM confidence): DigitalSourceType, AISystemUsed, CreatorTool
- EXIF heuristics (LOW confidence): Software tag matching and camera metadata absence

Includes batch processing, JSON/human/quiet output modes, and metadata info dump.
Supports images, video, audio, and PDF formats.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@MatrixA MatrixA merged commit e32daf8 into main Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant