Installation
Typhon ships as a single Rust binary called tyc. The fastest way to get it is a pre-built binary from the latest GitHub Release; you can also build from source with one cargo command. Optional integrations (tyc ty, tyc stubtest) shell out to Python tools you can install on demand.
Install a pre-built binary (recommended)
Pre-built, checksum-verified binaries ship on every GitHub Release for Linux (x86_64/aarch64), macOS (Apple Silicon/Intel), and Windows (x86_64).
curl -sSL https://raw.githubusercontent.com/codehalwell/typhon/main/install.sh | shThe installer detects your platform, downloads the matching archive, verifies its SHA-256 against the release manifest over TLS, and installs tyc to a per-user directory (no sudo). Pin a version with --version=v1.0.0-beta.2 (or TYPHON_VERSION=…).
iwr -useb https://raw.githubusercontent.com/codehalwell/typhon/main/install.ps1 | iexDownload the archive for your platform from the newest entry on the releases page (GitHub’s “latest release” link skips pre-releases, so use the full list while Typhon is pre-1.0), verify it against SHA256SUMS, extract it, and put tyc on your PATH.
If your platform isn’t listed (FreeBSD, Linux MUSL, Windows ARM64), build from source below.
Prerequisites (build from source)
- A Rust toolchain — the repo pins Rust 1.94 (
tyc/rust-toolchain.toml); the vendored crates require 1.93+, so an oldercargowill refuse to build. Install via rustup if you don’t already have it. - A Python interpreter — CPython 3.13 (or 3.14, or the free-threaded
tvariants). Typhon emits code targeting 3.13 by default; you can change the target intyphon.toml. - (Optional)
uv— Astral’s package manager. Used bytyc add/tyc remove/tyc syncfor dependency installation. Install withpipx install uvor via the uv install script. - (Optional)
ty— Astral’s Python type checker. Used bytyc tyfor a second-opinion typing pass against the emitted Python. Install withpip install tyoruv tool install ty.
Build from source
-
Clone the repository.
Terminal window git clone https://github.com/CodeHalwell/Typhon.gitcd Typhon -
Build the compiler in release mode.
Terminal window cd tyccargo build --releaseThis produces
tyc/target/release/tyc. The first build will take a few minutes (the vendored Ruff fork is large); subsequent builds are incremental. -
Put it on your PATH. Either copy the binary to a directory already on
PATH, or alias it.Terminal window sudo ln -s "$PWD/target/release/tyc" /usr/local/bin/tycTerminal window echo "alias tyc='$PWD/target/release/tyc'" >> ~/.bashrc# or ~/.zshrcsource ~/.bashrcalias --save tyc "$PWD/target/release/tyc" -
Verify the install.
Terminal window tyc --versiontyc --helpYou should see the version banner and the list of subcommands.
Updating
Pull the latest commits and rebuild:
cd /path/to/Typhongit pullcd tyc && cargo build --releaseIf you symlinked, you don’t need to redo it; the symlink points at the freshly-rebuilt binary.
Optional integrations
ty (Astral’s type checker)
For a second-opinion pass over the emitted Python:
uv tool install typip install typipx install tyThen run tyc ty in any Typhon project.
mypy (for tyc stubtest)
The runtime-introspection probe for .dty / .pyi stub drift:
pip install mypy# oruv tool install mypyThen run tyc stubtest in projects that ship stubs.
uv (for tyc add / remove / sync)
The package-manager surface shells out to uv for installs. Without uv, tyc add / remove still edit typhon.toml; they just won’t install. Recommended:
pipx install uv# orcurl -LsSf https://astral.sh/uv/install.sh | shVS Code extension (reference)
The repository ships a reference VS Code extension under editors/vscode/. It wires up tyc lsp over stdio. To install:
cd editors/vscodenpm installnpm run package # produces typhon-X.Y.Z.vsixcode --install-extension typhon-*.vsixRestart VS Code; opening a .ty file should give you syntax highlighting and diagnostics on save. See editors/vscode/README.md for details.
Other LSP-aware editors (Neovim, Helix, Zed, etc.) can wire tyc lsp directly. See Editor Setup for examples.
Troubleshooting
”command not found: cargo”
Install Rust via rustup. On the first run it sets up cargo, rustc, and the toolchain in ~/.cargo/bin. Open a new shell or source $HOME/.cargo/env to pick it up.
Build fails with linker errors
You need a working C linker. On Linux: sudo apt install build-essential (Debian / Ubuntu) or sudo dnf install gcc (Fedora). On macOS: xcode-select --install. On Windows: install Visual Studio Build Tools.
”tyc check” complains about missing typhon.toml
You’re running outside a Typhon project. Either cd into one or scaffold one first with tyc init.
LSP doesn’t start in VS Code
Open the Output panel (View → Output) and select “Typhon” from the dropdown. The extension logs the tyc lsp invocation; if tyc is not on the PATH the editor process sees, the LSP won’t start. Set the binary path in extension settings, or fix your PATH.
Cargo build is slow
The first cargo build --release rebuilds the entire vendored Ruff fork plus every Typhon crate. Subsequent builds are incremental. If you’re hacking on the compiler, cargo build (debug mode) is faster.
Next steps
- Walk through Hello, world for the shortest end-to-end Typhon program.
- Read Project Layout to understand what
tyc initproduces. - Skim The Five Rules so you know what the checker will and will not tolerate.