Glitcho is a macOS-native Twitch client built with SwiftUI and AVKit. It combines a focused Twitch browsing experience with native playback, DVR-style recording controls, a background recorder agent, and advanced video enhancement features.
- macOS app (SwiftPM) only.
- iOS/iPadOS scaffold and IPA tooling have been removed from this repo.
- Includes a separate Docker-hosted promo website (
apps/commerce) for app showcase, download, and donation.
- Native player pipeline (
Streamlink->AVPlayer), with in-player overlay controls. - Player zoom/pan, Picture in Picture, native player fullscreen, and chat collapse/popout controls.
- Shared overlay behavior for both live streams and local recording playback.
- Streamer details tabs with native rendering:
AboutVideosSchedule
- Collapsible details panel under the player (
About / Videos / Schedule) with persistent state. - About panel scraper converts hyperlink images to tappable native image cards.
- Start/stop confirmation flows.
- Encrypted recordings at rest with opaque file naming.
- Secure export path that decrypts protected recordings only when explicitly exported.
- Auto-record modes:
- Only pinned
- Only followed
- Pinned + followed
- Custom allowlist
- Blocklist override support.
- Debounce/cooldown and concurrency limit support.
- Background recorder LaunchAgent support with restart/kill controls and status feedback.
- Optional biometric lock for sensitive sections.
- Per-section hide controls for:
- Recordings tab/content
- Pinned channels
- Recent channels
- Protected streamer list support to hide matching recording/history visibility until unlocked.
- Configurable hotkey to lock/unlock protected sections.
- Search, sort, list/grid, and optional grouping by streamer.
- Multi-select actions.
- Bulk delete with confirmation.
- Bulk export with progress and failure reporting.
- Retention policies:
- Max age (days)
- Keep last N globally
- Keep last N per channel
- Motion smoothening (target refresh based on display capability, up to 120Hz).
- 4K upscaler toggle.
- Image optimize pipeline and tuning controls (contrast, lighting, denoiser, neural clarity).
- Aspect crop modes (
Source,21:9,32:9).
- Local HTTP endpoint for remote automation/control.
- Optional bearer token auth.
- Endpoints include health/status and recording control APIs.
- macOS 13+ (Swift package target).
- Xcode Command Line Tools / Swift 5.9+.
- Network access for Twitch.
Streamlinkfor native playback/recording (installable from app settings).- Optional
FFmpegfor remuxing transport-stream recordings for playback.
./Scripts/make_app.sh
open Build/Glitcho.appOutput app bundle:
Build/Glitcho.app
- Download latest zip release.
- Unzip and move
Glitcho.appto/Applications. - If Gatekeeper blocks launch:
xattr -dr com.apple.quarantine /Applications/Glitcho.app- Launch app and sign in to Twitch.
- Open
Settings:- Configure
Streamlink(and optionallyFFmpeg).
- Configure
- Pick channels from sidebar/following and start playback.
Scripts/make_app.sh- Build and package
Glitcho.app+ bundledGlitchoRecorderAgent.
- Build and package
Scripts/start_commerce_site.sh- Boot Dockerized promo/download website (
/+/download).
- Boot Dockerized promo/download website (
Scripts/stop_commerce_site.sh- Stop Dockerized commerce website stack.
Scripts/profile_recording_runtime.sh- Capture CPU/RAM/process-count baseline and after-fix recording metrics.
docs/commerce-site.md- commerce website setup, endpoints, and operations guide.docs/privacy-lock.md- privacy lock behavior, protected streamers, and encrypted recording notes.docs/perf/recording-profiling.md- performance profiling workflow.docs/plans/2026-02-12-dvr-phase0-kickoff.md- DVR phase plan and status snapshot.
Sources/Glitcho/ContentView.swift- Main split view, sidebar, routing, toasts, recording-control dialogs.
Sources/Glitcho/WebViewStore.swift- Twitch web integration, DOM scraping, sidebar/live/profile synchronization.
Sources/Glitcho/StreamlinkPlayer.swift- Native player, overlay controls, About/Videos/Schedule native rendering pipeline.
Sources/Glitcho/RecordingManager.swift- Recording lifecycle, retention enforcement, Streamlink/FFmpeg tooling.
Sources/Glitcho/RecorderOrchestrator.swift- Per-channel recording job states and retry metadata.
Sources/Glitcho/BackgroundRecorderAgentManager.swift- LaunchAgent install/sync/restart/kill lifecycle.
Sources/Glitcho/RecordingsLibraryView.swift- Recording library UI, bulk actions, export workflow.
Sources/Glitcho/CompanionAPIServer.swift- Local automation API runtime.
Sources/Glitcho/MotionInterpolation.swift- Motion/interpolation render path and runtime telemetry publication.
- Stream not loading:
- Verify channel is live.
- Confirm
Streamlinkpath inSettings -> Recording Tools.
- Recording playback conversion issues:
- Configure
FFmpegbinary in settings.
- Configure
- Companion API not reachable:
- Verify enabled state, port, and token in settings.
- App telemetry uses local
OSLogevent logging (GlitchoTelemetry) for diagnostics. - Twitch web content remains subject to Twitch policies.
- No third-party analytics SDK is bundled in this repo.
Glitcho is unofficial and not affiliated with Twitch Interactive, Inc. or Amazon.com, Inc. Twitch trademarks/content remain property of their owners.
MIT License for this codebase.


