Open source at Typst

Learn about the open-source Typst compiler, where to get it, and how to contribute

350+ contributors on typst/typst
45K stars on typst/typst

What is the Typst compiler?

The Typst compiler is the open-source software that translates your Typst markup to PDFs, images, and web pages. The Typst web app adds smart UI, autocomplete, and previews to make it the best place to use Typst.

Install the compiler

To download the Typst compiler to your machine, follow the instructions below. Installation options vary based on operating system and the type of your computer.

Download the .exe

Unpack the ZIP file and move the exe file to the folder where you want to keep the Typst compiler.

Add that directory to your PATH environment variable so that you can call Typst everywhere on the command line.

You can keep Typst up-to-date with typst update.

Install with winget

You can use the Windows Package Manager winget to install the Typst compiler.

Typst will be automatically added to your PATH. You can update it through winget.

Run this command in PowerShell

$ winget install typst

Contributing to Typst

Typst is made better by the community members which contribute new features, bug fixes, documentation, and string translations. To start contributing, check out our contributor’s manual on GitHub and the resources listed here.

Using Typst as a library

You can use the crate typst as a Rust library. This crate lets you embed the Typst compiler in your own applications, for example to generate printable report cards for an automated scanning tool. The Typst compiler is licensed under the Apache-2.0 license, so you are free to use it in commercial projects.

Please refer to our brand guidelines before you use the name “Typst” in your project.

The Cargo logo, a few crates labelled with the Rust logo on a pallet

Always in motion

Since its first open source release in March 2023, Typst has rapidly gained new features in each compiler version, based on the feedback of our users. Check out the standout features of past Typst compiler releases:

Stop worrying and get support

Whether you have just started using Typst or whether you are using it on a global scale, we want to support you. There are two ways to get supported, choose what is right for you!

Approachable Q&A with the community
Forum & Discord

Get support from volunteer community members with using the Typst language and compiler and using Typst as a library in your own apps.

Look up whether someone else has had a similar problem before on the Forum. If you just have a quick question, you can also join our Discord server to get rapid answers in chat.

Enterprise-grade support
OSS Support

Paid expert support with fast turnaround from the Typst team.

Right for you if you are you using the open-source Typst compiler in production. We can help you to troubleshoot problems, build automations, and scale your solution. Get the most out of your Typst deployment.

Frequently Asked Questions

For your convenience, we have gathered all of the most frequently asked questions about the Typst compiler here:

About

What is the difference between the Typst compiler and the Typst web app?

You can use Typst to create documents using both the Typst web app and the Typst compiler.

The Typst compiler is the core engine that transforms your Typst markup to PDF files, HTML web pages, or images. On its own, it is a command-line utility that you can install on your computer or server. It does not come with an editor or a graphical user interface.

The web app is a collaborative cloud environment to edit documents by yourself or with your peers. It is designed as the best place to write Typst and complements the compiler with features like team-wide private packages and comments.

Should I use the Typst compiler or the Typst web app?

It depends on your use case: If you are new to Typst, collaborating with others, or prefer to not download and install software, the web app is your best option.

If you want to use your own editor or use Typst in a program or script, the Typst compiler is the right choice.

If you are working in a team, not all team members need to make the same choice: With Typst Pro, you can check in your project on GitHub or GitLab from the web app and collaborate with other team members using the local compiler.

You can compile every Typst file in both the web app and using the local Typst compiler and obtain the same results, unless the file relies on private packages not accessible in the respective environment.

How do I get started with Typst?

To get started with Typst, first choose whether you want to use the web app or the local compiler. The question right above can help you to make a choice.

If you go with the web app:

Create an account by signing up. Then, create a new project. After that, you can enter your Typst markup in the left pane and see how the compiled document looks on the right.

If you go with the compiler:

First, install the Typst compiler. Depending on your operating system and your processor architecture, different options on how to install the Typst compiler are available to you. You can check out an overview in the "Install the compiler" section on this page or refer to the corresponding question in this FAQ.

Once you have installed the compiler, create a file to contain Typst markup. By convention, this file is often called main.typ and placed in its own directory. Open this file in your editor. Then, open a terminal and run typst watch main.typ in the same directory. This will create an empty PDF file called main.pdf. Every time you change and save the main.typ file, Typst will automatically create a new PDF with the changes. Some PDF viewers automatically refresh when the document has changed, in others (e.g. Adobe Acrobat), you need to manually reload the file. On Windows, a good PDF reader to use with Typst is Sumatra PDF, on macOS, Skim is a popular choice.

In both cases:

Once you have set up your environment, proceed by following our tutorial.

Is Typst safe to use?

