SirBlob 2cabc3e303
CI / frontend (push) Successful in 20s
CI / backend (push) Successful in 1m27s
Harden Typst wasm parser fallback against panics
2026-07-22 18:07:19 -04:00
2026-07-18 15:00:22 -04:00
2026-07-22 18:00:07 -04:00
2026-07-22 18:00:07 -04:00
2026-07-22 18:00:07 -04:00
2026-07-22 10:39:29 -04:00
2026-07-18 16:56:19 -04:00
2026-07-22 18:00:07 -04:00
2026-07-22 18:00:07 -04:00
2026-07-18 15:00:22 -04:00
2026-07-18 15:00:22 -04:00
2026-07-18 15:00:22 -04:00

Typst Desktop icon

Typst Desktop

Version License Typst Version Rust Tauri SvelteKit Tailwind CSS SQLite

A desktop editor for Typst. Your documents stay as plain files on your own drive, and can optionally sync to a TypstDrive server so the same notes open on any device.

The Typst compiler is built into the app — there is nothing extra to install to write and export documents.

Install

Packages are attached to each release. Set the version you want first:

VERSION=1.1.0
BASE=https://github.com/sirblobby/typst-desktop/releases/download/v$VERSION

Debian and Ubuntu

wget "$BASE/typst-desktop_${VERSION}_amd64.deb"
sudo apt install "./typst-desktop_${VERSION}_amd64.deb"

Installing with apt rather than dpkg -i pulls in libwebkit2gtk-4.1-0 and libgtk-3-0 for you. Debian 12 or Ubuntu 22.04 and newer carry a new enough WebKit.

Remove it with sudo apt remove typst-desktop.

Fedora

wget "$BASE/typst-desktop-${VERSION}-1.x86_64.rpm"
sudo dnf install "./typst-desktop-${VERSION}-1.x86_64.rpm"

Remove it with sudo dnf remove typst-desktop.

Arch

wget "$BASE/typst-desktop-${VERSION}-1-x86_64.pkg.tar.zst"
sudo pacman -U "typst-desktop-${VERSION}-1-x86_64.pkg.tar.zst"

Remove it with sudo pacman -R typst-desktop.

There is no AUR package; the .pkg.tar.zst above is attached to each release directly. Prefer it over the AppImage on Arch specifically — a known WebKitGTK issue on Wayland crashes the AppImage build (Could not create default EGL display) against Arch's current webkit2gtk version. The native package links against your system's webkit2gtk instead, which avoids it.

The AppImage runs on any distribution, so it also works as a fallback on Debian or Fedora — and on Arch too, but may hit the WebKitGTK/EGL crash described above there. Building from source is covered under Development.

Features

  • Local first: Every document is an ordinary file in a folder you choose. Nothing is locked in a database, and any other editor can open the same files.
  • Two views: A file viewer for browsing local and cloud files, and an editor view for writing.
  • Single files or projects: Open a lone .typ file, or a project folder with its own typst.toml, chapters, bibliography, and assets.
  • Live preview: The preview recompiles as you type, and follows whichever file you are editing rather than only the entrypoint. Saving is not required to see changes.
  • Editor: Typst syntax highlighting, snippet autocompletion, a formatting toolbar, page settings, inline diagnostics, and optional tinymist language server support.
  • File explorer: Folder selection, a right-click menu, drag and drop, rename, duplicate, move, and reveal in your file manager.
  • Cloud workspace: Browse your TypstDrive folders, documents, spaces, and everything shared with you. Download what you want on this device and open it straight from the cloud view.
  • Sync: Three-way merge with a conflict resolver, plus optional automatic sync on a timer.
  • Autosave: Off by default, or every 5, 10, or 15 seconds.
  • Images and fonts: Import from anywhere on disk, drag and drop, or pull from your TypstDrive assets. A searchable asset browser with previews sits in the editor toolbar.
  • Thumbnails: Documents and projects show their first compiled page; images show a preview.
  • Image viewer: Open images full screen with zoom and folder navigation.

Storage

By default the workspace lives at ~/typst (for example, /home/blob/typst). Change it in Settings.

Inside the workspace:

Path Contents
<workspace>/ Your folders, projects, and documents.
<workspace>/.assets/ Shared images and fonts available to every project.

Application data — settings, sync state, and the thumbnail cache — is kept in a SQLite database in the platform's app-data directory. Documents themselves are never stored there.

Settings

Settings are grouped into four sections.

Section Contents
Files Workspace folder and autosave delay.
Appearance Light or dark theme.
Account TypstDrive server, sign in and out, automatic sync interval.
About Version, Typst version, license, and links to the official Typst site.

