X Tutup
Skip to content

Releases: itchio/itch

v26.9.0

21 Feb 03:52
v26.9.0

Choose a tag to compare

This release upgrades Electron from 25 to 40, overhauls sandboxing across Linux, macOS, and Windows, makes install planning non-blocking, and adds support for compressed HTML game files.

macOS 10.15 (Catalina) is no longer supported. macOS 12 (Monterey) or later is now required.

Electron

  • Upgrade from Electron 25 to Electron 40 (#3382)
    • Minimum supported macOS version is now 12 (Monterey)
    • Linux now defaults to native Wayland in Wayland sessions
  • Updated esbuild targets to Node 24 and Chrome 144 to match Electron 40
  • Updated openAsHidden login item setting to only apply on Windows (removed from macOS in newer Electron)

Game Installation

  • Refactored install planning to split install target listing (Install.GetUploads) from per-upload planning (Install.PlanUpload). Due to how the app computes space requirements, it may take some time as our CDN warms up cold files. For this reason we made the size calculation happen asynchronously so you can queue an install immediately without having to wait for install size calculation to complete.
  • Added cancellation support for in-flight install planning requests when changing upload or closing the modal
  • Fixed quadratic operation in collection and library sync that could cause the app to lock up when synchronizing large collections
  • Added hard limits on collection sync (2000 items) and owned keys (5000) to prevent excessive resource consumption

Sandboxing

Linux

  • Added new Bubblewrap sandbox backend with user-namespace isolation, a persistent per-game home directory, read-only system mounts, and GPU, audio, and display passthrough
  • Added Flatpak-spawn sandbox backend for running sandboxed games when itch is installed as a Flatpak
  • Updated Firejail backend with network disable support, an expanded blacklist covering sensitive paths (~/.ssh, ~/.gnupg, ~/.aws, browser data), and environment variable filtering consistent with the new backends
  • Auto-detection selects the best available backend: Flatpak-spawn when inside Flatpak, otherwise Bubblewrap if available, with Firejail as fallback

macOS

  • New balanced (strict, default) and legacy sandbox policy modes: legacy allows broader compatibility for problematic games
  • Rosetta 2 support: x86 games can now run sandboxed on Apple Silicon Macs

Windows

  • Fixed "access denied" error on first sandbox launch caused by ACL permission propagation delay

All Platforms

  • Unified network disable control across all sandbox backends (Bubblewrap, Flatpak-spawn, Firejail, macOS, Windows)
  • Per-cave sandbox override settings (sandbox type, network access, allowed environment variables)
  • Per-cave extra command-line launch arguments
  • New sandbox preferences under Security & privacy: sandbox type dropdown (Auto, Bubblewrap, Firejail), "Disable network access in sandbox" toggle, and allowed environment variable names input
  • Strict environment variable allowlist: only display, audio, session, and itch.io-specific variables are passed through, with user-configurable additions via preferences
  • Added warning about game save data when changing sandbox settings

HTML Games

  • Handle compressed HTML game files (gzip, brotli, .unityweb) before transferring to client, since protocol URLs do not support content encoding (#3286)
  • Don't try to open non-HTTP links (like about:blank) in external browser (#3394)

Changelog Dialog

  • Reintroduced the in-app changelog dialog
  • Added release tabs for itch, butler, and itch-setup

UI & Accessibility

  • Added more semantic HTML and ARIA labels across controls (navigation buttons, game management actions, progress indicators, sidebar navigation)
  • Game cover images now include alt text
  • Updated cave version selection rows to semantic buttons
  • Fixed tab list scrollbar rendering issues (#3384)
  • Updated react-tabs to v4.3.0 with bundled types and added global tab styles
  • Improved login form alignment and spacing
  • Allow logs in log viewer to be copied and pasted (#3000)

Bug Fixes

  • Fixed a possible bug with Windows game launching being broken by a Go runtime update
  • Fixed macOS memory leak in file path resolution
  • Fix log entries not showing up correctly in game crash dialog
  • Fix TypeScript buffer type handling in memory streams

Other

  • Changed app ID from com.squirrel.itch.itch to io.itch.itch
  • Disabled remote locale fetching (locales.itch.zone no longer exists)
  • Use Node's built-in sourcemap support, removing source-map-support dependency
  • Reviewed the itch docs and modernized many pages. https://itch.io/docs/itch/

v26.8.0-canary

19 Feb 04:39

Choose a tag to compare

This release upgrades from Electron 33 to Electron 40, adds Linux sandboxing overhaul, and breaks apart install planning phase so that it doesn't block installing a game.

macOS 11 (Big Sur) is no longer supported. macOS 12 (Monterey) or later is now required.

Electron

  • Upgrade from Electron 33 to Electron 40 (#3382)
    • Minimum supported macOS version is now 12 (Monterey)
    • Linux now defaults to native Wayland in Wayland sessions
  • Updated esbuild targets to Node 24 and Chrome 144 to match Electron 40

Install

  • Refactored install planning to split install target listing (Install.GetUploads) from per-upload planning (Install.PlanUpload). Due to how the app computes space requirements, it may take some time as our CDN warms up cold files. For this reason we made the size calculation happen asynchronously so you can queue an install immediately without having to wait for install size calculation to complete.
  • Added cancellation support for in-flight install planning requests when changing upload or closing the modal

Linux Sandboxing

  • Added new Bubblewrap sandbox backend with user-namespace isolation, a persistent per-game home directory, read-only system mounts, and GPU, audio, and display passthrough
  • Added Flatpak-spawn sandbox backend for running sandboxed games when itch is installed as a Flatpak
  • Updated Firejail backend with network disable support, an expanded blacklist covering sensitive paths (~/.ssh, ~/.gnupg, ~/.aws, browser data), and environment variable filtering consistent with the new backends
  • Auto-detection selects the best available backend: Flatpak-spawn when inside Flatpak, otherwise Bubblewrap if available, with Firejail as fallback
  • New sandbox preferences under Security & privacy: sandbox type dropdown (Auto, Bubblewrap, Firejail), "Disable network access in sandbox" toggle, and allowed environment variable names input
  • Strict environment variable allowlist: only display, audio, session, and itch.io-specific variables are passed through, with user-configurable additions via preferences

Changelog Dialog

  • Reintroduced the in-app changelog dialog
  • Added release tabs for itch, butler, and itch-setup

UI & Accessibility

  • Added more semantic HTML and ARIA labels across controls (navigation buttons, game management actions, progress indicators, sidebar navigation)
  • Game cover images now include alt text
  • Updated cave version selection rows to semantic buttons
  • Fixed tab list scrollbar rendering issues (#3384)
  • Updated react-tabs to v4.2.1 and added global tab styles
  • Improved login form alignment and spacing

Documentation

v26.7.0-canary

10 Feb 18:45

Choose a tag to compare

This release upgrades from Electron 25 to Electron 33. macOS 10.15 (Catalina) is no longer supported macOS 11 (Big Sur) or later is now required.

This is release is made available as an intermediate for upcoming Electron to allow for us to bisect for any issues.

Electron

  • Upgrade from Electron 25 to Electron 33 (#3382)
  • esbuild target updated to Node 20 and Chrome 130 to match Electron 33
  • Updated openAsHidden login item setting to only apply on Windows (removed from macOS in newer Electron)

Other

  • Changed app ID from com.squirrel.itch.itch to io.itch.itch (itch setup has been updated to create shortcut for new app id)
  • Disabled remote locale fetching (locales.itch.zone is retired for now)

v26.6.0

06 Feb 20:40

Choose a tag to compare

This is the first stable release since v26.1.9 and includes all changes from v26.2.1-canary, v26.3.0-canary, v26.4.0-canary, and v26.5.0-canary releases.

Highlights

Native Apple Silicon support The app now runs natively on arm64 macOS (Apple Silicon). The auto-updater will automatically pull the correct version for your system. All supplemental binaries (butler, itch-setup) will also be replaced with their arm64 equivalents. The app should start faster, run faster, and have less impact on your battery since it no longer needs to run through Rosetta emulation.

New OAuth login The default login method is now an OAuth flow that opens your browser to complete authentication. This replaces the in-app username & password login as the default. Password login remains available as a fallback. We're making this change because password-based API login endpoints are frequent targets for credential stuffing attacks, and our previous captcha solution didn't work reliably in Electron.

Build System & Infrastructure

  • Fully migrated CI/CD from GitLab CI to GitHub Actions, all builds are now built, signed, notarized, and deployed through GitHub Actions
  • macOS builds are signed and notarized. Windows builds are code-signed via Azure Code Signing
  • Migrated from Webpack to esbuild for faster builds and smaller bundles
  • 32-bit binaries are fully retired

Electron & React

  • Upgraded to Electron 25 (from Electron 22) (Note: We are prioritizing Electron updates going forward but we are doing checkpoint releases before the huge app refactor that will have to take place)
  • Updated @itchio/butlerd fixes the Cannot read properties of undefined (reading 'pid') bug
  • Initial pass at modernizing frontend React components

Accessibility

  • Clickable elements now use semantic HTML (<button>, <a>) for keyboard navigation and screen reader support
  • Modal dialogs use the native <dialog> element with proper focus trapping (#3292)
  • Icons have role="img" and aria-label attributes for screen readers
  • Remembered profiles use flexbox layout for correct tab order

UI Improvements

  • Broth component in preferences is now expandable, showing executable path, version, directory, and source channel
  • Playtime duration tooltips now show precise hours/minutes/seconds on hover

Bug Fixes

  • Fix errors related to /register, /random, and other system pages (#3009)
  • Fix context menus when clicking games (#2890)
  • Fix clipboard operations in the URL bar and login form
  • Fix error on SendFeedback page (#2951)
  • Fix duplicated slash in path to user profile
  • Fix protocol check for URL handling (#3236)
  • Allow refreshing the app's UI again instead of opening in system browser
  • Fix missing uninstall dialog title
  • Set user agent fallback to avoid Cloudflare issues (#3369)

Other

  • Updated localization strings (Farsi, Chinese Simplified, Indonesian, Italian, and others)

Thank you to @botamochi0x12 and @jls47 for their contributions!

Full Changelog: v26.1.9...v26.6.0

v26.5.0-canary

05 Feb 23:02

Choose a tag to compare

This is the first version of the app to officially support arm64 on macOS (aka Apple silicon)! The auto-updater will automatically pull the arm64 version for those on Apple silicon. No separate reinstallation necessary. All supplemental binaries (butler, itch-setup) will also automatically be replaced with their arm64 equivalent. New version of butler and itch-setup have also been deployed to coincide with this release. The app should now start faster, be faster, and have less impact on your battery since it no longer needs to run through emulation on modern macOS computers.

This version of the app also includes our new OAuth login flow. We plan to retire username & password login in the app in favor of an OAuth login that requires a browser to complete the login. Unfortunately API endpoints that allow someone to authenticate via a username & password are prime targets for credential stuffing attacks. Our previous solution to this was to add a captcha in the app, but it broke more often than not, as electron is not a regular browser.

The OAuth login is now the default screen. Username & password will remain available as a secondary option until we verify that people don't have any issues logging in.

Notes on arm64

Because the app is booted by itch-setup, we decided to remove the universal build of the electron app we published with the last canary version. itch-setup will pick the version of the app that is correct for your system, so it's not necessary to download an app that is 2x the size that runs on both intel and arm64. (We do provide universal builds on the kitch installation program though)

This update also completes our major refactor and migration of our CI system to GitHub Actions. All executables are now built, signed, notarized, and deployed through a GitHub actions workflow. We look forward to adding support for arm64 Windows and Linux in future updates now that we have completed the foundation.

With the new CI we are fully retiring all 32 bit binaries that we used to publish. Many of these were already not being updated anymore, but we'll be removing the download links entirely from broth.

Build System & CI

  • macOS signing and notarization done on GitHub Actions via separate job (new release/sign-macos.js)
  • Windows code signing via Azure Code Signing in CI
  • Separate macOS x64 and arm64 builds (removed @electron/universal, builds are no longer merged into a universal binary)
  • Tagged builds are published to itchio via butler through GitHub Actions
  • Restored integration test workflow on GitHub Actions
  • Removed GitLab CI references, fully migrated to GitHub Actions
  • Use tarballs for artifact transfer to preserve symlinks and permissions
  • Upgraded @electron/packager v18 to v19, @electron/notarize v2 to v3
  • No longer installs external npm dependencies during packaging (dependencies are bundled by esbuild)

Login

  • New OAuth login flow with PKCE as the default login method
  • Password login still available as a fallback ("Log in with password" link)
  • OAuth callback handled via itch://oauth-callback protocol
  • Manual code paste fallback for when the browser redirect doesn't work
  • New butlerd message: Profile.LoginWithOAuthCode

React & Dependencies

  • Upgrade React 16 to React 17
  • Upgrade styled-components to 5.3.11
  • Added typed Redux hooks (useAppDispatch, useAppSelector)
  • Many class components converted to functional components with React.memo
  • Replaced react-container-dimensions with built-in ContainerDimensions component using ResizeObserver
  • Removed rimraf dependency (use native fs.rm)
  • Removed RandomSvg component (unused)
  • Removed recursive-copy dev dependency

UI Improvements

  • Broth component in preferences now expandable, showing executable path, version, directory, stage, source channel
  • Playtime duration tooltips now show precise hours/minutes/seconds on hover
  • Remembered profiles layout improvements

Accessibility

  • We did a pass over all clickable button like elements to ensure that they use semantic HTML elements like <button> to ensure that they can be navigated to and activated with a keyboard
  • Icons now have role="img" and aria-label for screen readers
  • Search results use standard scrollIntoView() for keyboard navigation instead of deprecated scrollIntoViewIfNeeded()
  • Remembered profiles use flexbox layout instead of absolute positioning, improving tabbing order

Platform

  • macOS: proper arm64 architecture detection for broth packages (no longer hardcoded to amd64)
  • macOS: binary architecture validation — re-downloads amd64 binaries on arm64 Macs
  • Broth package state now tracks download channel

Other

  • Updated localization strings (Farsi, Chinese Simplified, Indonesian, Italian, and others)

v26.4.0-canary

09 Dec 00:20

Choose a tag to compare

NOTE: We are in the process of working out migration to our build system, builds on the GitHub release are not signed and notarized, and therefore are not uploaded to https://itchio.itch.io/kitch

Build System

  • Add arm64 and universal builds to GitHub Actions
  • Add @electron/universal for macOS universal binary support
  • Clean build artifact names published to the GitHub release

v26.3.0-canary

08 Dec 21:12

Choose a tag to compare

Note: Due to modern Windows signing requirements we'll likely be migrating
the entire build system to GitHub actions. Right now we're doing builds in
parallel to work out the details. Currently no builds uploaded to GitHub
releases are signed or notarized but you're welcome to run them.

Build System

  • Migrate from Webpack to esbuild
  • Remove happypack dependency
  • Migrate release scripts to ES modules
  • Upgrade electron-packager to @electron/packager (v17 to v18)
  • Set up GitHub Actions for building and deploying
  • Update TypeScript to latest version
  • Add production minification and metafile generation for bundle analysis

Electron

  • Upgrade to Electron 25
  • Update protocol registration method

Dependencies

  • Migrate to @itchio/butlerd - Fixes the Cannot read properties of undefined (reading 'pid') bug
  • Remove url module dependency in renderer (use browser builtins)
  • Remove util package dependency in renderer
  • General dependency cleanup

Accessibility

  • Modal dialogs now use semantic <dialog> element with focus trapping (#3292)
  • Buttons and links migrated to semantic HTML elements
  • Remove "draggable" attribute from modal dialogs

Bug Fixes

  • Allow refreshing the app's UI again, instead of opening it in your system browser
  • Fix missing uninstall dialog title
  • Fix button behavior and login form submit handling
  • Include architecture in user agent string

Other

  • Update screenshots

v26.2.1-canary

01 Aug 18:25

Choose a tag to compare

https://itchio.itch.io/kitch

  • Fix errors related to /register, /random and other system pages (#3009)
  • Fix context menus when clicking games (#2890)
  • Fix clipboard operations in the url bar and login form
  • Upgrade various dependencies to pick up security fixes

Thank you to @botamochi0x12 and @jls47 for their contributions!

Full changlog

v26.1.9

18 Jun 17:20
v26.1.9

Choose a tag to compare

https://itchio.itch.io/itch

Please Note: This will be the last version of the app compatible with Windows 7 and 8.

This release upgrades a number of dependencies, especially Electron (to version 22), to resolve some lingering security issues. It also includes some performance and efficiency improvements.

The logic for game updates has changed. The app will check for updates any time you view a game page or run a game. You can check your full library for game updates at any time in the Preferences menu via the "Check for game updates" action.

Full Changelog: v25.6.2...v26.1.9

v26.1.5-canary

22 Jan 22:10

Choose a tag to compare

https://itchio.itch.io/kitch

  • Update translations. Several new languages!
  • Check for game updates automatically when viewing an installed game's page
  • Add option for manually triggering a full-library game update check
  • Fix issue where some links on game pages weren't clickable

Full Changelog: v26.1.3-canary...v26.1.5-canary

X Tutup