A macOS application for digitally signing PDF documents using Belgian electronic identity cards (eID) that just works.
- macOS 10.15 (Catalina) or later
- Belgian eID middleware (download from eid.belgium.be)
- Compatible smart card reader
- Belgian electronic identity card
- Download the latest release
- Open the downloaded
.dmgfile - Drag Autograph to your Applications folder
- Launch Autograph from Applications
Autograph implements comprehensive security measures:
- TOCTOU Protection: Continuous file integrity verification prevents tampering during signing
- Secure PIN Handling: Your eID PIN is never stored and is handled only by the official middleware
- Local Processing: All operations happen locally on your machine
By using Autograph, you agree to our Terms and Conditions.
Privacy: Autograph operates entirely offline. No data is ever sent to external servers. Your documents and personal information remain on your computer at all times.
For more information on how the app works under the hood, please see CLAUDE.md
- Node.js 18+ and npm
- Python 3.9+
- Xcode Command Line Tools
- Belgian eID middleware
# Clone the repository
git clone https://github.com/yourusername/autograph.git
cd autograph
# Install dependencies
npm install
# Set up Python environment
cd signing-tool
uv venv
uv pip install -r requirements.txt
cd ..
# Run in development mode
npm startnpm run devThe packaged application will be in the out directory.
- Ensure your card reader is properly connected
- Check that Belgian eID middleware is installed
- Try restarting the application
- You have 3 attempts before the card locks
- If locked, visit your local municipality to unlock
- Verify the PDF isn't password protected
- Ensure you have write permissions for the output location
- Check that the file hasn't been modified during signing
Contributions are welcome! Please read our contributing guidelines before submitting pull requests.
This project is licensed under the terms specified in the LICENSE file.
For issues and feature requests, please use the GitHub Issues page.
First of all, a big thank you to Matthias Valvekens and other contributors for creating pyHanko, the Python package without which this app would simply not exist.
Additionally, I would like to thank the Belgian Federal Government and the Federal Public Service of Policy and Support for creating a very flexible, standards-compliant and well-documented eID system, and for open sourcing the eID middleware.
And last but not least — Mozilla, for the PDF.js project.