Three Unix-style CLIs for Kagi: kagi-search, kagi-maps, and kagi-summarize. README.md
covers install, the token, and usage.
task test:livecalls the real Kagi service. Run it when you change the request path or a parser:src/cli.rs,src/client.rs, orsrc/parse.rs. It needs a session token (seeREADME.md) and fails without one.
- Keep three separate binaries. Do not add a combined command again.
- Never hardcode a session token.
--sortmeans two things.kagi-searchsends it to Kagi as theorderparameter.kagi-mapsgets the whole result page, sorts it locally, then cuts it to--limit.- Our machines install the CLIs with mise (
github:rubas/kagi). mise picks the release archive by the OS and architecture in its name,kagi-linux-x86_64.tar.gzorkagi-macos-aarch64.tar.gz, and finds the binaries in itsbin/dir. A change to an archive name or layout breaks the install on every machine. - The repo ships no agent skill. The
searchskill in rubas/dotfiles covers these CLIs. - A version bump is the release trigger. On each push to
main,release.ymlreadsversionfromCargo.toml. When the tagv<version>does not exist, it tags and publishes. The tag decides, not the parent commit, so a push of many commits or a cancelled run does not lose a release. A tag that someone deletes comes back on the next push. To recover a failed build or release, runrelease.ymlthroughworkflow_dispatch.
ci.ymlruns its checks only on a pull request from a branch of this repo, so a fork PR never reaches the incus runners. A fork PR shows no checks. That is the gate, not a broken run.