Build from Source

Build Wintty yourself on Windows. This is the OSS tier, and the path for contributors.

Building it yourself is the OSS tier. It is the complete terminal, it costs nothing, and it is not a trial or a reduced edition. What you do not get is a signed binary or automatic updates, because those are the things sponsoring pays for.

Wintty is a Windows application. If you are on macOS or Linux, build Ghostty instead.

How it fits together

The terminal itself is Zig and builds into libghostty.dll. The application around it is a native C# GUI that wraps that DLL and handles windowing, input and everything Windows specific.

So a build is two steps: build the DLL, then build the shell.

Prerequisites

  • Zig, at the version pinned in build.zig.zon. At the time of writing that is 0.16.0. The build will tell you if your version is wrong.
  • Just, which the repository uses to wrap the build commands.
  • The .NET SDK, version 10 or later, for the application shell.
  • Visual Studio with the Windows SDK, for the WinUI 3 and native build tooling the shell depends on.

Building

Clone the repository and check out the windows branch, which is the default and holds the Windows work:

git clone https://github.com/deblasis/wintty.git
cd wintty

Then:

just build-dll   # build libghostty.dll
just build-win   # build the WinUI 3 application shell
just run-win     # build both, then launch

just run-win is the one you want day to day. It builds the DLL and the shell and starts the result.

Note

The shell builds for x64 explicitly. If you invoke dotnet build yourself rather than going through Just, pass /p:Platform=x64, because the default platform does not produce a working build.

Running the tests

just              # tests, then build the DLL
just test         # all Zig tests
just test-lib-vt  # only the VT library, and much faster

just test-lib-vt is the quick loop while working on terminal emulation. The full suite is slower and worth running before you open a pull request.

Contributing

Feature branches are cut from windows and go back into windows. The main branch is a mirror of upstream Ghostty and is synced daily, so do not base work on it.

The repository's own README.md and docs/windows/ are the authoritative build documentation. If something here disagrees with them, they are right and this page needs fixing.