Windows support
Development reference · View source
Runyte runs natively on x86-64 Windows 11 24H2 or later, inside Windows Terminal. The rest of this guide applies to Windows too; this section lists what is missing, what is limited, and what works differently.
Release ZIP. Releases from 0.3.2 onward include an x86-64 Windows ZIP with
runyte.exe, the configuration example, and licence material.
- Its hash is in
SHA256SUMS. CompareGet-FileHash -Algorithm SHA256 <archive.zip>with that entry before extracting. - Executables are unsigned.
- The ZIP does not bundle the x64 Microsoft Visual C++ runtime
(
VCRUNTIME140.dll). Install Microsoft’s x64 Visual C++ Redistributable if it is absent.
Building from source needs Rust 1.88 or newer and Visual Studio Build Tools with the C++ toolchain and Windows SDK. The bundled grammars require the C compiler.
cargo build --release --locked
.\target\release\runyte.exe --ide README.md
Not available on Windows
- The recent-root and worktree shortcuts in the session manager’s
Ctrl-odirectory chooser. The chooser itself accepts drive paths and backslashes. :session-stopand--session-stopwithout a workspace. Name the workspace by ID, name, or path.- Git and language servers installed as
.cmd,.bat, or.ps1wrappers. Only native.exeand.comexecutables are used. To run a script-based language server, configure its interpreter as the executable and pass the script inargs. - Working directories whose ordinary Windows spelling is 260 UTF-16 units or
longer. The workspace, terminals, Git, language servers,
:pipe, and the:quit-heredestination all refuse them. Opening files at such paths is not affected. - UNC working directories for
cmd.exeterminals. Use a shell that supports them. - Language-server file URIs for network shares, device paths, and alternate data streams.
- Private runtime storage (logs, language-server approvals, the MCP adapter,
the
:quit-herehandoff) anywhere other than local NTFS. - Preserving unsaved editor state when the outer console window is closed.
Ctrl+CandCtrl+Breakin the outer console request an orderly shutdown, but Windows may end the process before cleanup finishes after a close. - Starting a detached persistent host when the launching process runs in a job
that forbids breakaway.
-aand--session-restartreport the refusal and leave no new host running, and a restart checks this before stopping the old host. Attaching to a host that is already running still works.
Not validated
- ARM64 Windows
- MinGW builds
- Windows versions older than 11 24H2
- Outer terminals other than Windows Terminal
- Network shares and long-path filesystem operations
- PowerShell 7 for the
:quit-herewrapper - Keyboard layouts or IMEs beyond the automated input cases
When one of these fails, recoverable edits are preserved.
Differences from Linux and macOS
- Configuration defaults to
%APPDATA%\runyte\config.yaml. A nonemptyXDG_CONFIG_HOMEtakes precedence, and--configselects an explicit file. - Terminals use ConPTY and start
%COMSPEC%, falling back tocmd.exe. Command lines use native Windows quoting; see Windows terminals . :piperuns Windows PowerShell rather than/bin/sh; see Shell pipes .:quit-hereneeds the PowerShell 5.1 wrapper runyte.ps1 ; see change the shell directory on exit .- Git is enabled when
git.exeorgit.comis found on an absolutePATHentry accepted byPATHEXT. Without Git, Git commands are disabled with a reason and editing still works. Restart Runyte after installing Git or changingPATH. - Paste: Windows Terminal reserves
Ctrl-vfor its own paste action. Runyte recognizes the empty paste event some versions send for an image, even while a multi-key command waits for its next key; if the terminal sends nothing, useAlt-v. Bracketed paste arrives as text in every mode, so pasted lines never run editor commands. - Saves replace existing files with
ReplaceFileW, which keeps their metadata. Another program opening the file during a save can briefly get a missing-file or sharing error. Thewrotemessage means the whole document is on disk. - Two hosts for one project can run at the same time. The session manager and the session strip show them as separate rows, and selecting one by path or ID is refused as ambiguous; use its name or pick the row.
:session-cleanis available inside the editor. On Linux and macOS userunyte --session-clean.- A bare
runytewithmode: muxattaches only to a project it can discover, and otherwise refuses without creating a workspace, as a bare-adoes.-a DIRECTORYmakes that directory a workspace;--initonly creates one. --servestops the host when the process that launched it exits.- Plugins can request the
processescapability for managed native helper processes. workspace.state_anchorchooses where retained state lives; see Windows state anchor .- External programs for binary files open differently; see Opening binary files on Windows .