znote 1.1.0

A lightweight desktop editor for Typst with live preview, built with Tauri
docs.rs failed to build znote-1.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

znote

znote is a lightweight desktop editor for Typst, built with Tauri. Type on one side and watch your document render on the other. No compile step, no waiting.

znote at work

Change how the app looks with a look (.zth) and add Typst page templates with an add-on (.znx), both from the Marketplace or imported from a file.

znote also has an assistant. Connect your own Claude subscription (it runs Claude Code), an OpenRouter key, or your own OpenAI-compatible server such as Ollama, and use the assistant to write new pages from a prompt, restructure sections, fix formatting, or edit in plain language. The assistant works directly on your .typ files, every change shows up live in the preview, and you review each change in the editor and keep or undo it.

Below the message box you choose, per chat, how the assistant works:

  • Review answers only in the chat and changes no page.
  • Generate creates or edits pages. Only here do you choose the notebook new pages go in and their template.
  • Design works on how pages look. The assistant may change pages and can look at a picture of any page or slide in the chat, drawn from the text it may see (hidden names stay hidden, every image is a grey box), and looks again after a change to check that everything fits.

More screenshots are in packaging/repo/demo/.

Download

Get znote for Windows, macOS or Linux from the download page, or pick a file from the latest release:

  • Windows: the installer (.exe)
  • macOS: the disk image (.dmg)
  • Linux: Debian and Ubuntu (.deb), Fedora (.rpm) or Arch Linux (.pkg.tar.zst)

Features

  • Live Typst preview that updates as you type
  • Pages in projects and notebooks, kept in one encrypted .znote file with your assistant chats; save with the save button or Ctrl+S
  • Looks for the interface and Typst templates from the Marketplace
  • Export to PDF, PowerPoint and Word
  • Assistant panel, or a layout built around the assistant, with Review, Generate and Design modes
  • Names hidden from the assistant, and a private knowledge base it can search
  • Native, fast and small, powered by Tauri

Documentation

What the assistant sees

With "Hide names" on (Settings > Privacy, or per chat), znote replaces text before it leaves your computer with tokens such as ⟦CUSTOMER_3⟧, and puts the real text back in replies and edits. Only znote knows what a token stands for; it keeps that in your encrypted .znote-knowledge file. Hiding runs in the Rust backend. When it cannot run (no knowledge file, a locked one, or a name finder that is not downloaded) nothing is sent and the chat says why.

Hidden:

  • every term in your glossary (customers, people, projects, products, ...), in every spelling it lists
  • e-mail addresses, phone numbers, IBANs, card numbers, IP addresses and web addresses
  • amounts of money, unless you switch that off
  • with the optional name finder: names of people, organisations, products, projects and places that are not in the glossary. Each page and attached file has a level that sets which of these it hides. The name finder misses some names.
  • this applies to the text of your pages, attached files, web pages the assistant reads, the chat history sent to the provider, the names of projects, notebooks and pages, the instructions znote gives the assistant, and the files Claude Code can read

Not hidden:

  • the facts around a name: "⟦CUSTOMER_3⟧ pays ⟦AMOUNT_4⟧ per month for compressor maintenance" still says what kind of business it is. Only a model on your own computer avoids that.
  • text a glossary term is split by, such as *Acme* Corp, or a term broken over two lines

Click the eye in the editor toolbar to see a page the way the assistant sees it, and to choose what is hidden. The chat overview, behind the eye in the assistant panel's top bar, has two tabs: Sent lists, per message, everything that went to the assistant (the message, the pages and files it read and the pictures of pages), and Pages and files shows each one the way the assistant sees it, where you choose how much is hidden, undo your choices or remove a file from the chat. The eye under a message opens the overview at that message. With hiding off, the assistant sees your pages as they are. A company that ships its own znote can make hiding mandatory; see the privacy policy.

Build from source

znote needs pnpm, Rust and the Tauri prerequisites for your system. The interface kit, the assistant panel, hiding, the encrypted store, the name finder and the Typst compiler and exports come from the vendor/zsuite submodule, so clone with it:

git clone --recurse-submodules https://github.com/ZAL-Analytics/znote.git
cd znote
pnpm install
pnpm tauri dev

In a clone made without --recurse-submodules, run git submodule update --init first.

Verifying a download

Every package on the releases page has two files next to it: a .sha256 checksum and a .asc OpenPGP signature by Arsalan Anwari (arsalan-anwari). The checksum shows the file arrived intact, the signature that it was published by the maintainer and nobody else.

# once: import the signing key, from github or from keys.openpgp.org
curl -sL https://github.com/arsalan-anwari.gpg | gpg --import
gpg --keyserver hkps://keys.openpgp.org --recv-keys 88A9AE5871B9A36EE3305977829EFCCDE81402E6

# for each download, next to its .asc and .sha256
sha256sum -c znote_1.0.0_amd64.deb.sha256
gpg --verify znote_1.0.0_amd64.deb.asc znote_1.0.0_amd64.deb

gpg must print Good signature and the primary key fingerprint 88A9 AE58 71B9 A36E E330 5977 829E FCCD E814 02E6. Any other fingerprint, or a BAD signature, means the file is not the one that was published: do not install it.

Each package also carries a build provenance attestation, which shows it was built by this repository's release workflow from the tagged source:

gh attestation verify znote_1.0.0_amd64.deb --repo ZAL-Analytics/znote