Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ tags:
- linux
---

import { WingetCommand } from "@site/src/components/WingetCommandList";

# Installation

The easiest and most reliable way to install the Godot Launcher is by visiting the official website [download page](https://godotlauncher.org/download). The launcher is cross-platform, works with Windows, macOS, and Linux systems.
Expand All @@ -33,10 +35,20 @@ On first launch, the launcher matches your operating system language automatical

![Godot Launcher Setup UI - windows](../../static/img/win-installer-ui.webp)

On Windows, simply run the `.exe` installer after download, This it will automatically guide you through the installation process.
On Windows, simply run the `.exe` installer after download. It will automatically guide you through the installation process.

If you did not choose to run Godot Launcher at the end of the installation, you can run it directly from the Start Menu.

<WingetCommand
label="Install with winget"
command='winget install "Godot Launcher"'
intro="Prefer managing installs from the command line? Run this command in PowerShell or Command Prompt:"
/>

#### Read more

- [Installing Godot Launcher with winget](/guides/windows-winget)

---

### macOS
Expand All @@ -49,7 +61,7 @@ If you did not choose to run Godot Launcher at the end of the installation, you

For macOS Godot Launcher is distributed as a universal `.dmg`. Run the `.dmg` file and drag the `Godot Launcher` to the `Applications` folder when the dmg opens.

Once done, Godot Launcher can be opened from the Applications
Once done, Godot Launcher can be opened from the Applications folder.

---

Expand Down
110 changes: 110 additions & 0 deletions docs/guides/windows-winget.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
id: windows-winget
title: Installing Godot Launcher with winget
slug: /guides/windows-winget
description: "Install, upgrade, or remove Godot Launcher on Windows using the official winget package."
tags:
- setup-guide
- getting-started
- windows
- winget
keywords:
- Godot Launcher winget
- winget install GodotLauncher.Launcher
- Windows package manager
- Godot Launcher Windows installation
---

import { WingetCommandList } from "@site/src/components/WingetCommandList";

# Installing Godot Launcher with winget

Starting with **Godot Launcher v1.4.0**, we publish an official [winget](https://learn.microsoft.com/windows/package-manager/) manifest that tracks every Windows release. This gives you a trusted, script-friendly way to install and keep the launcher up to date without leaving the terminal.

---

## Requirements

- Windows 10 version 1809 (build 17763) or later, or Windows 11.
- The **App Installer** package from the Microsoft Store, which provides the `winget` client.
- Administrative rights the first time you install, so winget can unpack the signed installer.

You can confirm that winget is available by running `winget --info`. If it is missing, open the [App Installer listing](https://www.microsoft.com/p/app-installer/9nblggh4nns1) in the Microsoft Store and click **Get**.

---

## Install the latest release

<WingetCommandList
commands={[
{
label: "Install (Recommended)",
command: 'winget install "Godot Launcher"',
},
{
label: "Install via Package ID",
command: "winget install GodotLauncher.Launcher",
},
]}
intro="Run one of these commands from PowerShell or Command Prompt to install the newest Godot Launcher build:"
hint="The manifest downloads the signed installer published on our GitHub releases and verifies its SHA-256 checksum before completing."
/>

During the first install you may be prompted to accept the installer or elevate privileges. After completion, Godot Launcher appears in your Start Menu just like the manual installer.

---

## Keep Godot Launcher updated

<WingetCommandList
commands={[
{
label: "Upgrade in place",
command: "winget upgrade GodotLauncher.Launcher",
},
{
label: "Upgrade all packages",
command: "winget upgrade --all --include-unknown",
},
]}
intro="Winget can upgrade Godot Launcher when a new release lands:"
hint="Upgrades run the same signed installer with your existing settings preserved. `--include-unknown` ensures winget checks packages that do not expose version metadata."
/>

You can check whether an upgrade is available without running it by using `winget upgrade --name "Godot Launcher"`.

---

## Discover other manifest details

- `winget show GodotLauncher.Launcher` prints publisher metadata, installer URLs, and release notes.
- `winget search "godot launcher"` confirms you are selecting the official package before installing.
- `winget list Godot` reports whether the launcher is already installed.

Manifests are kept in sync with every Windows release. If a command fails with **No applicable update found**, you are already on the latest version.

---

## Uninstall or reinstall

- `winget uninstall GodotLauncher.Launcher` removes the launcher. Your Godot projects remain intact.
- `winget install --id GodotLauncher.Launcher --source winget --silent` reinstalls without UI and is useful in CI scripts.
- Pair `winget uninstall` followed by a fresh `winget install` if you need to repair a corrupted installation.

---

## Troubleshooting tips

- Run `winget source update` if winget cannot find the package, especially after waking a machine from sleep.
- If the Microsoft Store is blocked, download the latest **App Installer** `.msixbundle` directly from the store page to enable winget.
- For enterprise environments, export the manifest with `winget export GodotLauncher.Launcher --output winget.json` and import it on managed devices.

If you continue to run into issues, grab the log from `%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir\` and share it when opening an issue so we can help.

---

## Related resources

- [Download the Windows installer](https://godotlauncher.org/download)
- [FAQ: Can I install via winget?](https://godotlauncher.org/faq#can-i-install-godot-launcher-via-winget)
- [Launcher release notes](https://github.com/godotlauncher/launcher/releases)
25 changes: 15 additions & 10 deletions docs/tags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,20 @@ editor-installation:
permalink: "/editor-installation"
description: Step-by-step guides for installing various Godot Engine editor versions.

windows:
label: "Windows"
permalink: "/windows"
description: Instructions and support tailored specifically for Godot Launcher on Windows.

macos:
label: "macOS"
permalink: "/macos"
description: Instructions and support tailored specifically for Godot Launcher on macOS.
windows:
label: "Windows"
permalink: "/windows"
description: Instructions and support tailored specifically for Godot Launcher on Windows.

winget:
label: "winget"
permalink: "/winget"
description: Use the Windows Package Manager to install and maintain Godot Launcher.

macos:
label: "macOS"
permalink: "/macos"
description: Instructions and support tailored specifically for Godot Launcher on macOS.

linux:
label: "Linux"
Expand Down Expand Up @@ -191,4 +196,4 @@ translations:
localisation:
label: "Localisation"
permalink: "/localisation"
description: Best practices for localising Godot Launcher for a global audience.
description: Best practices for localising Godot Launcher for a global audience.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "launcher-docs",
"version": "1.3.0",
"version": "1.5.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
Expand Down
81 changes: 51 additions & 30 deletions sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,41 +34,62 @@ export default {
label: "Guides",
collapsed: false,
items: [
"guides/launch-godot-project-in-windowed-mode",
"guides/using-git",
"guides/install-git",
"guides/vscode-setup-for-godot",
"guides/system-tray",
"guides/change-project-editor",
"guides/editor-settings",
"guides/windows-symlink",
"guides/linux-no-sandbox",
{
type: "category",
label: "Project Workflow",
collapsed: false,
items: [
"guides/using-git",
"guides/install-git",
"guides/vscode-setup-for-godot",
"guides/change-project-editor",
"guides/editor-settings",
"project-badges",
],
},
{
type: "category",
label: "Launcher Tips",
collapsed: false,
items: [
"guides/launch-godot-project-in-windowed-mode",
"guides/system-tray",
],
},
{
type: "category",
label: "Platform Specific",
collapsed: false,
items: [
"guides/windows-winget",
"guides/windows-symlink",
"guides/linux-no-sandbox",
],
},
],
},
{
type: "doc",
id: "project-badges",
},
{
type: "doc",
id: "help-and-support",
},
{
type: "link",
label: "Roadmap",
href: "https://github.com/orgs/godotlauncher/projects/1",
},
{
type: "doc",
id: "contributing",
},
{
type: "doc",
id: "contributing/translations",
type: "category",
label: "Support & Community",
collapsed: false,
items: [
"help-and-support",
"community",
],
},
{
type: "doc",
id: "community",
type: "category",
label: "Contributing",
collapsed: false,
items: [
"contributing",
"contributing/translations",
{
type: "link",
label: "Roadmap",
href: "https://github.com/orgs/godotlauncher/projects/1",
},
],
},
{
type: "doc",
Expand Down
91 changes: 91 additions & 0 deletions src/components/WingetCommandList/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import { FC, ReactNode, useEffect, useState } from "react";
import clsx from "clsx";
import { Check, Copy } from "lucide-react";

import styles from "./styles.module.css";

interface WingetCommand {
label: string;
command: string;
}

interface WingetCommandListProps {
commands: WingetCommand[];
intro?: ReactNode;
hint?: ReactNode;
className?: string;
}

export const WingetCommandList: FC<WingetCommandListProps> = ({
commands,
intro,
hint,
className,
}) => {
const [copiedCommand, setCopiedCommand] = useState<string | null>(null);

useEffect(() => {
if (!copiedCommand) {
return;
}
const timeout = setTimeout(() => setCopiedCommand(null), 3000);
return () => clearTimeout(timeout);
}, [copiedCommand]);

const handleCopy = (command: string) => {
navigator.clipboard.writeText(command);
setCopiedCommand(command);
};

return (
<div className={clsx(styles.card, className)}>
{intro && <p className={styles.intro}>{intro}</p>}

<div className={styles.codeGroup}>
{commands.map(({ label, command }) => (
<div key={command} className={styles.codeBlock}>
<div className={styles.codeLabel}>{label}</div>
<div className={styles.codeText}>&gt; {command}</div>
<button
className={clsx(styles.copyButton, "winget-button--copy")}
title={`Copy ${command}`}
onClick={() => handleCopy(command)}
>
{copiedCommand === command ? (
<Check width={16} color="#4caf50" />
) : (
<Copy width={16} />
)}
</button>
</div>
))}
</div>

{hint && <div className={styles.hint}>{hint}</div>}
</div>
);
};

interface WingetCommandProps {
label: string;
command: string;
intro?: ReactNode;
hint?: ReactNode;
className?: string;
}

export const WingetCommand: FC<WingetCommandProps> = ({
label,
command,
intro,
hint,
className,
}) => (
<WingetCommandList
commands={[{ label, command }]}
intro={intro}
hint={hint}
className={className}
/>
);

Loading