Typst Desktop
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
.typfile, or a project folder with its owntypst.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
tinymistlanguage 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.
- Open Settings, go to Account, enter your TypstDrive server URL, and sign in.
- 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.