Skip to content

Releases: eliottness/VacuumStream

VacuumStream v0.2.1

Choose a tag to compare

@eliottness eliottness released this 23 Sep 21:24
v0.2.1

VacuumStream 0.2.1

A packaging release. The application behaves exactly like 0.2.0; what changed is the metadata and
the build inputs that a store needs in order to build VacuumStream from source.

Store metadata

  • The AppStream metadata now carries screenshots, brand colours, an age rating, device support
    hints and per-release notes, so software centres can present the application properly.
  • Four screenshots taken from the running application live in docs/images/.

Building from source offline

  • flatpak/package-lock.json ships an npm lockfile generated from package.json without the
    end-to-end test runner, whose browser downloads an offline build never uses. Bun remains the
    development package manager.
  • scripts/flatpak-node-sources.sh regenerates that lockfile together with the Flatpak node
    sources used by a network-less build.
  • Maintainer documentation describes the Flathub build path alongside the existing bundle build.

Install

Download the AppImage or Flatpak attached below, plus SHA256SUMS:

sha256sum --check --ignore-missing SHA256SUMS

For AppImage:

chmod +x VacuumStream-0.2.1-x86_64.AppImage
./VacuumStream-0.2.1-x86_64.AppImage

For Flatpak 1.16 or newer:

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./VacuumStream-0.2.1-x86_64.flatpak
flatpak run io.github.eliottness.VacuumStream

See the user guide
for FUSE alternatives, controller setup, and Steam Gaming Mode.

Validation and limitations

  • bun run verify passes on the tagged commit: lint, type checking, the unit suite and a
    production build. GitHub CI ran the same verification on this commit.
  • The Flathub manifest built by flatpak-builder produces a working application: the packaged
    binary starts and renders the home screen with live Twitch data.
  • VacuumStream is still not published on Flathub. The submission is prepared but not accepted.

VacuumStream v0.2.0

Choose a tag to compare

@eliottness eliottness released this 22 Sep 23:22

VacuumStream 0.2.0

The first release where a controller is genuinely enough: chat, favourites, resume, quality,
captions and sign-in all work without a mouse, and the interface has been rebuilt on Twitch's own
colour and type tokens. 105 commits since 0.1.2.

Watching

  • Seek past broadcasts with controller jumps, and resume a recording where you left it.
  • Pick playback quality and toggle closed captions from the player, controller-only.
  • A failed player start now retries and offers a reachable Retry instead of a dead frame.
  • Controls come back on their own when a channel that went offline returns.

Browsing

  • Browse live streams by category, and refresh or page through Home and Following.
  • Following lists every channel you follow, including the offline ones.
  • Save favourite channels locally and reopen them from Home.
  • A Continue Watching shelf tracks local playback progress across launches.
  • Archives stay browsable when Twitch serves no thumbnail; failed artwork falls back to a
    placeholder instead of a broken-image glyph.

Chat

  • Optional live chat beside the player.
  • Twitch's cookie-consent gate inside the chat frame is reachable with a keyboard and with a
    gamepad, so chat no longer needs a mouse to become usable.

Controller and input

  • An always-available on-screen keyboard plus gamepad editing shortcuts in Search; overlapping
    face presses no longer swallow a submission.
  • Sign-in is controller-first: the account action sits one move from the Settings nav, survives
    every authentication transition, and shows the device code with a QR alongside it.
  • Focus no longer falls to the page body when an account or shelf update replaces the focused
    control.

Application

  • One instance per profile. A second launch raises the existing window instead of creating a
    competing owner of your local settings, favourites, progress and token.
  • The renderer is rebuilt on a complete Twitch-native token set: a tiered dark surface ladder,
    Archivo Variable for display type beside Atkinson Hyperlegible for text, hairline structure
    instead of gradients and glows, and a focus ring that appears immediately rather than fading in.

Install

Download the AppImage or Flatpak attached below, plus SHA256SUMS:

sha256sum --check --ignore-missing SHA256SUMS

For AppImage:

chmod +x VacuumStream-0.2.0-x86_64.AppImage
./VacuumStream-0.2.0-x86_64.AppImage