We take special care to ensure that using Typst is safe for you and your data, even if you compile Typst documents from authors you do not trust. The same applies if you are using packages from Typst Universe. Typst documents are compiled in a sandbox designed for safety and privacy.

Typst documents can only read files in the project root. For projects in the web app, this means a project can only read its own files, not the files of other projects. When using the local Typst compiler, the project root is the directory you placed the file you compile in, although you can change this default with a CLI argument.

During compilation, Typst code cannot make any requests to the network other than to fetch packages from the official registry and cannot use any other applications on your computer.

If you need the capabilites of native software in Typst documents, you can integrate them with sandboxed WebAssembly plugins.

Using the Typst compiler

How do I install the Typst compiler?

Your options to install Typst depend on your operating system and processor architecture. On most common systems, you can either install the compiler from your package manager or download one of our prebuilt binaries. You can check out an overview of the available ways to install on your platform in the "Install the compiler" section on this page.

If you downloaded a prebuilt binary, you will need to save it in a directory on your computer that is in your PATH variable, so that if you type typst in your terminal, it knows where to find the Typst binary. Instructions on how to change the path variable depend on the operating system. We have put links in the section above. If you install using a package manager, it automatically adds Typst to the PATH for you.

If you want to run Typst on a platform for which we do not provide a prebuilt binary, you can compile Typst yourself using Rust and Cargo. Refer to our README to learn more.

Can I use Typst in my code editor?

Yes! The community has provided plugins for various code editors, including Visual Studio Code, Neovim, Emacs, Helix, and Zed. The most popular community plugin for Typst is Tinymist.

Of course, if you prefer to just use the compiler CLI instead of a language server, you can also do so. Typst will compile your .typ files from the command line.

Can I embed the Typst compiler in my application?

Yes, you can use the Typst compiler as a binary in your application. It is licensed under the permissive Apache-2.0 license, so you are free to embed it into other free or commercial software. Keep in mind that Typst contains a NOTICE file with acknowledgements for its downstream dependencies. The Apache-2.0 license requires you to redistribute this file with any modified copies the Typst compiler or software incorporating the Typst compiler.

You can also obtain Typst as a Rust library on crates.io. Rust can interface with C over its FFI, so you'll likely be able to interface with Typst even if your project is in another language. There are community-maintained bindings for Typst available for various programming languages.

To use the Typst crate, you will need to implement the World trait that governs how the Typst sandbox can interact with your system, e.g. for reading files and retrieving packages. You can check out the typst-kit crate to aid you in your implementation.

How do I update the Typst compiler?

If you have obtained your Typst compiler via a package manager, update using its update mechanism. Depending on the package manager, this may be a manual or automatic process.

If you installed a prebuilt binary, you can instead run typst update in your terminal to obtain the newest released Typst compiler.

Can I use the open-source Typst compiler in my company?

Yes, you can use both the Typst compiler CLI and the typst Rust library in your company. Both are licensed under the permissive Apache-2.0 license. Keep in mind that Typst contains a NOTICE file with acknowledgements for its downstream dependencies. The Apache-2.0 license requires you to redistribute this file with any modified copies the Typst compiler or software incorporating the Typst compiler.

If you build a public-facing product with Typst and want to use the name "Typst" or our logo in your marketing material, refer to our brand guidelines for guidance on what uses are allowed and what is not permitted.

In case you want a second set of eyes on your solution with Typst, we offer commercial support for the open-source Typst compiler. Reach out if you would like to learn more.

How do I use packages with the Typst compiler?

You can use packages from Typst Universe just the same as in the web app: Just type #import "@preview/package-name:1.0.0", of course, replacing package name and version. The Typst compiler will download the package from Typst Universe and cache it on your computer.

Using templates with the Typst compiler CLI is also possible through the typst init command: For example, to create a project from the charged-ieee template, run typst init @preview/charged-ieee. This will create a new directory with the same name and the template initialized within. You can also customize the directory name.

Finally, you can add your own local packages. You can use any namespace for this, but using @local is recommended. You can find instructions for local packages here.

Where do I find documentation for the Typst compiler?

The best place to find documentation for the compiler is through the typst help command. Run it in your terminal to display help for the compiler CLI and its commands. You can append the name of a subcommand to learn more, e.g. typst help compile.

If you installed Typst with a package manager on Linux or macOS, you may also be able to access this documentation through the man pages by running man typst. Hyphenate subcommands to access their help, e.g. man typst-compile.

We plan to add a dedicated section for the compiler CLI to our online documentation in the future.

Open source

Is Typst open-source?

