{"id":14982794,"url":"https://github.com/myriad-dreamin/tinymist","last_synced_at":"2026-04-01T16:55:37.979Z","repository":{"id":226303091,"uuid":"768315520","full_name":"Myriad-Dreamin/tinymist","owner":"Myriad-Dreamin","description":"Tinymist [ˈtaɪni mɪst] is an integrated language service for Typst [taɪpst].","archived":false,"fork":false,"pushed_at":"2025-05-13T06:47:15.000Z","size":7858,"stargazers_count":1551,"open_issues_count":83,"forks_count":70,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-13T07:38:49.855Z","etag":null,"topics":["dap","dap-server","formatter","language-server","lsp","lsp-server","typst","vscode-extension"],"latest_commit_sha":null,"homepage":"https://myriad-dreamin.github.io/tinymist","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Myriad-Dreamin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-06T21:30:21.000Z","updated_at":"2025-05-13T03:58:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"b6b3ece4-6f93-4468-b678-81c4afae09c1","html_url":"https://github.com/Myriad-Dreamin/tinymist","commit_stats":{"total_commits":902,"total_committers":29,"mean_commits":"31.103448275862068","dds":0.08869179600886923,"last_synced_commit":"975e4a27bf535c63b534c0db4808658f1d585620"},"previous_names":["myriad-dreamin/tinymist"],"tags_count":110,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Myriad-Dreamin%2Ftinymist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Myriad-Dreamin%2Ftinymist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Myriad-Dreamin%2Ftinymist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Myriad-Dreamin%2Ftinymist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Myriad-Dreamin","download_url":"https://codeload.github.com/Myriad-Dreamin/tinymist/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253899348,"owners_count":21981254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dap","dap-server","formatter","language-server","lsp","lsp-server","typst","vscode-extension"],"created_at":"2024-09-24T14:06:06.037Z","updated_at":"2026-01-07T14:16:14.467Z","avatar_url":"https://github.com/Myriad-Dreamin.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- This file is generated by scripts/link-docs.mjs. Do not edit manually. --\u003e\n# Tinymist\n\n[\u003cimg src=\"https://img.shields.io/github/license/Myriad-Dreamin/tinymist\" alt=\"GitHub license\" /\u003e](https://github.com/Myriad-Dreamin/tinymist/blob/main/LICENSE)[\u003cimg src=\"https://github.com/Myriad-Dreamin/tinymist/actions/workflows/ci.yml/badge.svg?event=push\" alt=\"Actions status\" /\u003e](https://github.com/Myriad-Dreamin/tinymist/actions/workflows/ci.yml)[\u003cimg src=\"https://img.shields.io/badge/view-documentation-blue\" alt=\"Documentation\" /\u003e](https://myriad-dreamin.github.io/tinymist/)[\u003cimg src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\" /\u003e](https://deepwiki.com/Myriad-Dreamin/tinymist)\n\nTinymist \\[ˈtaɪni mɪst\\] is an integrated language service for [Typst](https://typst.app/) \\[taɪpst\\]. You can also call it \u003cruby\u003e微\u003crt\u003ewēi\u003c/rt\u003e\u003c/ruby\u003e\u003cruby\u003e霭\u003crt\u003eǎi\u003c/rt\u003e\u003c/ruby\u003e in Chinese.\n\nIt contains:\n\n- an analyzing library for Typst, see [tinymist-query](/crates/tinymist-query/).\n- a CLI for Typst, see [tinymist](/crates/tinymist/).\n  - which provides a language server for Typst, see [Language Features](https://myriad-dreamin.github.io/tinymist/feature/language.html).\n  - which provides a preview server for Typst, see [Preview Feature](https://myriad-dreamin.github.io/tinymist/feature/preview.html).\n- a VSCode extension for Typst, see [Tinymist VSCode Extension](/editors/vscode/).\n\n## Features\n\nLanguage service (LSP) features:\n\n- [Semantic highlighting](https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide)\n  - The “semantic highlighting” is supplementary to [“syntax highlighting”](https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide).\n- [Code actions](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#provide-code-actions)\n  - Also known as “quick fixes” or “refactorings”.\n- [Formatting (Reformatting)](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#format-source-code-in-an-editor)\n  - Provide the user with support for formatting whole documents, using [typstfmt](https://github.com/astrale-sharp/typstfmt) or [typstyle](https://github.com/Enter-tainer/typstyle).\n- [Document highlight](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#highlight-all-occurrences-of-a-symbol-in-a-document)\n  - Highlight all break points in a loop context.\n  - (Todo) Highlight all exit points in a function context.\n  - (Todo) Highlight all captures in a closure context.\n  - (Todo) Highlight all occurrences of a symbol in a document.\n- [Document links](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_documentLink)\n  - Renders path or link references in the document, such as `image(\"path.png\")` or `bibliography(style: \"path.csl\")`.\n- [Document symbols](https://code.visualstudio.com/docs/getstarted/userinterface#_outline-view)\n  - Also known as “document outline” or “table of contents” _in Typst_.\n- [Folding ranges](https://burkeholland.gitbook.io/vs-code-can-do-that/exercise-3-navigation-and-refactoring/folding-sections)\n  - You can collapse code/content blocks and headings.\n- [Goto definitions](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#show-definitions-of-a-symbol)\n  - Right-click on a symbol and select “Go to Definition”.\n  - Or ctrl+click on a symbol.\n- [References](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#find-all-references-to-a-symbol)\n  - Right-click on a symbol and select “Go to References” or “Find References”.\n  - Or ctrl+click on a symbol.\n- [Hover tips](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#show-hovers)\n  - Also known as “hovering tooltip”.\n  - Render docs according to [tidy](https://github.com/Mc-Zen/tidy) style.\n- [Inlay hints](https://www.jetbrains.com/help/idea/inlay-hints.html)\n  - Inlay hints are special markers that appear in the editor and provide you with additional information about your code, like the names of the parameters that a called method expects.\n- [Color Provider](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#show-color-decorators)\n  - View all inlay colorful label for color literals in your document.\n  - Change the color literal’s value by a color picker or its code presentation.\n- [Code Lens](https://code.visualstudio.com/blogs/2017/02/12/code-lens-roundup)\n  - Should give contextual buttons along with code. For example, a button for exporting your document to various formats at the start of the document.\n- [Rename symbols and embedded paths](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#rename-symbols)\n- [Help with function and method signatures](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#help-with-function-and-method-signatures)\n- [Workspace Symbols](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#show-all-symbol-definitions-in-folder)\n- [Code Action](https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-code-actions)\n  - Increasing/Decreasing heading levels.\n  - Turn equation into “inline”, “block” or “multiple-line block” styles.\n- [experimental/onEnter](https://github.com/rust-lang/rust-analyzer/blob/master/docs/dev/lsp-extensions.md#on-enter)\n  - \u003ckbd\u003eEnter\u003c/kbd\u003e inside triple-slash comments automatically inserts `///`\n  - \u003ckbd\u003eEnter\u003c/kbd\u003e in the middle or after a trailing space in `//` inserts `//`\n  - \u003ckbd\u003eEnter\u003c/kbd\u003e inside `//!` doc comments automatically inserts `//!`\n  - \u003ckbd\u003eEnter\u003c/kbd\u003e inside equation markups automatically inserts indents.\n\nExtra features:\n\n- Compiles to PDF on save (configurable to as-you-type, or other options). Check [Docs: Exporting Documents](https://myriad-dreamin.github.io/tinymist/feature/export.html).\n- Also compiles to SVG, PNG, HTML, Markdown, Text, and other formats by commands, vscode tasks, or code lenses.\n- Provides test, benchmark, coverage collecting on documents and modules. Check [Docs: Testing Features](https://myriad-dreamin.github.io/tinymist/feature/testing.html).\n- Provides builtin linting. Check [Docs: Linting Features](https://myriad-dreamin.github.io/tinymist/feature/linting.html).\n- Provides a status bar item to show the current document’s compilation status and words count.\n- [Editor tools](/tools/editor-tools/):\n  - View a list of templates in template gallery. (`tinymist.showTemplateGallery`)\n  - Click a button in template gallery to initialize a new project with a template. (`tinymist.initTemplate` and `tinymist.initTemplateInPlace`)\n  - Trace execution in current document (`tinymist.profileCurrentFile`).\n\n## Versioning and Release Cycle\n\nTinymist’s versions follow the [Semantic Versioning](https://semver.org/) scheme, in format of `MAJOR.MINOR.PATCH`. Besides, tinymist follows special rules for the version number:\n\n- If a version is suffixed with `-rcN` (\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/images/introduction/frame_0.svg\" /\u003e\u003cimg src=\"assets/images/introduction/frame_1.svg\" alt=\"typst-frame\" /\u003e\u003c/picture\u003e), e.g. `0.11.0-rc1` and `0.12.1-rc1`, it means this version is a release candidate. It is used to test publish script and E2E functionalities. These versions will not be published to the marketplace.\n- If the `PATCH` number is odd, e.g. `0.11.1` and `0.12.3`, it means this version is a nightly release. The nightly release will use both [tinymist](https://github.com/Myriad-Dreamin/tinymist/tree/main) and [typst](https://github.com/typst/typst/tree/main) at **main branch**. They will be published as prerelease version to the marketplace. Note that in nightly releases, we change `#sys.version` to the next minor release to help develop documents with nightly features. For example, in tinymist nightly v0.12.1 or v0.12.3, the `#sys.version` is changed to `version(0, 13, 0)`.\n- Otherwise, if the `PATCH` number is even, e.g. `0.11.0` and `0.12.2`, it means this version is a regular release. The regular release will always use the recent stable version of tinymist and typst.\n\nThe release cycle is as follows:\n\n- If there is a typst version update, a new major or minor version will be released intermediately. This means tinymist will always align the minor version with typst.\n- If there is at least a bug or feature added this week, a new patch version will be released.\n\n## Installation\n\nFollow the instructions to enable tinymist in your favorite editor.\n\n- [VS Cod(e,ium)](https://myriad-dreamin.github.io/tinymist/frontend/vscode.html)\n- [Neovim](https://myriad-dreamin.github.io/tinymist/frontend/neovim.html)\n- [Emacs](https://myriad-dreamin.github.io/tinymist/frontend/emacs.html)\n- [Sublime Text](https://myriad-dreamin.github.io/tinymist/frontend/sublime-text.html)\n- [Helix](https://myriad-dreamin.github.io/tinymist/frontend/helix.html)\n- [Zed](https://myriad-dreamin.github.io/tinymist/frontend/zed.html)\n\n## Installing Regular/Nightly Prebuilds from GitHub\n\nNote: if you are not knowing what is a regular/nightly release, please don’t follow this section.\n\nBesides published releases specific for each editors, you can also download the latest regular/nightly prebuilts from GitHub and install them manually.\n\n- Regular prebuilts can be found in [GitHub Releases](https://github.com/Myriad-Dreamin/tinymist/releases).\n- Nightly prebuilts can be found in [GitHub Actions](https://github.com/Myriad-Dreamin/tinymist/actions).\n  - (Suggested) Use the [tinymist-nightly-installer](https://github.com/hongjr03/tinymist-nightly-installer) to install the nightly prebuilts automatically.\n    - Unix (Bash):\n      ```bash\n      curl -sSL https://github.com/hongjr03/tinymist-nightly-installer/releases/latest/download/run.sh | bash\n      ```\n    - Windows (PowerShell):\n      ```bash\n      iwr https://github.com/hongjr03/tinymist-nightly-installer/releases/latest/download/run.ps1 -UseBasicParsing | iex\n      ```\n  - The prebuilts for other revisions can also be found manually. For example, if you are seeking a nightly release for the featured [PR: build: bump version to 0.11.17-rc1](https://github.com/Myriad-Dreamin/tinymist/pull/468), you could click and go to the [action page](https://github.com/Myriad-Dreamin/tinymist/actions/runs/10120639466) run for the related commits and download the artifacts.\n\nTo install extension file (the file with `.vsix` extension) manually, please \u003ckbd\u003eCtrl+Shift+X\u003c/kbd\u003e in the editor window and drop the downloaded vsix file into the opened extensions view.\n\n## Documentation\n\nSee [Online Documentation](https://myriad-dreamin.github.io/tinymist/).\n\n## Packaging\n\nStable Channel:\n\n\u003ca href=\"https://repology.org/project/tinymist/versions\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://repology.org/badge/vertical-allrepos/tinymist.svg\" alt=\"Packaging status\" style=\"max-width: 100%; height: auto;\" /\u003e\u003c/a\u003e\n\nNightly Channel:\n\n\u003ca href=\"https://repology.org/project/tinymist-nightly/versions\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"https://repology.org/badge/vertical-allrepos/tinymist-nightly.svg\" alt=\"Packaging status\" style=\"max-width: 100%; height: auto;\" /\u003e\u003c/a\u003e\n\n## Roadmap\n\n### Short Terms\n\nTo encourage contributions, we create many [Pull Requests](https://github.com/Myriad-Dreamin/tinymist/pulls) in draft to navigate short-term plans. They give you a hint of what or where to start in this large repository.\n\n### Long Terms\n\nWe are planning to implement the following features in typst v0.14.0 or spare time in weekend:\n\n- Type checking: complete the type checker.\n- Periscope renderer: It is disabled since vscode reject to render SVGs containing foreignObjects.\n- Inlay hint: It is disabled _by default_ because of performance issues.\n- Find references of dictionary fields and named function arguments.\n- Improve symbol view’s appearance.\n- Improve package view.\n  - Navigate to symbols by clicking on the symbol name in the view.\n  - Automatically locate the symbol item in the view when viewing local documentation.\n  - Remember the recently invoked package commands, e.g. “Open Docs of @preview/cetz:0.3.1”, “Open directory of @preview/touying:0.5.3”.\n- Improve label view.\n  - Group labels.\n  - Search labels.\n  - Keep (persist) group preferences.\n- Improve Typst Preview.\n  - Pin drop-down: Set the file to preview in the drop-down for clients that doesn’t support passing arguments to the preview command.\n  - Render in web worker (another thread) to reduce overhead on the electron’s main thread.\n- Spell checking: There is already a branch but no suitable (default) spell checking library is found.\n  - [typos](https://github.com/crate-ci/typos) is great for typst. [harper](https://github.com/Automattic/harper) looks promise.\n\nIf you are interested by any above features, please feel free to send Issues to discuss or PRs to implement to [GitHub.](https://github.com/Myriad-Dreamin/tinymist)\n\n## Contributing\n\nPlease read the [CONTRIBUTING.md](CONTRIBUTING.md) file for contribution guidelines.\n\n## Sponsoring\n\nTinymist thrives on community love and remains proudly independent. While we don’t accept direct project funding, we warmly welcome support for our maintainers’ personal efforts. Please go to [Maintainers Page](/MAINTAINERS.md) and [Contributors Page](https://github.com/Myriad-Dreamin/tinymist/graphs/contributors) and find their personal pages for more information. It is also welcomed to directly ask questions about sponsoring on the [GitHub Issues](https://github.com/Myriad-Dreamin/tinymist/issues/new).\n\n## Acknowledgements\n\n- Partially code is inherited from [typst-lsp](https://github.com/nvarner/typst-lsp)\n- The [integrating](/editors/vscode#symbol-view) **offline** handwritten-stroke recognizer is powered by [Detypify](https://detypify.quarticcat.com/).\n- The [integrating](/editors/vscode#preview-command) preview service is powered by [typst-preview](https://github.com/Enter-tainer/typst-preview).\n- The [integrating](/editors/vscode#managing-local-packages) local package management functions are adopted from [vscode-typst-sync](https://github.com/OrangeX4/vscode-typst-sync).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyriad-dreamin%2Ftinymist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmyriad-dreamin%2Ftinymist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyriad-dreamin%2Ftinymist/lists"}