A fast, cross-platform browser extension packaging tool written in Go.
- Fast and lightweight - Single binary with no dependencies
- Smart ignore patterns - Respects
.gitignoreand custom.zignorefiles - Security-first - Automatically excludes sensitive files (
.env,*.key, etc.) - Cross-platform - Works on Linux, macOS, Windows, and FreeBSD
- Simple CLI - Intuitive command-line interface
- Flexible - Package everything or use intelligent filtering
Download the latest release for your platform from the releases page.
# Download and extract
tar -xzf crx-*.tar.gz
# Move to PATH
sudo mv crx /usr/local/bin/
# Verify installation
crx -v- Download the
.zipfile for your architecture - Extract
crx.exe - Add to your PATH or move to a directory in your PATH
- Verify:
crx -v
# Clone repository
git clone https://github.com/yourusername/corazon.git
cd corazon
# Build
go build -o crx .
# Install (optional)
go install# Package extension with ignore rules
crx <source_directory> <output_file>
# Examples
crx ./my-extension extension.zip
crx ./my-extension extension.crx# Include all files, even those in .gitignore/.zignore
crx -a ./my-extension extension-full.zip-a Package all files, ignore .gitignore and .zignore
-v, -version Show version information
Corazon respects multiple ignore file formats to help you exclude unnecessary or sensitive files:
The following files and patterns are ignored by default:
.git/- Git repository data.gitignore- Git ignore file.zignore- Corazon ignore filenode_modules/- Node.js dependencies.DS_Store- macOS metadataThumbs.db- Windows thumbnails*.log- Log files.env,.env.local- Environment variables*.pem,*.key- Private keys
Corazon automatically reads .gitignore files in your extension directory.
Create a .zignore file for Corazon-specific ignore rules. Uses the same syntax as .gitignore:
# Ignore source files
src/
*.ts
# Ignore documentation
docs/
README.md
# But include the built output
!dist/
# Ignore test files
**/*test.js
*.spec.jsfilename- Ignore specific filedirectory/- Ignore entire directory*.ext- Wildcard for file extensions**/pattern- Match in any directory!pattern- Negate (don't ignore)#comment- Comments
# Project structure
my-extension/
├── manifest.json
├── popup.html
├── popup.js
├── icon.png
├── src/ # TypeScript sources
└── node_modules/ # Dependencies
# Package (excludes src/ and node_modules/)
crx ./my-extension extension.zip# Package including all sources and dependencies
crx -a ./my-extension extension-dev.zipCreate .zignore:
# Ignore all markdown except README
*.md
!README.md
# Ignore screenshots
screenshots/Then package:
crx ./my-extension extension.zipBoth .zip and .crx extensions produce valid ZIP archives that work as browser extensions:
crx ./extension extension.zip # Standard ZIP
crx ./extension extension.crx # Chrome extension format- Source directory must contain
manifest.json - Go 1.21+ (for building from source)
| Platform | Architecture | Status |
|---|---|---|
| Linux | amd64 | ✅ |
| Linux | arm64 | ✅ |
| Linux | 386 | ✅ |
| macOS | amd64 | ✅ |
| macOS | arm64 | ✅ |
| Windows | amd64 | ✅ |
| Windows | 386 | ✅ |
| Windows | arm64 | ✅ |
| FreeBSD | amd64 | ✅ |
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Corazon is released under the MIT License.
- Bug reports: Issue tracker
- Feature requests: Issue tracker
- Documentation: Wiki
Built using Go's standard library.