---
name: "typst-watch"
section: "1"
platform: "linux"
package: "typst"
version: "1:0.15.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/typst-watch"
---

# typst-watch(1)

Watches an input file and recompiles on changes

## NAME

typst-watch - Watches an input file and recompiles on changes

## SYNOPSIS

**typst-watch** \[**-f**\|**--format**\] \[**--root**\] \[**--input**\] \[**--font-path**\] \[**--ignore-system-fonts**\] \[**--ignore-embedded-fonts**\] \[**--package-path**\] \[**--package-cache-path**\] \[**--creation-timestamp**\] \[**--pretty**\] \[**--pages**\] \[**--pdf-standard**\] \[**--no-pdf-tags**\] \[**--ppi**\] \[**--deps**\] \[**--deps-format**\] \[**-j**\|**--jobs**\] \[**--features**\] \[**--diagnostic-format**\] \[**--open**\] \[**--timings**\] \[**--no-serve**\] \[**--no-reload**\] \[**--port**\] \[**-h**\|**--help**\] \<*INPUT*\> \[*OUTPUT*\]

## DESCRIPTION

Watches an input file and recompiles on changes

## OPTIONS

- **-f**, **--format** *\<FORMAT\>*

  The format of the output file, inferred from the extension by default\

  *Possible values:*

  - •

    pdf

  - •

    png

  - •

    svg

  - •

    html

  - •

    bundle

- **--root** *\<DIR\>*

  Configures the project root (for absolute paths)

  May also be specified with the **TYPST\_ROOT** environment variable.

- **--input** *\<key=value\>*

  Add a string key-value pair visible through \`sys.inputs\`

- **--font-path** *\<DIR\>*

  Adds additional directories that are recursively searched for fonts.

  If multiple paths are specified, they are separated by the system's path separator (\`:\` on Unix-like systems and \`;\` on Windows).

  May also be specified with the **TYPST\_FONT\_PATHS** environment variable.

- **--ignore-system-fonts**

  Ensures system fonts won't be searched, unless explicitly included via \`--font-path\`

  May also be specified with the **TYPST\_IGNORE\_SYSTEM\_FONTS** environment variable.

- **--ignore-embedded-fonts**

  Ensures fonts embedded into Typst won't be considered

  May also be specified with the **TYPST\_IGNORE\_EMBEDDED\_FONTS** environment variable.

- **--package-path** *\<DIR\>*

  Custom path to local packages, defaults to system-dependent location

  May also be specified with the **TYPST\_PACKAGE\_PATH** environment variable.

- **--package-cache-path** *\<DIR\>*

  Custom path to package cache, defaults to system-dependent location

  May also be specified with the **TYPST\_PACKAGE\_CACHE\_PATH** environment variable.

- **--creation-timestamp** *\<UNIX\_TIMESTAMP\>*

  The document's creation date formatted as a UNIX timestamp.

  For more information, see \<https://reproducible-builds.org/specs/source-date-epoch/\>.

  May also be specified with the **SOURCE\_DATE\_EPOCH** environment variable.

- **--pretty**

  Whether to pretty-print produced output.

  This formats the output in a more human-readable, but less space-efficient way. Affects HTML, SVG, and PDF export, but not PNG export.

- **--pages** *\<PAGES\>*

  Which pages to export. When unspecified, all pages are exported.

  Pages to export are separated by commas, and can be either simple page numbers (e.g. '2,5' to export only pages 2 and 5) or page ranges (e.g. '2,3-6,8-' to export page 2, pages 3 to 6 (inclusive), page 8 and any pages after it).

  Page numbers are one-indexed and correspond to physical page numbers in the document (therefore not being affected by the document's page counter).

- **--pdf-standard** *\<PDF\_STANDARD\>*

  One (or multiple comma-separated) PDF standards that Typst will enforce conformance with\

  *Possible values:*

  - •

    1\.4: PDF 1.4

  - •

    1\.5: PDF 1.5

  - •

    1\.6: PDF 1.6

  - •

    1\.7: PDF 1.7

  - •

    2\.0: PDF 2.0

  - •

    a-1b: PDF/A-1b

  - •

    a-1a: PDF/A-1a

  - •

    a-2b: PDF/A-2b

  - •

    a-2u: PDF/A-2u

  - •

    a-2a: PDF/A-2a

  - •

    a-3b: PDF/A-3b

  - •

    a-3u: PDF/A-3u

  - •

    a-3a: PDF/A-3a

  - •

    a-4: PDF/A-4

  - •

    a-4f: PDF/A-4f

  - •

    a-4e: PDF/A-4e

  - •

    ua-1: PDF/UA-1

- **--no-pdf-tags**

  By default, even when not producing a \`PDF/UA-1\` document, a tagged PDF document is written to provide a baseline of accessibility. In some circumstances (for example when trying to reduce the size of a document) it can be desirable to disable tagged PDF

- **--ppi** *\<PPI\>* \[default: 144\]

  The PPI (pixels per inch) to use for PNG export

- **--deps** *\<PATH\>*

  File path to which a list of current compilation's dependencies will be written. Use \`-\` to write to stdout

- **--deps-format** *\<DEPS\_FORMAT\>* \[default: json\]

  File format to use for dependencies\

  *Possible values:*

  - •

    json: Encodes as JSON, failing for non-Unicode paths

  - •

    zero: Separates paths with NULL bytes and can express all paths

  - •

    make: Emits in Make format, omitting inexpressible paths

- **-j**, **--jobs** *\<JOBS\>*

  Number of parallel jobs spawned during compilation. Defaults to number of CPUs. Setting it to 1 disables parallelism

- **--features** *\<FEATURES\>*

  Enables in-development features that may be changed or removed at any time\

  *Possible values:*

  - •

    html

  - •

    bundle

  - •

    a11y-extras

  May also be specified with the **TYPST\_FEATURES** environment variable.

- **--diagnostic-format** *\<DIAGNOSTIC\_FORMAT\>* \[default: human\]

  The format to emit diagnostics in\

  *Possible values:*

  - •

    human

  - •

    short

- **--open** \[*\<VIEWER\>*\]

  Opens the output file with the default viewer or a specific program after compilation. Ignored if output is stdout

- **--timings** *\<OUTPUT\_JSON\>*

  Produces performance timings of the compilation process. (experimental)

  The resulting JSON file can be loaded into a tracing tool such as https://ui.perfetto.dev. It does not contain any sensitive information apart from file names and line numbers.

- **--no-serve**

  Disables the built-in HTTP server for HTML export

- **--no-reload**

  Disables the injected live reload script for HTML export. The HTML that is written to disk isn't affected either way

- **--port** *\<PORT\>*

  The port where HTML is served.

  Defaults to the first free port in the range 3000-3005.

- **-h**, **--help**

  Print help (see a summary with '-h')

- \<*INPUT*\>

  Path to input Typst file. Use \`-\` to read input from stdin

- \[*OUTPUT*\]

  Path to output file (PDF, PNG, SVG, or HTML). Use \`-\` to write output to stdout.

  For output formats emitting one file per page (PNG & SVG), a page number template must be present if the source document renders to multiple pages. Use \`{p}\` for page numbers, \`{0p}\` for zero padded page numbers and \`{t}\` for page count. For example, \`page-{0p}-of-{t}.png\` creates \`page-01-of-10.png\`, \`page-02-of-10.png\`, and so on.