Fonts and Images

Fonts and images work the same way as in TypstDrive. A file is available to the compiler by its name.

Fonts

Import .ttf, .otf, .ttc, or .otc files through Assets, or place them in a folder beside your document. Typst Desktop reads the family name embedded in the file and registers every weight and style under it.

#set text(font: "JetBrains Mono")

The toolbar's font dropdown lists every family available to the open document, including the fonts bundled with the app. If a family is not listed, it has not been picked up, and the name in your document will not resolve.

Images

Reference an image by its file name:

#image("logo.png", width: 50%)

Images in the shared asset library are available to every project. Images inside a project folder are available to that project and override an asset of the same name.

Cloud Workspace

Cloud features are optional. Without an account the app is entirely local.

  1. Open Settings, go to Account, enter your TypstDrive server URL, and sign in.
  2. Switch the file viewer to Cloud.

The cloud view has two places to look. My Drive shows your folders, documents, spaces, and uploaded images and fonts. Shared with me shows everything other people have shared with you, along with the role you were given.

Item Action
Document Download to this device, then Open to edit it.
Space Download as a local project, then Open.
Image or font Download into your shared asset library.

Cards show whether an item is on this device and whether it has local changes waiting to go up. Downloaded documents are managed from the cloud view rather than appearing a second time under Local.

To publish a local project, choose Upload to cloud on it in the Local view. That creates a Space from its contents.

Sync

Sync pulls before it pushes. Use Sync in the editor, or turn on automatic sync in Settings to run it on a timer.

Viewer access is read-only: a document shared with the viewer role can be downloaded and read, but pushing changes back is refused.

Conflicts

When a file changed both locally and in the cloud, a three-way merge is attempted against the version last synced. If the merge cannot be resolved automatically, a conflict resolver opens where you can keep either version or edit the merged result. Binary files cannot be merged and keep the cloud version. Automatic sync pauses while conflicts are unresolved.

Language Server

Typst Desktop can use tinymist for hover documentation, go-to-definition, and richer diagnostics. It is not bundled — install it and make sure it is on your PATH:

curl -L -o ~/.cargo/bin/tinymist \
  https://github.com/Myriad-Dreamin/tinymist/releases/latest/download/tinymist-linux-x64 \
  && chmod +x ~/.cargo/bin/tinymist

The editor header shows the language server status. Without tinymist the editor still has syntax highlighting, autocompletion, and compiler diagnostics.

Development

The app compiles Typst from source, so clone the compiler into this repo's typst/ folder first:

git clone https://github.com/typst/typst.git typst

Then:

bun install
bun run tauri dev

To build a release bundle for your own platform:

bun run tauri build

On Linux, use bun run build:linux instead. It is the same command with NO_STRIP=1 set, which the AppImage bundler needs on a rolling-release distribution. See Platform notes.

Platform notes

.msi packages can only be built on Windows, because the WiX Toolset is Windows-only. Building on the target platform is the supported path for both Windows and macOS.

The Windows installers download the WebView2 bootstrapper when the runtime is missing. Windows 10 (April 2018 or later) and Windows 11 already ship it, so this only affects older systems. The NSIS installer asks whether to install for the current user or the whole machine.

macOS builds are unsigned. Gatekeeper blocks unsigned apps on first launch, so open the app once with right-click then Open, or run xattr -dr com.apple.quarantine "/Applications/Typst Desktop.app" after installing.

Building locally for another platform

Building on the target platform is the supported path. The Typst compiler is a path dependency, so any machine or runner needs it checked out inside this repository:

git clone https://github.com/typst/typst.git typst
git -C typst checkout 9dfd3a08500b7896045f907433cf7b4b02434fad

Linux builds also need the WebKit and GTK development packages:

sudo apt-get install libwebkit2gtk-4.1-dev libgtk-3-dev librsvg2-dev patchelf
bun run build:linux

Build on Ubuntu 22.04 (the CI baseline) rather than a rolling-release distro. glibc compatibility only works forward, so a binary is only guaranteed to run on distros with a glibc version equal to or newer than the one it was built against. This won't cover musl-based distros like Alpine, or glibc-based distros older than the build machine.

On Arch, packaging/arch/PKGBUILD builds and installs a native package via makepkg -si from within packaging/arch/, instead of bun run build:linux.

License

Apache License 2.0. See LICENSE.

Typst Desktop editor preview Typst Desktop project editor preview Typst Desktop editor preview
S
Description
A desktop editor for Typst.
Readme Apache-2.0
894 KiB
Languages
Svelte 44.8%
Rust 36.2%
TypeScript 17%
CSS 1.1%
Shell 0.5%
Other 0.3%