Repository navigation
Conversation
…wnload test fails
This branch has not been deployed
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 can now be driven from outside its window: a
kandocommand line, an MCP server for AI agents, and WebMCP tools on kando.yldm.ai.Control socket (
apps/kando/remote,state_remote.go,remote_api.go)The running app listens on
kando.sockbeside its settings (KANDO_SOCKEToverrides), newline-delimited JSON like MyGo's automation plugin. Methods:status,films.list,films.get,subtitles.get,jobs.list,jobs.add,jobs.cancel,sites.search,app.show.remote.OnUI). Files are read on the connection's goroutine. A request whose deadline passed before the UI thread reached it never runs, so a timed-outjobs.addqueues nothing.jobs.addgoes through the same precheck,newJobandqueueAddas 开始处理, and reports each skipped source with the library's own wording.Listenonly replaces a dead socket, never a regular file.open -gon macOS,-nwhenKANDO_SOCKETnames another copy's socket; the executable itself elsewhere. The app now takes MyGo's single-instance lock, so a second launch brings the window forward instead of opening a second copy that writes the same library.json.kandocommand line (apps/kando/cli)The app's own executable, run with a command:
status,list,show,subtitles(srt/text/json,--original/--translation),jobs,add(--wait),cancel,sites,open,mcp,version,help;--jsonon every app command.kandoon PATH ("linux": {"command": "kando"}in mygo.json).kando mcp(apps/kando/mcpserver)A stdio MCP server built on the official SDK
github.com/modelcontextprotocol/go-sdkv1.8.0 (new dependency, approved). Nine tools:kando_status,kando_list_films,kando_get_film,kando_get_subtitles,kando_add_videos,kando_list_jobs,kando_cancel_job,kando_search_sites,kando_open.not_ready: 先在「语音识别」里选一个模型).Settings › General: 命令行与 MCP
kandoto the app in/usr/local/bin,/opt/homebrew/binor~/.local/bin, without sudo. It replaces only links to a Kando (this app, a Kando.app,/opt/kando/kando, the install-script copy), never another program'skando.mcpServersJSON, and 拷贝命令 theclaude mcp addcommand. Both are in five languages.WebMCP on kando.yldm.ai (
apps/site)The page registers four tools through
navigator.modelContextwhen the browser has it:search_supported_sites, over the app's catalog, fetched lazily;get_download, the right file of the latest release for the visitor's system;get_started;list_features.The landing page also gets a feature card for the command line, MCP and WebMCP.
Docs
A "Command line and MCP" section in the five READMEs, and the README screenshots of Settings › General are retaken.
Screenshots
Settings › General, scrolled to the new card (before / after, and after with the command installed and the config copied):
README screenshot, en (before / after):
Verification
go test ./apps/kando/... ./packages/core/... ./packages/media/... ./apps/site/...,go vet,go tool mygo vet,go tool mygo i18n check, shellcheck, and Linux/Windows cross-builds all pass.OnUIskipping work whose deadline passed;navigator.modelContext.Kando.appwas started bykando statusitself (1.5 s).sites,list,jobs --json,add(not ready: no speech model) and a typo (exit 2) behaved as documented. An MCP client overCommandTransportlisted the nine tools and called four of them against that app.webmcp.json the built site.