- Go 69.2%
- Shell 10.7%
- PowerShell 9.4%
- NSIS 8.7%
- JavaScript 2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
A silent Windows setup copied verae-print.exe while VeraeNetPrint and the tray still had the files open, skipped the locked copies, and left the old binary to reject the new flags. launch-tray on that binary then started a second server. Stop and wait, then copy, and abort if a file is still locked. macOS bootouts the LaunchDaemon before the payload is copied, and Debian stops the unit from preinst. launch-tray only starts the tray. Co-authored-by: George Lambert <marchon@gmail.com> |
||
| .github/workflows | ||
| assets | ||
| cmd | ||
| docs | ||
| internal | ||
| platform | ||
| scripts | ||
| site/printit.verae.ai | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| README.md | ||
PrintToVeraeTimeStamp
Print / CLI helper that saves {name}.pdf, stamps the digest with Verae, and writes {name}-verae-timestamp-{RECEIPTID}.pdf.
Only the SHA-256 digest is sent to Verae. Document bytes never leave the machine.
Install
Downloads: printit.verae.ai (macOS .pkg, Windows .zip, Linux .tar.gz).
macOS (recommended): open VeraePrintStamp-macos.pkg. First launch opens customer.verae.ai for an xVerae- signing key.
Windows (GUI installer):
Download VeraePrintStamp-windows-amd64-setup.exe from printit.verae.ai
Run the installer → Finish with “Run setup” → paste your xVerae- key
verae-print stamp .\document.pdf
Debian / Ubuntu:
sudo apt install ./verae-print_amd64.deb
verae-print setup
verae-print stamp document.pdf
Network printer (optional, separate from the driver): an IPP Everywhere queue named Verae Timestamp for other devices on the LAN. Install the standalone package, or leave the driver installer’s option off (Windows checkbox, macOS Customize, Debian debconf). Both use one service and one tray / menu-bar control. On Windows the service advertises through DNS-SD (DnsServiceRegister) because the DNS Client owns UDP 5353, writes %ProgramData%\Verae\logs\netprint.log, and the setup starts the tray for the logged-in user. Public networks and a local Windows queue stay off unless you opt in. The standalone Windows folder is C:\Program Files\Verae\NetPrint (the driver stays in PrintStamp). The LAN fallback port is 8632, so it does not collide with the driver helper on 127.0.0.1:8631. See docs/network-printer.md.
| OS | Standalone | With the driver (off unless you opt in) |
|---|---|---|
| Windows | VeraeNetPrint-windows-amd64-setup.exe |
Checkbox on the driver setup’s options page |
| macOS | VeraeNetPrint-macos.pkg |
Customize → Network timestamp printer |
| Debian | sudo apt install ./verae-netprint_amd64.deb |
sudo apt install ./verae-print_amd64.deb and answer the prompt, or install verae-netprint later |
Linux (tarball, any distro):
tar xzf VeraePrintStamp-linux-amd64.tar.gz
cd VeraePrintStamp-linux-amd64-*
sudo ./install.sh # CLI + optional CUPS queue
verae-print setup
verae-print stamp document.pdf
From source (macOS):
cd /Users/marchon/research/PrintToVeraeTimeStamp
go build -o "$HOME/bin/verae-print" ./cmd/verae-print
verae-print setup # create account + save xVerae- signing key
verae-print install-printer # Print → Destination → Verae Timestamping
Optional (buried PDF submenu): verae-print install-macos
Ensure $HOME/bin is on your PATH. For the legacy Verae Time JWT channel:
uvx verae-mcp-timestamping-server setup
# or session check:
uvx verae-mcp-timestamping-server session
For the Zapier channel, store an xVerae- token from customer.verae.ai / zap.verae.ai Security tab:
mkdir -p ~/.verae
chmod 700 ~/.verae
printenv XVERAE_TOKEN > ~/.verae/xverae-token # or paste once
chmod 600 ~/.verae/xverae-token
Build the network-printer installers (Debian packages, Windows NSIS setups, macOS binaries and a .pkg when pkgbuild is available):
make installers
# artifacts: build/netprint/
Usage
In any app: File → Print → Destination → Verae Timestamping → Print.
Also: drop a PDF on Verae Print Stamp in /Applications, or Open With.
CLI:
verae-print stamp [--channel=verae|zapier] [--out-dir DIR] [--name STEM] [--open] file.pdf
Default output directory: ~/Documents/Verae Timestamps/
| File | Content |
|---|---|
{name}.pdf |
Exact printed bytes (proven artifact) |
{name}-verae-timestamp-{RECEIPTID}.pdf |
Registration / certificate PDF |
{name}.verae.json |
Receipt sidecar |
Channels:
zapier(default after setup) —zap.verae.ai+ customerxVerae-signing key +attachPdf:trueverae—api.veraetime.net+ JWT in~/.verae/auth.properties(opt-in:-channel=verae)
Signed macOS installer (.pkg)
Same FlightLookup Developer ID + notarization path as Verae Timestamping.app (~/fie/installers/macos/signing.env).
cd /Users/marchon/research/PrintToVeraeTimeStamp
chmod +x platform/macos/pkg/build-pkg.sh
./platform/macos/pkg/build-pkg.sh
# → build/macos-pkg/dist/VeraePrintStamp-0.1.2.pkg
# → build/macos-pkg/dist/VeraePrintStamp-macos.pkg
The pkg installs:
| Path | Role |
|---|---|
/Applications/Verae Print Stamp.app |
Drop / Open With |
/Library/Application Support/Verae/PrintStamp/bin/verae-print |
Stamp CLI (universal) |
/usr/local/bin/verae-print |
Symlink |
| LaunchAgent + CUPS queue | Print → Destination → Verae Timestamping |
Requires: Developer ID Application + Developer ID Installer (FlightLookup), App Store Connect API key in signing.env, Node for bundling the registration PDF builder.
Windows / Linux release archives
./scripts/build-win-linux.sh
./platform/windows/build-installer.sh # NSIS GUI setup.exe (needs makensis)
# on Debian/Ubuntu host:
VERSION=0.1.2 BIN_AMD64=... BIN_ARM64=... ./platform/linux/deb/build-deb.sh all
Windows ships an NSIS GUI installer; stamp via CLI after setup (virtual printer still on the spec roadmap). Debian/Ubuntu use verae-print_*.deb; other distros use the tarball + install.sh.
Status
macOS Destination printer (notarized .pkg), Windows/Linux CLI packages, and branded registration PDF are published at printit.verae.ai.
Contributing
Open questions and design changes in this repository. Pull requests are accepted for review against the spec.
License
UNLICENSED © Verae / George Lambert