https://github.com/bxavaby/caligra
Linux CLI utility for sanitizing, analysing, and subverting file metadata
https://github.com/bxavaby/caligra
anonymization cli golang linux metadata opsec privacy security
Last synced: 11 months ago
JSON representation
Linux CLI utility for sanitizing, analysing, and subverting file metadata
- Host: GitHub
- URL: https://github.com/bxavaby/caligra
- Owner: bxavaby
- License: mit
- Created: 2025-04-15T01:59:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-04T14:00:51.000Z (about 1 year ago)
- Last Synced: 2025-05-04T15:19:09.274Z (about 1 year ago)
- Topics: anonymization, cli, golang, linux, metadata, opsec, privacy, security
- Language: Go
- Homepage:
- Size: 2.53 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
---
Metadata's oubliette.
---
**CALIGRA** is a CLI metadata control utility for Linux, built to sanitize, analyze, and optionally subvert file metadata. It provides sub-commands to detect, remove, and manipulate metadata in various file formats, therefore enhancing privacy and security.
## Features
- **Metadata Analysis**: Examine files for sensitive metadata that could compromise privacy
- **Metadata Removal**: Thoroughly clean files of identifying information
- **Profile Injection**: Replace scrubbed metadata with consistent anonymized profiles
- **File Monitoring**: Daemon mode watches directories and processes new files automatically
- **Format Support**: Handles common image, audio, video, and text formats
## Installation
### Option 1: Download Pre-built Binary
Download the latest release for your platform:
```bash
# Extract and install
tar xzf caligra-1.0.0-linux-amd64.tar.gz
cd caligra-1.0.0
./install.sh
```
### Option 2: Build from Source
```bash
# Clone the repository
git clone https://github.com/username/caligra.git
cd caligra
# Run the installation script
./install.sh
```
### Prerequisites
Apart from Go 1.21+, CALIGRA requires these external tools:
1. **ExifTool**: for metadata extraction and manipulation
- Debian/Ubuntu: `sudo apt install libimage-exiftool-perl`
- Fedora: `sudo dnf install perl-Image-ExifTool`
- Arch Linux: `sudo pacman -S perl-image-exiftool`
2. **FFmpeg**: for audio and video file handling
- Debian/Ubuntu: `sudo apt install ffmpeg`
- Fedora: `sudo dnf install ffmpeg`
- Arch Linux: `sudo pacman -S ffmpeg`
Without these, functionality will be very limited.
## Usage
### Analyze File Metadata
Examine a file for metadata without modifying it:
```bash
caligra analyse caligra.png
```
Example output:
```
[✓] Analysis completed successfully
File: caligra.png
Type: image (image/png)
Detected Metadata:
• BitDepth: 8
• ColorType: RGB with Alpha
• Compression: Deflate/Inflate
• Directory: .
• ExifToolVersion: 13.25
• Filter: Adaptive
• ImageHeight: 954
• ImageSize: 684x954
• ImageWidth: 684
• Interlace: Noninterlaced
• MIMEType: image/png
• Megapixels: 0.653
• SourceFile: caligra.png
✓ No sensitive metadata detected
```
### Wipe Metadata
Remove metadata and inject a clean profile:
```bash
caligra wipe document.md
```
This creates `document.volena.md` with all metadata removed and replaced with the default profile.
Options:
- `--no-profile`: remove metadata without injecting a profile
- `--in-place`: modify file directly instead of creating a copy
- `--no-backup`: don't keep a backup of the original file
- `--secure`: securely overwrite original data to prevent recovery
### Daemon Mode
Monitor directories for new files and process them automatically:
```bash
# Start the daemon
caligra daemon on
# Check daemon status
caligra daemon status
# Stop the daemon
caligra daemon off
```
The daemon uses the config from `~/.caligra/config/scroud.toml`:
```toml
[watch]
paths = [
# "/home/user/exports",
# "/mnt/ops/dropzone",
# "/srv/www/public"
]
[filter]
extensions = [".md", ".mp3", ".jpg"]
```
## Metadata Profiles
CALIGRA can inject consistent metadata profiles after wiping. The default profile is located at `~/.caligra/config/profile.lua`:
```lua
return {
author = "nynynn",
software = "liberty/1.0",
created = "2000-05-01",
organization = "Untraceable / Decentralized",
location = "Stateless",
comment = "Restructure everything"
}
```
This profile creates a communal signature, helping to anonymize and obscure your digital fingerprint while erasing forensic trails.
## Architecture
CALIGRA's architecture is built around a modular core called SCOUR (Scheduled Cleanup and Overwrite of User Records):
```
caligra/
├── cmd/caligra/ # entrypoint & command routing
├── internal/
│ ├── analyse/ # file analysis
│ ├── wipe/ # metadata removal
│ ├── daemon/ # directory monitoring
│ ├── formats/ # format-specific handlers
│ ├── config/ # config management
│ └── util/ # shared utils
└── config/ # default configs
└── install.sh # installation script
```
### Format Support
CALIGRA currently supports:
- **Images**: JPG, PNG, GIF, TIFF, SVG
- **Audio**: MP3, FLAC, OPUS, OGG
- **Video**: MP4, AVI
- **Text**: TXT, MD, HTML
## Security Considerations
- CALIGRA creates backups by default to prevent data loss
- Files are verified after processing to ensure integrity
- The tool focuses on common metadata but cannot guarantee removal of all possible identifiers
- For maximum security, use with other privacy tools in a comprehensive OPSEC strategy
## Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues to improve the tool.
## License
CALIGRA is released under the MIT License. See the [LICENSE](LICENSE) file for details.
> Part of [The BYZRA Series](https://github.com/bxavaby/byzra) ≡ a toolkit for surgical digital operations. Each tool in the series is designed to address specific needs while maintaining a consistent approach to security and usability.
---
Digital sovereignty through metadata control.
---