Repository navigation
feat(kits): download yt-dlp, ffmpeg and whisper-cli on first launch - #40
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Kando no longer asks users to install anything. On macOS and Linux, the first time it opens it downloads whichever of
yt-dlp,ffmpegandwhisper-clithe computer lacks, and the Getting Started guide shows the progress. Programs the user already installed (Homebrew, a package manager) are used as they are.Where the programs come from
yt-dlp: the standalone build of the official release (2026.10.26), pinned by its SHA-256. Kando's copy sits in a folder it can write, so the existing Update and Retry updates it with-U.ffmpegandwhisper-cli: built by the new Tools workflow (.github/workflows/tools.yml,.github/scripts/build-tools.sh) from the sources pinned in.github/tools.envand published as the prereleasetools-1:ffplay, which plays the sound) and dav1d (AV1) linked in, nothing outside the system linked, ad-hoc signed; whisper.cpp 1.9.5 with Metal embedded.whisper-clithat starts but cannot load its backends fails the build.packages/media/toolkit.go.App
packages/media/toolkit.go: the pinned kits per platform,InstallKit(download, SHA-256 check, safe untar, atomic swap of the folder) andOwnToolsDir.lookToolnow looks in Kando's own folder first, thenPATHand the package manager folders as before.state_kits.go(new area): starts the missing downloads once the window is ready, tracks progress and errors, and looks the tools up again when one lands.v*tag, sincetools-1is a release too.Docs
The install step is gone from the five READMEs and the landing page, which also no longer say that no version has been published (v0.1.0 is out). The README screenshots of Settings › General are retaken for the new footnote.
Screenshots
First launch without the programs, Getting Started guide step 2 (before / after):
Settings › General with ffmpeg downloading and whisper-cli failed (before / after):
Step 2 with everything installed (before / after):
README screenshot of Settings › General, zh-CN (before / after):
Verification
go test ./apps/kando/... ./packages/core/... ./packages/media/... ./apps/site/...,go tool mygo vetandgo tool mygo i18n checkpass. New tests:packages/media/toolkit_test.go(checksum mismatch keeps the installed program, unsafe archive entries and symlinks are refused, a canceled download leaves nothing, every platform's kits are pinned,lookToolprefers Kando's own folder) andapps/kando/kits_test.go(downloads start on ready only for what is missing, the status line and message bar, Retry from Settings, the guide's rows).tools-1holds exactly that run's artifacts. Each build transcribed a clip withwhisper-cli; the macOS ffmpeg links only system libraries and has dav1d.whisper-clitranscribed a spoken sentence word for word; ffmpeg decoded AV1, H.264 and HEVC to RGBA frames, merged AV1 video with AAC audio into mp4 and wrote a JPEG cover;ffplaystarted partway into a file.InstallKitagainst the live release on this Mac downloaded and verified all three kits in about 7 seconds,lookToolreturned them, andFindYTDLPInstallsees Kando's yt-dlp as the standalone build that updates with-U.