Typst Editor: A local, offline desktop-style editor for Typst, built for maths/physics writing

Hello everyone. I have build one offline editor for Typst, it is heavily effected by overleaf and it’s open-source. Feel free to give it a try. Also as a physics student, I have added things so that you can use mathematica, python and Julia if you have them in the system.

Features : https://youtu.be/77Ddg3bAP8s?si=h4i2TRH7STfdvDLz

GitHub: GitHub - aburousan/typsteditor: Offline, local editor for Typst — live PDF preview, physics/math tooling, live Python/Julia/Wolfram, and a desktop app. · GitHub

Live PDF preview with auto-recompile, zoom / fit-to-width, and double-click a word to jump to it in the source. Editor: Typst syntax highlighting , completions, cross-reference autocomplete, word count, file tree (create files & folders, upload images), outline, a clickable Problems panel, alignment shortcuts, and resizable panes.

Insert menu (grouped submenus): title block / author / institute / abstract, headings, inline / block / aligned / numbered equations, matrices, a math & physics symbol picker (physica), bullet & numbered lists, figures, images, tables, 2D/3D plots, code blocks, links, cross-references and labels — most with a center on page option.

Numbering on by default; toggle it on the heading/equation under the cursor with ⌘⇧N. Plots: 2D via cetz + cetz-plot, 3D surfaces via cetz (pure Typst) or Python/matplotlib.

Run code → insert result (Insert → Compute): Python, Julia or Wolfram. Insert the text output, a generated figure, or — in Equation mode — write plain maths (e.g. D[Sin[x^2], x]) and get a typeset equation automatically (LaTeX via mitex). Templates from Typst Universe with a rendered preview.

Import data (CSV / JSON / YAML / TOML) — Insert → Import Data drops the file in and wires up the matching Typst reader.
live-preview
template-preview

5 Likes

Does it (happen to) have support for RTL languages?

No… Hilbert supports RTL document rendering through Typst if a suitable font is available. But the source editor and application interface are currently LTR-oriented only.

1 Like

Thank you for this offline editor. I have a question though, since I use Tinymist in VScode and the preview is near instant. This is not the case with Hilbert and I have to admit that it is surprising. Is it possible to enable instant preview just like the Typst webapp or Tinymist ?

Yes actually I have optimised it further will release in future update. Currently the issue is it checks for inline code to compile and also the spelling check is making it slow. I will add some way to bypass it. Atleast for now there is slight delay :smiling_face_with_tear:. Really sorry about that.

Don’t apologize for this. It just a “bad” habit we have with Typst :wink:.

1 Like

Thank you. I will update the app(if you have the app installed it should auto install) with improvements soon (although it is still doesn’t feel like vs-code but still should be better than current version). Once I updated, I will let you know here.

2 Likes

I have updated and released the new version. Let me know how it goes? and also if there is any bug also feel free to tell

1 Like

Looks great.
I can’t install it on my work laptop because win11 screams about protecting my pc. If you could make a portable version or even better a winget installer without admin rights, i would be very happy. Typst itself can be installed with out admin rights via winget, which is great for business machines and locked down systems. Specifically for students writing their thesis. (one of the biggest hurdles with TeXLive and TeXstudio…)

Thanks you for giving it a go and i think there’s actually a small mix-up in what’s blocking you, and the good part is one half is already sorted. That “Window protected your PC” popup isn’t about admin rights, it’s SmartScreen complaining that the app isn’t code-signed yet. It’s a separate thing from installing, and a portable build would hit the exact same warning, so that wouldn’t really get you past it unfortunately. On the admin side: if you downloaded the .msi, yeah, i guess that one wants admin. But the -setup.exe installer doesn’t. It installs just for your user into AppData with no admin prompt at all, so grab that one instead. When SmartScreen shows the blue box, hit “More info” then “Run anyway” and it should go through, as long as your work machine hasn’t fully locked that down.

The real fix for the SmartScreen nag is code signing, which needs a paid certificate I don’t have yet nor i plan to get as it’s opensource. But you’re spot on that winget is the nicer path… I’m going to add a winget manifest for it, I will ping you here once done.
Also feel free to suggest any feature or bug if you came across any.

Thanks,
It has been so long, I forgot how to windows like a normal person lol
I did use the exe, not the msi, and yes the Work machine is fully locked down, so no ‘Run Anyway’, but winget works as long as its without admin access. eg.:
winget install typst works without any issues at all.

As mentioned, admin rights and locked down pcs are a common issues for many students that I know. (Mech.) Engineering students often do their thesis as an internship in larger companies, so being able to have a local and admin less workspace is very useful. Typst online is nice but some companies are quite strict about confidentiality (ironic most times because many of them use the entire MS Office suite at the same time… )

Sometimes you are out in the middle of nowhere without wifi, so there a local workspace is very useful too. Sometimes in the middle of somewhere, like underground or surrounded by concrete and steel.

I have neither of the latter two issues thankfully (only the locked down machine part), so I can use the typst web app for my thesis.
However, a local version with git/fossil, zotero, and jlyfish (<- esp. that one) would be nice to try out. Julia also installs without admin rights through winget, unlike python.

I will try it on my linux machines at home later.
Cheers

Hilbert is now on winget. It’s submitted and passing validation, just waiting on a moderator to merge… after which winget install Aburousan.Hilbert will work with no admin, same as typst.
On your wishlist: git is already built in… so you can init, commit and push to GitHub without leaving the app. Fossil isn’t but I’ll note it. Julia runs locally through notebook-style cells and jlyfish is the one I’m most curious about too. It leans on Julia doing a build step rather than being pure Typst so I’d rather wire that in properly than pretend it just works. For zotero… I don’t integrate directly yet, though there’s bibliography and reference management in the app.
Thanks a lot

2 Likes

Very cool, thanks!
Git and fossil are tools i prefer to use externally. Eg. I almost always use github desktop, and fossil is in itself very much self contained. Honestly it is the better fit for single or few user repos, but git is so prolific…
Cathedral vs bazaar… see the fossil vs git webpage

Julia (esp. Pluto) x Typst is a dream come true for me, so anything that goes into that is :heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat::heartbeat:
Working in different companies has made me appreciate admin-less tools soooo much than i ever thought i could have ever done

normal Julia is a repl (pluto is a different story), and jlyfish should be mostly simple to integrate; message me @Astrusia on GH or codeberg for any news.

I am an engineer first and a shit programmer, but I am willing to learn

1 Like

Thank you for sharing!

1 Like

Let me chime in and recognize that Hilbert’s developer has been hard at work, lo these past few weeks, addressing issues posted at its GitHub repository, thus making the tool that much better to use.

We are all blessed by a very enthusiastic Typst community of users, developers and teachers.

3 Likes

Hey…I take a look into fossil and it’s great but Hilbert can already do sort of same thing . So maybe I will include it for a refinement of what’s already there.