Releases: zig-nostr/notary
Release list
Notary v0.8.1
Notary: a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.8.0
The terminal way in is now visible. v0.7.0 added a command that takes your nsec from a terminal without it passing through the window or the clipboard, and then nothing in the app told you it existed. The setup screen shows it now, beside the paste field, with a button to copy it. Both ways work; one of them keeps your key out of more places.
One status line instead of four. Notary used to open with its own name above the current phase above your key, and then count the queue again at the bottom. That is a lot of the window spent telling you things you knew, in an app whose whole job is to show you one question at a time. The screen starts with the actual content now, and there is a single line at the bottom.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/notary/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Notary.app to /Applications, and opens it, ready to use.
Notary is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.
Notary v0.8.0
Notary: a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.8.0
The terminal way in is now visible. v0.7.0 added a command that takes your nsec from a terminal without it passing through the window or the clipboard, and then nothing in the app told you it existed. The setup screen shows it now, beside the paste field, with a button to copy it. Both ways work; one of them keeps your key out of more places.
One status line instead of four. Notary used to open with its own name above the current phase above your key, and then count the queue again at the bottom. That is a lot of the window spent telling you things you knew, in an app whose whole job is to show you one question at a time. The screen starts with the actual content now, and there is a single line at the bottom.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/notary/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Notary.app to /Applications, and opens it, ready to use.
Notary is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.
Notary v0.7.0
Notary: a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.7.0
You can hand Notary a key from the terminal. Until now the only way in was the setup screen, which means your nsec goes through a window and usually the clipboard on its way. There is a command now:
/Applications/Notary.app/Contents/MacOS/signer importIt asks for your nsec and a passphrase without showing what you type, and stores the key encrypted exactly as it stores one it generated itself. It will not take a key as an argument, on purpose: a key on a command line ends up in your shell history and is visible to every other program running as you.
It writes the key for the next launch rather than handing it to a running Notary, so import first and then open it. That is not a shortcut. Notary's approval channel listens on a port that only the app itself knows, and a command able to reach it would need that port published somewhere anything could read.
Opening Notary no longer leads with "delete my key". The unlock screen showed a box asking you to type that phrase, every time, under the passphrase field. It is behind a red Use another key button now. Typing the phrase is still required once you get there, and cancelling clears what you typed.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/notary/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Notary.app to /Applications, and opens it, ready to use.
Notary is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.
Notary v0.6.0
Notary: a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.6.0
Notary remembers what you said. It used to ask about every single request, forever. A client that signs in a loop asked in a loop, and a queue that never empties is a queue you stop reading, which is the opposite of what an approval screen is for.
An answer now lasts as long as you say: Allow once, For a day, Always, or Deny. Four buttons, one press each, rather than a yes/no prompt with the durations hidden somewhere else. A prompt that only offers yes and no is one people learn to hit yes on.
What an answer covers. One app, one thing it asked for, one kind of note. Saying "always" to an app posting notes does not let it encrypt your messages, and it does not carry over to a different app. Deny lasts an hour: long enough that a refused app cannot sit there pestering you, short enough that a wrong tap is not permanent.
A question you never answered is not an answer. If you were away from the machine and a request timed out, the app is refused for that request and nothing is written down. Walking away is not a decision, and storing it as a refusal would lock an app out over an absence.
Notary holds all this in memory, so it lasts as long as the signer is running and is gone when you quit.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/notary/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Notary.app to /Applications, and opens it, ready to use.
Notary is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.
Notary v0.5.0
Notary: a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.5.0
Clients can invite Notary now, not just the other way round. Until now the only way to connect was to copy Notary's bunker:// URL and paste it into your client. Most clients offer the opposite: they show a nostrconnect:// link and wait. Paste one into Notary and it adopts that client.
Three relays instead of one. Notary served on a single relay, which means it stops signing the moment that relay does, and from your client's side that failure is silent: the request goes out, nothing ever answers, and the app just sits there. It now serves three, run by three different operators, so one going down is one connection reconnecting rather than a signer that has quietly stopped.
Serving several relays needed more than a longer list. Your client publishes each request to every relay in the token, so one thing you asked for arrives several times. Notary used to treat those as separate: two approval windows for one question, and two signatures published for one intent. It also meant a client that connected over one relay and then asked over another was told it had never connected. Both are fixed.
Signing out. There was no way out of an account: once a key was unlocked, Notary served it until the process died. Signing out locks the signer and asks for your passphrase again.
Using a different key is a separate button, because it is a different thing: it removes the key from this Mac, and that is the only copy here. It asks you to type a phrase to confirm, and the button does nothing until you do. Have your nsec written down before you use it.
Under it: the release you are reading was built by CI and its tests ran before it was published. That was not true of previous releases, which went from build straight to publish with nothing checking them.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/notary/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Notary.app to /Applications, and opens it, ready to use.
Notary is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.
Notary v0.4.0
Notary: a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.4.0
-
A relay that goes quiet is noticed. Each relay thread waits inside
receiveuntil its relay says something, so a peer that went away without closing left that thread waiting forever. For a signer that is the worst kind of failure: remote signing simply stops, the approval window never opens, the client's request times out, and the daemon still reports the relay as connected.A keeper thread now watches every connection, pings after thirty seconds of silence and half-closes the socket after ninety, which returns the blocked read and lets the relay thread reconnect. It has to be a separate thread, because a thread waiting on a dead peer is the last thing able to notice that it is waiting.
-
Relays have a fourth state,
quiet. The socket is open, nothing has come down it for a while, and a keepalive is out unanswered. Not disconnected, because nothing has failed; not plainly connected either, because the last evidence of that is a minute old. The GUI shows it in amber, and/inforeports it. -
A request cannot get past the staleness check by choosing an absurd timestamp. Notary refuses a NIP-46 request older than two minutes, which is what stops a request captured off the relay from being replayed later. That age was a plain subtraction on a
created_atthe sender picked, and a request stamped with the smallest number ani64holds made the difference too wide to fit, so it wrapped to a negative age. A negative age is not greater than two minutes, so the check waved it through.The arithmetic saturates now: a timestamp that far away reads as stale, which is what the check meant all along. This is a guard rather than the lock, since a request still has to be sealed to your bunker and authorized before anything is signed, but a replay window you can open by choosing a number is not one worth leaving open in the thing that holds your key.
Full history in the CHANGELOG. Your key never leaves the daemon.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/notary/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Notary.app to /Applications, and opens it, ready to use.
Notary is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.
Notary v0.3.0
Notary: a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.3.0
- The install command works again. It looks for
Notary.app, and the previous release still carriedSignet.appfrom before the app was renamed, so every install stopped with "the download did not contain Notary.app". Nothing was wrong with the script: there had been no release since the rename. - The app is called Notary. It was Signet, which already meant a Bitcoin test network, and a signer sharing a name with a testnet is a signer people misread.
- The setup screen reads in full. "Create a new key, or import one you already have..." was cut off mid-sentence at the window's width.
- A copy pass over every screen and both READMEs, and the four screens are now in the README so you can see the app before installing it.
Full history in the CHANGELOG. Your key never leaves the daemon.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/notary/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Notary.app to /Applications, and opens it, ready to use.
Notary is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.
Signet v0.2.0
Signet — a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
What's new in v0.2.0
- Bunker URL in the app — the serving screen now shows the
bunker://connection URL with a Copy button, so you can connect a client without touching the logs. - Live relay status — watch each relay connect in real time on the serving screen.
- One-line install — the
curl … | bashcommand below is new: it verifies the download's checksum and clears quarantine, so the app opens cleanly with no Gatekeeper detour.
Full history in the CHANGELOG. Your key never leaves the daemon.
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/signet/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Signet.app to /Applications, and opens it — ready to use.
Signet is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.
Signet v0.1.1
Signet — a native NIP-46 remote signer for Nostr. macOS (Apple Silicon), ad-hoc signed (not notarized).
Install
curl -fsSL https://raw.githubusercontent.com/zig-nostr/signet/main/scripts/install-macos.sh | bashThe installer downloads the latest release, verifies its SHA-256, installs Signet.app to /Applications, and opens it — ready to use.
Signet is ad-hoc signed, not notarized, on purpose: it holds your keys, so the trust anchor is a build you can reproduce, not an Apple signature. Read the installer or build from source. Your key never leaves the daemon.