Encrypt a message. Remember the phrase. Send the file anywhere. Pair devices with a QR code. Chat with encrypted messages. No accounts. No recurring fees. Vault files are offline; optional chat uses a delivery relay that cannot read message content (not a plaintext server).
Apple Silicon & Intel · macOS 11 Big Sur or newer
~2 MB DMG Download .dmgv0.29.0 highlights: macOS Keychain-wrapped private key · per-chat lock/unlock with the shared phrase never saved · locked chats display as copyable ciphertext so you can still scroll, select, and decrypt elsewhere (Open-a-vault tab or /vault) · refreshed chat UI with bigger tap targets, smoother peer switching, and a proper mobile back-button flow. Existing installs migrate automatically on first launch.
Read this first. This build is not signed with an Apple Developer certificate and not notarized by Apple. At most it carries an ad-hoc signature, which identifies nobody. macOS is telling you the truth: it cannot verify who built this app. So check the SHA-256 of the file you downloaded first (Verify what you downloaded), then decide.
.dmg and drag QEV.app into your Applications folder.sudo.
If macOS still refuses — some versions report an unsigned app as
"damaged" — removing the download-quarantine flag is the step that helps:
xattr -dr com.apple.quarantine /Applications/QEV.app
Run this only after the SHA-256 matched. It deletes one attribute, the marker that says
the file arrived from the internet. It does not make the app verified and it tells you
nothing about who built it — the hash check is the part that does. Add
sudo in front only if you get "Operation not permitted".
Why this happens at all: signing requires a $99/year Apple Developer
certificate that hasn't been bought yet, so Gatekeeper has nothing to check. These
installers are produced by the public build workflow
(.github/workflows/qev-build.yml) in the
open-source repo, but there is
no reproducible-build attestation, so you cannot independently prove this file came out of
that workflow. You can prove the hash. Versions, test counts, and what has and hasn't been
assessed are on /status/.
x64 · Windows 10 / 11 · WebView2 (auto-installed)
MSI installer · full feature parity with Mac Download .msi or .exe installerv0.29.0 has everything the Mac has: device pairing (QR & safety number), encrypted chat with relay delivery, per-chat lock/unlock, identity backup/restore, and the same vault format — cross-platform compatible with QEV v0.29.0 on Mac and Android.
Read this first. These installers are not Authenticode-signed, so Windows has no publisher identity to check and SmartScreen flags them as unrecognized. The warning is correct.
Get-FileHash command in Verify what you downloaded.An EV Authenticode certificate is what would remove this warning honestly, and it hasn't been bought yet. Until then Windows genuinely cannot tell you who built this installer. The binaries come from the public build workflow in the open-source repo, but that link isn't independently verifiable — the hash is.
arm64 · Android 7.0+
~38 MB APK Download .apk
Sideload build. The APK is signed with a throwaway keystore that CI generates on each run
(see qev-build.yml), not with a stable release key — so the signature
identifies nobody, and a later build signed with a different throwaway key may refuse to
install over this one (you'd uninstall first). Check the SHA-256 before you install:
Verify what you downloaded.
Node 18.17+ · same Vault V2 format · versioned separately from the apps
npm i -g @bryan237l/qev-cli
Interactive use only — not for scripts or CI. qev always
prompts for the phrase on a terminal and refuses to read one from piped stdin ("phrases must
be typed interactively"). There is no --phrase flag and no environment-variable
equivalent. That is deliberate — a phrase sitting in a CI variable or a shell history
isn't a secret any more — but it does mean the CLI is for a human at a terminal, and
cannot be used for unattended automation.
Only one published package name is ours. The CLI is published as
@bryan237l/qev-cli (v0.31.0) and nothing else.
@imagineqira/qev-cli is a brand-aligned name we intend to use later; it is
not published, and as of 2026-07-30 the entire @imagineqira
npm scope is unregistered. If you ever see a package under that name, it did not come from
us — check back here, or against /status/, before installing it.
Which version is which: the macOS, Windows and Android downloads above are app build v0.29.0. The CLI is a separately versioned npm package (v0.31.0). The encrypted file format all of them read and write is Vault V2, which is versioned on its own and does not track the app number. /status/ is the authoritative version and test matrix — if this page ever disagrees with it, /status/ is right.
Downloads = Envelope Core + optional Qira Link. Commercial capture gateway (connectors, Field Service evidence): /platform/ · Versions & test counts: /status/ · Trust marks: /trust/
macOS / Linux — in Terminal, on the file you downloaded:
shasum -a 256 ~/Downloads/QEV_0.29.0_aarch64.dmg
Windows — in PowerShell:
Get-FileHash -Algorithm SHA256 "$HOME\Downloads\QEV_0.29.0_x64_en-US.msi"
Compare the output with the matching row below. Case doesn't matter — PowerShell prints
uppercase, shasum prints lowercase. If it does not match, delete the file and don't
install it.
| File | SHA-256 |
|---|---|
| QEV_0.29.0_aarch64.dmg macOS app build v0.29.0 |
6bcf9af45084ecd609050c64ad082d18e7c995f819ac101a00f44fbaa2b33b8d |
| QEV_0.29.0_x64_en-US.msi Windows installer, app build v0.29.0 |
6158f3edebcd3e5bba3a5da15c276e4c86e3df8f252fdc031d1238f6ec0b1171 |
| QEV_0.29.0_x64-setup.exe Windows setup .exe, app build v0.29.0 |
e4ef7d8c7a30aed90e6a191e5089af682fb2b8cfc624ffce90621100a88e700c |
| QEV-0.29.0-release.apk Android sideload, app build v0.29.0 |
0f625b397b4f7ffe4b2f847f9f4d87401f6d0fc3a6fe6132c15fac7cda998dae |
| QiraLink-0.1.0-alpha.0-aarch64.dmg Qira Link alpha (separate product) |
cd3e002297425454189607c654b3d72fd4e28f2097251d54d768b51b8ae8550f |
| qira-link-install.sh optional install script — verify it before running it |
c097902c5244dfe2fbec5e370df0e5c59a82e7844c46c267e9b5f4abce05e4a1 |
Where these hashes come from. Every file this site serves — including each artifact in the table — is SHA-256 hashed into /site-integrity.json, and that manifest is signed with an Ed25519 key whose public half is published at /site-signer.ed25519.pub. /verify shows how to check that signature yourself. So the chain you can walk without trusting us is: verify the signature over the manifest, then check your file against the manifest. If this table ever disagrees with the signed manifest, the manifest is right and this page is stale.
What a matching hash proves, and what it doesn't. It proves you received the exact bytes this site published, unaltered in transit. It does not prove the software is safe, and it is not a substitute for operating-system code signing, which is still absent here. Signing and notarization are what let macOS and Windows vouch for a publisher before the code runs; buying those certificates is our job, not yours. The CLI is installed from npm rather than from this site, so it is not covered by this manifest.
A private encrypted mesh between devices you own. Same pair-in-person trust model as QEV — at the network layer. No accounts. No VPN provider. No exit nodes. Just your devices reaching your devices, from anywhere.
This alpha is not signed by Apple, so macOS will refuse it on first launch. That refusal is correct. Do this in order:
The manual path needs no Terminal and no sudo password.
We deliberately don't ask you to pipe a URL into a shell. Piping means running code you never
saw, from a server you're still deciding whether to trust, with sudo in it.
Fetch it, verify it, read it, then run it:
cd ~/Downloads
curl -fL -O https://secure.imagineqira.com/downloads/qira-link-install.sh
shasum -a 256 qira-link-install.sh # compare with the table in "Verify what you downloaded"
less qira-link-install.sh # read it: it uses sudo
bash qira-link-install.sh
Everything it does: downloads the alpha DMG to /tmp, mounts it,
copies Qira Link.app into /Applications using sudo
(that's what the password prompt is for), removes the download-quarantine flag, ad-hoc signs
the bundle if macOS reports it as damaged, unmounts the DMG, and launches the app.
The manual steps above reach the same result without a script and without sudo. Prefer them unless you're comfortable reading bash.
Apple Silicon · macOS 11+
~4 MB DMG Download .dmgUnsigned alpha. Follow the numbered steps above, starting with the SHA-256 check (Verify what you downloaded).
Not available for download yet.
— Coming soonThe MSI + WinTun bundling is scripted and ready; we'll post a binary here once we've signed it with an Authenticode certificate. Intel/AMD 64-bit · Windows 10 1809+.
Not available for download yet.
— Coming soonThe APK + VpnService wiring is scripted; we'll post a signed build here once we rotate the Play Store keystore. arm64 · Android 7.0+.
The first time you click Connect on a peer, macOS will pop a dialog asking to share your QEV identity from the Keychain:
"Qira Link wants to use your confidential information stored in
com.imagineqira.qev in your keychain. To allow this, enter the
'login' keychain password."
Click "Always Allow" and enter your Mac login password once. This adds Qira Link to the Keychain item's access-control list; you'll never see the prompt again.
Why this happens: QEV created the item. macOS enforces per-app
access-control lists — only the app that created a keychain item can read it
silently. Qira Link is a different binary, so the OS asks for your consent on
first use. Once both apps are signed with the same Apple Developer ID and
share a keychain-access-groups entitlement (shipping release),
this prompt goes away entirely.
Both messages mean the same thing: this alpha is unsigned, and macOS Gatekeeper blocks unsigned binaries by default. That is the OS doing its job, not a bug. Before you work around it, confirm you actually have the file we published — check the DMG's SHA-256 against the table above. If the hash doesn't match, stop; nothing below is safe to do.
If the hash matched and you still want to run this alpha:
xattr -dr com.apple.quarantine "/Applications/Qira Link.app"
open "/Applications/Qira Link.app"
This removes one specific attribute — the marker saying the file came from the
internet — rather than wiping every extended attribute. It does not make the app
verified. Add sudo in front only if you get "Operation not permitted".
codesign --force --deep --sign - "/Applications/Qira Link.app"
open "/Applications/Qira Link.app"
The - after --sign is a literal minus sign: it produces an ad-hoc,
certificate-less signature. Be clear about what that is. Apple Silicon
requires every binary to carry at least an ad-hoc signature before it will run, so this can
make the app launchable. It carries no authenticity at all — anyone
can ad-hoc sign anything, and the signature you just created is your own, made on your own
machine. It says nothing about who wrote the code or whether it was altered before it
reached you. The SHA-256 check in the previous step is the part that tells you something.
mdfind -name QiraLink-0.1.0-alpha.0-aarch64.dmg
— then double-click that path.
None of this is a substitute for signing. It goes away when the shipping build is signed with an Apple Developer ID certificate and notarized by Apple — that costs $99/year and hasn't been bought yet.
The browser version at secure.imagineqira.com/vault uses the same crypto and the same vault format as the desktop app. No account needed — just open it and start encrypting.
Open the Web VaultHR creates accounts. You need to deliver the temporary password without posting it in a Slack channel that's audited forever. Lock it in QEV, text them the phrase, email them the file. They open it on day one, read the password, delete the file.
The PDF goes through the firm's portal. The password needs to reach the client separately, and email isn't appropriate. Lock the password in QEV, download the box file, hand it off however you want. Tell the client the phrase over a phone call. Done.
She's not going to install 1Password. She's not going to make a LastPass account. She needs to open a file on her laptop, read the Wi-Fi password, and throw the file away. Lock it in QEV, AirDrop it to her, tell her the phrase on the phone.
A diagnosis, a prescription, something private that shouldn't sit in an email thread forever. Lock it in QEV, share the file on a family chat, tell the person the phrase in person. Delete the file after they read it.
A journal entry. An account recovery code. A reminder you don't want a cloud backup to see. QEV writes an encrypted box file to your disk; only you know the phrase. The file survives backups and sync without exposing the contents.
You want to send a reservation or gift detail that shouldn't sit readable in their phone's lock screen notifications. Lock it in QEV, text them the file, whisper them the phrase. They open it when they're ready.
| QEV | Bitwarden Premium | 1Password | Signal | |
|---|---|---|---|---|
| Cost | Free | ~$20/year | $35.88/year | Free |
| 5-year total cost | Free | $99 | $180 | $0 |
| Account required | No | Yes | Yes | Yes (phone number) |
| Works offline forever | Yes | No (server sync) | No (server sync) | No (needs network) |
| Message survives service shutdown | Yes | Depends on export | Depends on export | No |
| Recipient needs the app | No (free web version works) | Yes | Yes | Yes |
| Category | Encrypted envelope | Password manager | Password manager | Messenger |
QEV isn't trying to replace any of these. If you need a password database, get Bitwarden. If you need an end-to-end messenger, get Signal. QEV covers the one case those tools don't: encrypt one secret, once, send the file anywhere, no account, no server, no subscription.
Anything you want to keep private. Up to 256 KiB of text. Passwords, notes, recovery codes, a letter.
Four random words. The app has a generator if you don't have one in mind. You remember this phrase — it is never stored anywhere.
QEV produces an encrypted vault file. Save it wherever you want. The file is safe to send through email, chat, USB, SMS, anything.
If you're sending to someone else, tell them the phrase through a different channel (phone call, in person, text). They open the file in QEV and see the message.
XChaCha20-Poly1305 for encryption. Argon2id for phrase stretching. Both are RFC-standard algorithms implemented by the libsodium library Signal uses. QEV invents no new cryptography.
Every file on this site is SHA-256 hashed and the manifest is signed with ed25519 — including the installers on this page, so you can check a download against it. The public key is published. Anyone can verify the signature against the manifest independently.
How to verify Download hashesNo analytics, no crash reporting, no update-check pings. Encrypting and decrypting a vault happens entirely on your machine — that path never touches the network, and you can confirm it with a packet sniffer. Device pairing and encrypted chat are the exception: those features deliver messages through a relay, so they do use the network when you use them. If you want the strictly offline path, use the vault on its own. See Security for the pairing and chat trust model.
Free and open source. Mac, Windows, Android, and CLI. No account, no payment, no server.