For Flatpak 1.16 or newer:

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./VacuumStream-0.2.0-x86_64.flatpak
flatpak run io.github.eliottness.VacuumStream

See the user guide
for FUSE alternatives, controller setup, and Steam Gaming Mode.

Validation and limitations

  • bun run verify passes on the tagged commit: lint, type checking, 802 passing tests
    (21 expected failures) across 53 files, and a production build. GitHub CI ran the same
    verification on this commit.
  • A Playwright end-to-end suite now drives the packaged renderer on its own display and covers the
    flows recorded in the project's review ledgers.
  • Individual features were checked on an HTPC during development, as recorded in the improvement
    ledger. Completing a Twitch device sign-in end to end on hardware is exercised up to the
    activation step only; the approval itself remains unverified.
  • Twitch controls advertisements, regional restrictions, stream availability, and its embedded
    player. VacuumStream does not block or skip ads.
  • Device sign-in authenticates discovery, not the embedded player. Browser cookies are not
    imported.
  • Checksums detect corruption but are not publisher signatures. This is not a Flathub release and
    has no automatic updater.

Report reproducible problems through the
issue templates.

VacuumStream v0.1.2

Choose a tag to compare

@eliottness eliottness released this 18 Sep 17:30

VacuumStream 0.1.2

This release improves controller text entry and makes Twitch playback start more reliably with sound on Linux handhelds and HTPCs.

Highlights

  • Search now includes an always-available controller keyboard for letters, digits, spaces, backspace, clearing, and submitting queries.
  • Search focus exits are deterministic, so D-pad and stick navigation can leave the text field without trapping controller input.
  • Twitch's player remains fully unobstructed while it performs its autoplay visibility checks.
  • Live streams now retry startup automatically and unmute once real media progression is confirmed, including when a controller activates a stream through an untrusted browser click.
  • Playback activation rejects empty or stalled video states instead of treating an unpaused flag alone as success.
  • Manual play and mute controls cancel automatic retries so the app does not override the viewer's choice.

Install

Download the AppImage or Flatpak attached below, plus SHA256SUMS:

sha256sum --check --ignore-missing SHA256SUMS

For AppImage:

chmod +x VacuumStream-0.1.2-x86_64.AppImage
./VacuumStream-0.1.2-x86_64.AppImage

For Flatpak 1.16 or newer:

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./VacuumStream-0.1.2-x86_64.flatpak
flatpak run io.github.eliottness.VacuumStream

See the user guide for FUSE alternatives, controller setup, and Steam Gaming Mode.

Validation and limitations

  • GitHub CI passed on Node 24.20.0 and 26.8.1, including 51 tests, lint, type checking, metadata checks, workflow validation, and packaging checks.
  • The packaged Flatpak passed a cold controller-equivalent launch on Bazzite: Twitch media reached a playable state, unmuted, advanced continuously, and produced active stereo audio over HDMI.
  • Twitch controls advertisements, regional restrictions, stream availability, and its embedded-player implementation. VacuumStream does not block or skip ads.
  • Device sign-in authenticates discovery, not the embedded player. Browser cookies are not imported.
  • Checksums detect corruption but are not publisher signatures. This is not a Flathub release and has no automatic updater.

Report reproducible problems through the issue templates.

VacuumStream v0.1.1

Choose a tag to compare

@eliottness eliottness released this 18 Sep 08:22

VacuumStream 0.1.1

This release focuses on reliable controller playback, clearer Twitch sign-in, and better account persistence on Linux handhelds and HTPCs.

Highlights

  • Live streams now start automatically while muted, with controller-accessible play and pause controls when Twitch blocks or stops playback.
  • Joystick navigation recovers visible focus after mouse input, and Back restores the correct shell fullscreen state in both Desktop and Steam Gaming Mode.
  • Home and Following stream cards now display Twitch broadcaster profile images without hiding the catalog if profile enrichment fails.
  • Twitch device sign-in keeps the activation link and adds a scannable QR code containing Twitch's code-prefilled URL.
  • Following and Search now show account-aware messaging instead of asking authenticated users to reconnect.
  • OAuth tokens still prefer Electron's secure Linux keyring. When none is available, VacuumStream logs a warning and persists the session in an owner-only 0600 JSON file inside its application-data directory.
  • Token writes now remain consistent across crashes, clean temporary files on failure or logout, and migrate plaintext fallback data into secure storage when a keyring becomes available.

