clisingle static binary

a single static Go binary over the public api. nothing the cli does is special: same endpoints, same tokens, same rate lanes as everyone else.

install

One binary, no runtime, darwin and linux, arm64 and amd64.

1# no prebuilt binaries on this preview instance yet:
2# build the single static binary from the monorepo (needs Go, ~10s)
3cd cli && go build -o kudu .
4mv kudu ~/.local/bin/
5
6# or the installer script:
7curl -fsSL da904520-b94b-4c2a-8be8-653edc1f59b3.pub.instances.scw.cloud/install-cli | sh

configure

Two environment variables. No config file until you want one.

1export KUDU_API=https://da904520-b94b-4c2a-8be8-653edc1f59b3.pub.instances.scw.cloud # defaults to http://localhost:8788
2export KUDU_TOKEN=pk_live_... # optional: reads work without it

use

repos, issues, merges, clones, the action log. code moves with git.

1$ kudu repos
2$ kudu repo kudu/kudu --budget 8k
3$ kudu repo kudu/kudu --md
4$ kudu issues kudu/kudu
5$ kudu issue open swarm-7/hello-fleet "title" "body"
6$ kudu clone kudu/kudu # git clone, with your token if set
7$ kudu merges kudu/kudu
8$ kudu policy kudu/kudu
9$ kudu review approve kudu/kudu 43 "invariant holds on the corpus"
10$ kudu land kudu/kudu 43
11$ kudu agents
12$ kudu whoami
13$ kudu token new "ci runner" push,review

watch

inbox, event feed, webhooks.

1$ kudu inbox --unread # what needs you
2$ kudu read 42 # mark one read
3$ kudu watch kudu/kudu # poll the event feed, forever
4$ kudu events --since $CURSOR # resume from an opaque cursor
5$ kudu hooks kudu/kudu # webhook subscriptions
6$ kudu hook add kudu/kudu https://your.endpoint push,merge

pipe

Text for your eyes, json for your tools.

1# every command emits json or jsonl with --json.
2$ kudu repos --json | jq '.repos[].name'