{"id":27455035,"url":"https://github.com/bxavaby/caligra","last_synced_at":"2025-07-19T13:32:23.722Z","repository":{"id":287995634,"uuid":"966484005","full_name":"bxavaby/caligra","owner":"bxavaby","description":"Linux CLI utility for sanitizing, analysing, and subverting file metadata","archived":false,"fork":false,"pushed_at":"2025-05-04T14:00:51.000Z","size":2649,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-04T15:19:09.274Z","etag":null,"topics":["anonymization","cli","golang","linux","metadata","opsec","privacy","security"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bxavaby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-15T01:59:01.000Z","updated_at":"2025-05-04T14:00:54.000Z","dependencies_parsed_at":"2025-04-15T15:16:25.148Z","dependency_job_id":null,"html_url":"https://github.com/bxavaby/caligra","commit_stats":null,"previous_names":["bxavaby/caligra"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bxavaby/caligra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bxavaby%2Fcaligra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bxavaby%2Fcaligra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bxavaby%2Fcaligra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bxavaby%2Fcaligra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bxavaby","download_url":"https://codeload.github.com/bxavaby/caligra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bxavaby%2Fcaligra/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265942563,"owners_count":23853294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anonymization","cli","golang","linux","metadata","opsec","privacy","security"],"created_at":"2025-04-15T15:16:22.993Z","updated_at":"2025-07-19T13:32:23.709Z","avatar_url":"https://github.com/bxavaby.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/caligra.png\" alt=\"CALIGRA\" width=\"240\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://golang.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/Built%20with-Go-00ADD8.svg?style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-Linux-darkred.svg?style=flat-square\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Status-Alpha-orange.svg?style=flat-square\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Metadata-Sanitizer-82B366.svg?style=flat-square\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/OpSec-Tool-444444.svg?style=flat-square\"\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\u003ci\u003e\u003cb\u003e\nMetadata's oubliette.\n\u003c/b\u003e\u003c/i\u003e\u003c/p\u003e\n\n---\n\n**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.\n\n## Features\n\n- **Metadata Analysis**: Examine files for sensitive metadata that could compromise privacy\n- **Metadata Removal**: Thoroughly clean files of identifying information\n- **Profile Injection**: Replace scrubbed metadata with consistent anonymized profiles\n- **File Monitoring**: Daemon mode watches directories and processes new files automatically\n- **Format Support**: Handles common image, audio, video, and text formats\n\n## Installation\n\n### Option 1: Download Pre-built Binary\n\nDownload the latest release for your platform:\n\n\u003ca href=\"https://github.com/username/caligra/releases/tag/v1.0.0\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Download-v1.0.0-brightgreen.svg?style=for-the-badge\"\u003e\n\u003c/a\u003e\n\n```bash\n# Extract and install\ntar xzf caligra-1.0.0-linux-amd64.tar.gz\ncd caligra-1.0.0\n./install.sh\n```\n\n### Option 2: Build from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/username/caligra.git\ncd caligra\n\n# Run the installation script\n./install.sh\n```\n\n### Prerequisites\n\nApart from Go 1.21+, CALIGRA requires these external tools:\n\n1. **ExifTool**: for metadata extraction and manipulation\n   - Debian/Ubuntu: `sudo apt install libimage-exiftool-perl`\n   - Fedora: `sudo dnf install perl-Image-ExifTool`\n   - Arch Linux: `sudo pacman -S perl-image-exiftool`\n\n2. **FFmpeg**: for audio and video file handling\n   - Debian/Ubuntu: `sudo apt install ffmpeg`\n   - Fedora: `sudo dnf install ffmpeg`\n   - Arch Linux: `sudo pacman -S ffmpeg`\n\nWithout these, functionality will be very limited.\n\n## Usage\n\n### Analyze File Metadata\n\nExamine a file for metadata without modifying it:\n\n```bash\ncaligra analyse caligra.png\n```\n\nExample output:\n```\n[✓] Analysis completed successfully\nFile: caligra.png\nType: image (image/png)\n\nDetected Metadata:\n• BitDepth: 8\n• ColorType: RGB with Alpha\n• Compression: Deflate/Inflate\n• Directory: .\n• ExifToolVersion: 13.25\n• Filter: Adaptive\n• ImageHeight: 954\n• ImageSize: 684x954\n• ImageWidth: 684\n• Interlace: Noninterlaced\n• MIMEType: image/png\n• Megapixels: 0.653\n• SourceFile: caligra.png\n\n✓ No sensitive metadata detected\n```\n\n### Wipe Metadata\n\nRemove metadata and inject a clean profile:\n\n```bash\ncaligra wipe document.md\n```\n\nThis creates `document.volena.md` with all metadata removed and replaced with the default profile.\n\nOptions:\n- `--no-profile`: remove metadata without injecting a profile\n- `--in-place`: modify file directly instead of creating a copy\n- `--no-backup`: don't keep a backup of the original file\n- `--secure`: securely overwrite original data to prevent recovery\n\n### Daemon Mode\n\nMonitor directories for new files and process them automatically:\n\n```bash\n# Start the daemon\ncaligra daemon on\n\n# Check daemon status\ncaligra daemon status\n\n# Stop the daemon\ncaligra daemon off\n```\n\nThe daemon uses the config from `~/.caligra/config/scroud.toml`:\n\n```toml\n[watch]\npaths = [\n    # \"/home/user/exports\",\n    # \"/mnt/ops/dropzone\",\n    # \"/srv/www/public\"\n]\n\n[filter]\nextensions = [\".md\", \".mp3\", \".jpg\"]\n```\n\n## Metadata Profiles\n\nCALIGRA can inject consistent metadata profiles after wiping. The default profile is located at `~/.caligra/config/profile.lua`:\n\n```lua\nreturn {\n    author = \"nynynn\",\n    software = \"liberty/1.0\",\n    created = \"2000-05-01\",\n    organization = \"Untraceable / Decentralized\",\n    location = \"Stateless\",\n    comment = \"Restructure everything\"\n}\n```\n\nThis profile creates a communal signature, helping to anonymize and obscure your digital fingerprint while erasing forensic trails.\n\n## Architecture\n\nCALIGRA's architecture is built around a modular core called SCOUR (Scheduled Cleanup and Overwrite of User Records):\n\n```\ncaligra/\n├── cmd/caligra/          # entrypoint \u0026 command routing\n├── internal/\n│   ├── analyse/          # file analysis\n│   ├── wipe/             # metadata removal\n│   ├── daemon/           # directory monitoring\n│   ├── formats/          # format-specific handlers\n│   ├── config/           # config management\n│   └── util/             # shared utils\n└── config/               # default configs\n└── install.sh            # installation script\n```\n\n### Format Support\n\nCALIGRA currently supports:\n\n- **Images**: JPG, PNG, GIF, TIFF, SVG\n- **Audio**: MP3, FLAC, OPUS, OGG\n- **Video**: MP4, AVI\n- **Text**: TXT, MD, HTML\n\n## Security Considerations\n\n- CALIGRA creates backups by default to prevent data loss\n- Files are verified after processing to ensure integrity\n- The tool focuses on common metadata but cannot guarantee removal of all possible identifiers\n- For maximum security, use with other privacy tools in a comprehensive OPSEC strategy\n\n## Contributing\n\nContributions are welcome! Please feel free to submit pull requests or open issues to improve the tool.\n\n## License\n\nCALIGRA is released under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n\u003e 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.\n\n---\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003eDigital sovereignty through metadata control.\u003c/i\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/bxavaby/BYZRA\"\u003e\n    \u003cimg src=\"./assets/bybyzra.png\" alt=\"The BYZRA Series\" width=\"72\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbxavaby%2Fcaligra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbxavaby%2Fcaligra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbxavaby%2Fcaligra/lists"}