Install

Download the AppImage or Flatpak attached below, plus SHA256SUMS:

sha256sum --check --ignore-missing SHA256SUMS

For AppImage:

chmod +x VacuumStream-0.1.1-x86_64.AppImage
./VacuumStream-0.1.1-x86_64.AppImage

For Flatpak 1.16 or newer:

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./VacuumStream-0.1.1-x86_64.flatpak
flatpak run io.github.eliottness.VacuumStream

See the user guide for FUSE alternatives, controller setup, and Steam Gaming Mode.

Validation and limitations

  • GitHub CI passed on Node 24.20.0 and 26.8.1, including 41 tests, lint, type checking, metadata checks, workflow validation, and packaging checks.
  • The packaged AppImage passed QR sign-in, live autoplay, controller play/pause, pointer-to-controller recovery, and fullscreen Back checks.
  • The Flatpak was installed and launched from Steam Gaming Mode on Bazzite after verifying the packaged Electron BaseApp and Zypak runtime files.
  • Twitch controls advertisements and stream availability. Device sign-in authenticates discovery, not the embedded player.
  • The 0600 fallback is unencrypted and can be read by other processes running as the same user. Configure Secret Service or KWallet for encrypted persistence.
  • Checksums detect corruption but are not publisher signatures. This is not a Flathub release and has no automatic updater.

Report reproducible problems through the issue templates.

VacuumStream v0.1.0

Choose a tag to compare

@eliottness eliottness released this 06 Sep 10:41
v0.1.0

VacuumStream 0.1.0

The first public release of VacuumStream, a controller-first Twitch client for Linux x86_64.

Highlights

  • Navigate with four arrow keys, Enter, and Escape, or a gamepad/Steam Input mapping.
  • Guest Quick watch and exact-channel search; connect Twitch for personalized discovery.
  • A public Twitch Client ID is included, with an optional Settings override.
  • Official Twitch live/VOD player with separate play/pause, mute, and fullscreen controls.
  • Responsive handheld-to-4K interface and secure-keyring token storage when available.
  • AppImage and Flatpak packages using Electron 44.2.0; Flatpak uses Freedesktop 25.08.
  • New user, contributor, and maintainer documentation, including a homepage screenshot.

Install

Download the AppImage or Flatpak attached below, plus SHA256SUMS.
The assets are attached automatically after the release build completes.

sha256sum --check --ignore-missing SHA256SUMS

For AppImage:

chmod +x VacuumStream-0.1.0-x86_64.AppImage
./VacuumStream-0.1.0-x86_64.AppImage

For Flatpak (1.16 or newer):

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./VacuumStream-0.1.0-x86_64.flatpak
flatpak run io.github.eliottness.VacuumStream

See the user guide
for FUSE alternatives, controller setup, and Steam Gaming Mode.

Validation and limitations

  • CI passed on Node 24.20.0 and 26.8.1, including 28 tests, lint, typecheck, and packaging.
  • Locally built AppImage and Flatpak passed Home, Settings, Search, and Escape navigation smoke tests.
  • This is early-stage software. Physical Steam Deck/Bazzite, native GPU/audio, and fully authenticated
    Twitch playback have not been comprehensively validated. Flatpak runtime smoke testing used an
    isolated non-root Linux container with a virtual display.
  • Twitch controls ads and availability. Device sign-in authenticates discovery, not the embedded player.
  • Without a secure keyring, sign-in lasts only for the current application session.
  • Checksums detect corruption but are not publisher signatures. This is not a Flathub release.
  • Contributor build note: electron-vite 5's declared peer range does not yet include Vite 8, although
    the current pairing passes the test/build matrix without overrides.

Report reproducible problems through the issue templates.