Supported and Unsupported
What Kunai supports during beta, what is experimental and may change, and what is explicitly unsupported, so you know what to rely on before you install.
Kunai is a terminal-first CLI in beta. This page states observable boundaries, not a roadmap promise.
Beta scope (read this first)
install.sh / install.ps1 (self-contained binary, Bun runtime embedded; you do not need Bun). Bun/npm globals are secondary; npm needs Node on PATH, not Bun. You still need mpv for playback; setup and browsing work without it. Kunai is a client-side playback tool. It does not host, upload, mirror, seed, or distribute video content. Streams and related assets are served by non-affiliated third-party providers. Use responsibly and in accordance with applicable laws and service terms. Provider availability changes; recovery commands exist because drift is expected.Support matrix
Use this codegen-backed table as the single product posture source. Narrative sections below add context; they do not override these labels.
| Capability | Status | Notes |
|---|---|---|
| Terminal shell | shipped | Persistent terminal shell with search, playback, and recovery workflows. |
| Direct provider resolution | shipped | HTTP provider adapters in packages/providers, without browser automation. |
| mpv playback | shipped | Kunai resolves streams; mpv is the playback engine. |
| kunai:// share links | shipped | Catalog-anchored share URLs via /share, /watch, kunai --open, and mpv hotkey. |
| History continuation | shipped | Continue unfinished titles from History with catalog bounds and source preference. |
| Provider endpoint health | shipped | Local health memory, /recompute bypass, and /reset-provider-health recovery. |
| Network status indicator | shipped | Shell header shows connectivity; offline mode is explicit, never silent. |
| Diagnostics export | shipped | /diagnostics panel and redacted /export-diagnostics with DB-backed recent export. |
| AniList / TMDB sync | beta | Experimental opt-in AniList progress and tracker list membership sync; requires a disposable-account live smoke before release-ready status. |
| Notifications inbox | shipped | Shell notifications for downloads, playback, and setup guidance. |
| Discord Rich Presence | shipped | Opt-in social status integration; off by default until configured. |
| Offline downloads | beta | Queue downloads and play completed artifacts without provider calls. |
| Persistent offline mode | beta | Configurable local-only shell mode separate from the --offline launch flag. |
| Download quality floor | beta | Shared quality policy for download jobs via defaultDownloadQuality setting. |
| User-owned provider geo relay | beta | Optional metadata/API relay template for geo-blocked providers; video remains direct. |
| install.sh / install.ps1 | beta | Preferred native binary installers; Bun/npm secondary; source contributor-oriented. |
CLI and install channels
Install paths are documented once on Getting started and Install and update. In 0.3.0:
- Native binary (
install.sh/install.ps1): preferred; Bun runtime embedded, you do not need Bun - Bun / npm global: secondary; npm needs Node on
PATH(Node launcher).bun install -gstill needs Bun - Source checkout: contributor-oriented (
bun run link:global)
Providers
Production providers are registered in the CLI container. The live table and per-provider notes live on Providers.
| Provider family | Typical use | Status |
|---|---|---|
| VidLink | Movies and series | Active default |
| Rivestream | Movies and series | Active, second in the series order |
Videasy (videasy, legacy vidking alias) | Movies and series | Active fallback; canonical metadata host unreachable |
HiAnime (hianime) | Anime | Active default |
Miruro (miruro) | Anime | Active, second in the anime order |
KickAssAnime (kickassanime) | Anime | Active, third in the anime order |
AnimeGG (animegg) | Anime | Active, fourth in the anime order |
AniDB (anidb) | Anime | Active, fifth in the anime order |
AllManga-compatible (allanime) | Anime | Active, last in the anime order |
| YouTube | Video mode (Invidious + yt-dlp) | Production |
| Cineby | none | Not in production engine (research module) |
| Playwright / browser providers | none | Not supported in active runtime |
Provider availability can change without notice. Fallback chains and recovery are expected; see Providers.
Playback requirements
| Requirement | Required? | If missing |
|---|---|---|
| mpv | Yes | Playback cannot start |
| Terminal with reasonable size | Yes | Shell may block with resize message |
| Network (online playback) | Yes for streaming | Use offline library for local files |
| yt-dlp | YouTube and downloads | YouTube play/resolve and the download queue need it; other online playback does not |
| ffprobe | No | Offline duration validation skipped |
| chafa / ImageMagick | Not used | Retired; posters render in process, half-block is the floor |
| Kitty graphics | No | Best quality when available; otherwise half-block |
Downloads and offline
| Capability | Status |
|---|---|
Download queue (/downloads) | Beta; opt-in via setup |
Offline library (/library, --offline) | Beta |
Launch download-only (--download) | Beta |
| Silent online/offline mode switch | Not supported; mode changes are explicit |
| Automatic season batch download | Not supported; per-title enrollment |
Diagnostics and privacy
| Capability | Status |
|---|---|
Local diagnostics (/diagnostics) | Shipped |
Redacted export (/export-diagnostics) | Shipped |
Issue reporting guide (/report-issue) | Shipped |
| Raw stream URLs in exports | Not supported; redacted by design |
| Automatic crash upload | Not supported |
Platform support (0.3.0)
Exact binary targets and posture:
| Target | Playback | Binary install | Status |
|---|---|---|---|
linux-x64 (glibc) | mpv | install.sh → kunai-linux-x64 | Supported |
linux-arm64 (glibc) | mpv | install.sh → kunai-linux-arm64 | Supported |
linux-x64-musl (Alpine) | mpv | install.sh → kunai-linux-x64-musl | Supported |
linux-arm64-musl (Alpine) | mpv | install.sh → kunai-linux-arm64-musl | Supported |
darwin-x64 | mpv | install.sh | Beta (unsigned; Gatekeeper may block) |
darwin-arm64 | mpv | install.sh | Beta (unsigned; Gatekeeper may block) |
windows-x64 | mpv | install.ps1 | Beta (SmartScreen may warn) |
windows-arm64 | mpv | install.ps1 | Experimental |
| WSL (any distro) | mpv (Linux) | Linux install.sh | Uses the Linux environment, not Windows-native PATH/mpv/data |
| FreeBSD / other BSD | Source only | Not published | Unsupported binary |
kunai:// protocol registration is Linux-only (including WSL). Poster previews: Kitty on Kitty/Ghostty, iTerm2 inline images on iTerm2 and VSCode 1.80+, sixel where reported, otherwise built-in half-block. No external binary is used.
More: Platforms, Install and update.
Disclaimer
Kunai is a client-side playback tool. It does not host, upload, mirror, seed, or distribute video content. Streams and related assets are served by non-affiliated third-party providers. Use responsibly and in accordance with applicable laws and service terms.
Kunai does not guarantee:
- Provider uptime or catalog completeness
- Legal availability in your jurisdiction
- Subtitle accuracy or language coverage
Copyright notices belong to the third-party provider that serves the stream, not Kunai.
What is explicitly not planned for beta CLI
- Browser automation in the production resolver
- Kunai-operated stream proxy or CDN
- Kunai-operated public provider relay URL
- Replacing mpv with an embedded player
- Account requirements for core playback
- Silent background provider probing
Last updated on
Platforms
Platform-specific notes for Kunai on Linux, macOS, and Windows: install, playback, poster support, protocol handlers, and the troubleshooting each one needs.
What You Can Do
A capability map of Kunai: search, play, recover, continue watching, discover, download for offline, share links, and diagnose, with the command for each.