The Typst compiler is free, open source software under the permissive Apache-2.0 license. It is all you need to compile Typst markup to PDFs and other files. All markup that compiles in the web app will work with the Typst compiler and vice versa.

Typst Universe forms an ecosystem with 800+ packages and templates. Each package or template on Universe is licensed under an open license, either an OSI-vetted open source license, CC-BY, CC-BY-SA, or CC0.

The Typst web app is proprietary, commercial software. It ships with features to manage your Typst projects, an integrated environment with instant preview and an editor, and collaboration. The web app uses APIs of the Typst compiler to improve the experience of using Typst. You can license a copy of the Typst web app for self-hosting on your own infrastructure with Typst On-Premises.

Can I use Typst's name and logo?

We intend the Typst name and logo to be marks of quality and trust in software. When a user sees the our name or logo, they should know what to expect. Therefore, we have put together guidelines for the use of the Typst name and logo. You can find them on our brand guidelines page.

In short, using our name and logo to refer to the Typst web app, the Typst compiler, the Typst markup language, or the company Typst GmbH is allowed and requires no further permission.

If you wish to use our name and logo in your project that is incorporating Typst, is a tool for Typst, or is intended for use alongside Typst, you should modify it enough for a user to see that your project is related but distinct. Refer to the brand guidelines for full guidance on such uses.

Will Typst remain open-source?

Yes. We are committed to keep the Typst compiler open-source: We believe that you should have certainty that your investment in Typst is not jeopardized by a change in licensing.

There is a healthy open source ecosystem around the Typst compiler. It has 350+ contributors, most of which are not affiliated with Typst GmbH, the company behind Typst.

The separation between open-source and Commercial software at Typst is clear: The compiler is open and the web app is commercial. Their support for the Typst markup language is the same: All markup that compiles in the web app will work with the Typst compiler and vice versa. We commit to not adding proprietary extensions to the Typst language, so that will remain true in the future.

How can I support Typst’s development?

There are several ways to support Typst's development. The best way to do so is to adopt Typst in your company or university. Ask for access to Typst Pro or Typst On-Premises.

A great way to support us as an individual user is to subscribe to Typst Pro if you are using the web app or to support us on GitHub Sponsors if you are using the Typst compiler as a CLI, in your editor, or as a library.

You can also support us by recommending Typst to your colleagues, friends, and on the internet.

Finally, some active members of the community who contribute to the Typst compiler and its dependencies have set up ways through which you can support their work. Check out the contributor list and the dependencies of the Typst compiler for more.

Why is the Typst web app not open-source?

Typst is a complex and ambitious project. We believe that Typst can only be successful if it is backed by resources, including financial resources, and can sustain itself. Hence, we are building the Typst web app that captures some of the value that Typst creates.

The division between the open-source compiler and the proprietary web app is clear and easy to understand. It is also fair, since users can access all of the features needed to compile a document using only free software.

The Typst web app and our other commercial solutions allow us to fund work of full-time developers on the Typst compiler, learn how Typst is used in practice, and build the solutions that enterprise users expect.

How can I get started as a contributor?

First, join the Discord server as that's where most discussion about Typst's development happens. Also make sure to read the architecture documentation for new contributors to familiarize yourself with the architecture of the compiler and the CONTRIBUTING.md file.

Pick the area that interests you the most. In Typst, you can work on topics around but not limited to scripting interpreters, layout, graphics, internationalization, PDF, and the web.

For your first PR, choose a small and self-contained change. This allows you to get your bearings in the code base. Small contributions are easier to review for our maintainers and allow us to get to know you and build trust. Do this even if you want to contribute a specific, larger feature as this will increase the chance of getting it merged quickly.

Can I create my own Typst editor app?

Yes, but its name and logo need to be distinct from current or future products that Typst GmbH has released or might release. You must not call it "Typst" or "Typst" with just descriptive words added. Likewise, you should not use our unmodified logo nor create the impression that it is a product of or supported by Typst GmbH. Review our brand guidelines for further guidance.

What relationship does the company Typst have with the open source project?

Typst is backed by the company Typst GmbH, incorporated in Germany in 2023. It was founded by the two original developers behind Typst, Laurenz Mädje and Martin Haug.

Typst GmbH employs staff to develop and maintain the Typst compiler and the web app. It is funded by revenue from our commercial software and solutions and through the support of private and public partners invested in the Typst ecosystem.

Typst GmbH sets the roadmap for development on the Typst compiler, aligns contributors with the project vision, and hosts spaces for our community to gather.

Furthermore, Typst GmbH is the trusted single touch point for organizations looking to enter the Typst ecosystem. We help them adopt Typst and build solutions around them as a trusted partner.