about summary refs log tree commit diff
path: root/pkgs/applications/networking
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking')
-rw-r--r--pkgs/applications/networking/adguardian/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/amfora/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/asuka/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/av-98/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/badwolf/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/bombadillo/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/browsh/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/castor/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/elinks/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/eolie/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/kristall/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/litebrowser/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/luakit/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/midori/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/mullvad-browser/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/netsurf/browser.nix1
-rw-r--r--pkgs/applications/networking/browsers/netsurf/nsgenbind.nix1
-rw-r--r--pkgs/applications/networking/browsers/nyxt/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/qtchan/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/surf/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/tor-browser/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/vimb/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/webmacs/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/aiac/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/argocd-autopilot/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/arkade/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/assign-lb-ip/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/atlantis/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/atmos/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/civo/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/clusterctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/cmctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/cni/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/containerpilot/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/dnsname-cni/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/kvm2.nix1
-rw-r--r--pkgs/applications/networking/cluster/driftctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/falcoctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/fetchit/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/flink/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/fn-cli/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/func/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/gatekeeper/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/glooctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/hashi-up/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/helm-dashboard/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/helm-docs/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/helmsman/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/hetzner-kube/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/hubble/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/jx/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/k3d/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/k3sup/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/k8sgpt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/karmor/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kbst/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kconf/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kfilt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kluctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kn/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kompose/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kontemplate/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kpt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/ktop/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/ktunnel/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kube-capacity/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kube-router/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kube-score/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubebuilder/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubecfg/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubecolor/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeconform/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-cnpg/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-doctor/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-example/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-explore/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-gadget/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-images/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-node-shell/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-tree/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubectl-view-secret/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubedog/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubefirst/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubelogin-oidc/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubelogin/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubemqctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubent/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubergrunt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubernix/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeshark/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubespy/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubetail/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubeval/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kubexit/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kyverno/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/levant/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/linkerd/generic.nix1
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nomad-autoscaler/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nomad-driver-podman/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nomad/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/nova/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/ocm/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/odo/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pig/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pinniped/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pluto/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/popeye/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pv-migrate/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/rancher/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/rke/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/roxctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/starboard/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/stern/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/taktuk/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/talosctl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/temporalite/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-backend-git/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-compliance/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-docs/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-inventory/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraspace/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tf-summarize/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tfautomv/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tfswitch/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tfupdate/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tgswitch/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tilt/binary.nix1
-rw-r--r--pkgs/applications/networking/cluster/timoni/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tubekit/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/vcluster/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/waagent/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/waypoint/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/werf/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/zarf/default.nix1
-rw-r--r--pkgs/applications/networking/dyndns/cfdyndns/default.nix1
-rw-r--r--pkgs/applications/networking/dyndns/dyndnsc/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/canto-curses/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/castget/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/feed2imap-go/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/fluent-reader/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/gnome-feeds/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/goeland/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/photon/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/rssguard/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/rsstail/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/russ/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/tuifeed/default.nix1
-rw-r--r--pkgs/applications/networking/feedreaders/yarr/default.nix1
-rw-r--r--pkgs/applications/networking/firehol/iprange.nix1
-rw-r--r--pkgs/applications/networking/flent/http-getter.nix1
-rw-r--r--pkgs/applications/networking/gopher/geomyidae/default.nix1
-rw-r--r--pkgs/applications/networking/gopher/phetch/default.nix1
-rw-r--r--pkgs/applications/networking/gopher/sacc/default.nix1
-rw-r--r--pkgs/applications/networking/ids/daq/default.nix1
-rw-r--r--pkgs/applications/networking/ids/zeek/broker/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/SkypeExport/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/abaddon/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/briar-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/chatterino2/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/chatty/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/cordless/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/coyim/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/dino/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/flare-signal/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/freetalk/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/go-neb/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/gomuks/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/gurk-rs/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/iamb/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/jackline/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/kaidan/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/kdeltachat/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/linphone/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/matrix-commander/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/matrix-dl/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/mcabber/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/mm/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/nchat/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/neosay/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/profanity/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/psi-plus/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/psi/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/qtox/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/quaternion/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/ratox/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/seren/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/session-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-cli/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/signaldctl/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/silc-client/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/ssh-chat/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/tangram/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tg/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/tensor/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/threema-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/toxic/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/turses/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/utox/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-cli/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/xmppc/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/ytalk/default.nix1
-rw-r--r--pkgs/applications/networking/irc/communi/default.nix1
-rw-r--r--pkgs/applications/networking/irc/convos/default.nix1
-rw-r--r--pkgs/applications/networking/irc/ii/default.nix1
-rw-r--r--pkgs/applications/networking/irc/irccloud/default.nix1
-rw-r--r--pkgs/applications/networking/irc/ircdog/default.nix1
-rw-r--r--pkgs/applications/networking/irc/irssi/default.nix1
-rw-r--r--pkgs/applications/networking/irc/kirc/default.nix1
-rw-r--r--pkgs/applications/networking/irc/senpai/default.nix1
-rw-r--r--pkgs/applications/networking/irc/sic/default.nix1
-rw-r--r--pkgs/applications/networking/irc/srain/default.nix1
-rw-r--r--pkgs/applications/networking/jnetmap/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/afew/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/alot/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/astroid/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/caeml/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/electron-mail/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/hasmail/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/himalaya/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/imapfilter.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/lumail/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/mailcheck/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/meli/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/msgviewer/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch-bower/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/muchsync.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/mutt.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/sylpheed/default.nix1
-rw-r--r--pkgs/applications/networking/mumble/default.nix1
-rw-r--r--pkgs/applications/networking/newsreaders/pan/default.nix1
-rw-r--r--pkgs/applications/networking/newsreaders/raven-reader/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix1
-rw-r--r--pkgs/applications/networking/p2p/libutp/3.4.nix1
-rw-r--r--pkgs/applications/networking/p2p/opentracker/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/storrent/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/tremc/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/tremotesf/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/tribler/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/zeronet-conservancy/default.nix1
-rw-r--r--pkgs/applications/networking/powerdns-admin/default.nix1
-rw-r--r--pkgs/applications/networking/remote/rdesktop/default.nix1
-rw-r--r--pkgs/applications/networking/remote/x2goclient/default.nix1
-rw-r--r--pkgs/applications/networking/siproxd/default.nix1
-rw-r--r--pkgs/applications/networking/sniffers/qtwirediff/default.nix1
-rw-r--r--pkgs/applications/networking/sniffers/sngrep/default.nix1
-rw-r--r--pkgs/applications/networking/sniffers/whsniff/default.nix1
-rw-r--r--pkgs/applications/networking/sync/casync/default.nix1
-rw-r--r--pkgs/applications/networking/sync/celeste/default.nix1
-rw-r--r--pkgs/applications/networking/sync/desync/default.nix1
-rw-r--r--pkgs/applications/networking/sync/lcsync/default.nix1
-rw-r--r--pkgs/applications/networking/sync/lsyncd/default.nix1
-rw-r--r--pkgs/applications/networking/sync/onedrive/default.nix1
-rw-r--r--pkgs/applications/networking/sync/openrsync/default.nix1
-rw-r--r--pkgs/applications/networking/sync/rclone/browser.nix1
285 files changed, 285 insertions, 0 deletions
diff --git a/pkgs/applications/networking/adguardian/default.nix b/pkgs/applications/networking/adguardian/default.nix
index 7b85ee2c000c9..21123d47e5d1b 100644
--- a/pkgs/applications/networking/adguardian/default.nix
+++ b/pkgs/applications/networking/adguardian/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home instance";
+    mainProgram = "adguardian";
     homepage = "https://github.com/Lissy93/AdGuardian-Term";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/applications/networking/browsers/amfora/default.nix b/pkgs/applications/networking/browsers/amfora/default.nix
index 7fd29f1a39429..fe778ded9e3bf 100644
--- a/pkgs/applications/networking/browsers/amfora/default.nix
+++ b/pkgs/applications/networking/browsers/amfora/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A fancy terminal browser for the Gemini protocol";
+    mainProgram = "amfora";
     homepage = "https://github.com/makeworld-the-better-one/amfora";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ deifactor ];
diff --git a/pkgs/applications/networking/browsers/asuka/default.nix b/pkgs/applications/networking/browsers/asuka/default.nix
index a89d2bb36e877..f36cf28b2d05e 100644
--- a/pkgs/applications/networking/browsers/asuka/default.nix
+++ b/pkgs/applications/networking/browsers/asuka/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Gemini Project client written in Rust with NCurses";
+    mainProgram = "asuka";
     homepage = "https://git.sr.ht/~julienxx/asuka";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/browsers/av-98/default.nix b/pkgs/applications/networking/browsers/av-98/default.nix
index afd2e9b9c1a72..d17dfb8e28cbb 100644
--- a/pkgs/applications/networking/browsers/av-98/default.nix
+++ b/pkgs/applications/networking/browsers/av-98/default.nix
@@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://tildegit.org/solderpunk/AV-98";
     description = "Experimental console client for the Gemini protocol";
+    mainProgram = "av98";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ehmry ];
   };
diff --git a/pkgs/applications/networking/browsers/badwolf/default.nix b/pkgs/applications/networking/browsers/badwolf/default.nix
index 41308634186d7..2200f878172be 100644
--- a/pkgs/applications/networking/browsers/badwolf/default.nix
+++ b/pkgs/applications/networking/browsers/badwolf/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Minimalist and privacy-oriented WebKitGTK+ browser";
+    mainProgram = "badwolf";
     homepage = "https://hacktivis.me/projects/badwolf";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/browsers/bombadillo/default.nix b/pkgs/applications/networking/browsers/bombadillo/default.nix
index 96a968a50fe98..f96d6014b5bcc 100644
--- a/pkgs/applications/networking/browsers/bombadillo/default.nix
+++ b/pkgs/applications/networking/browsers/bombadillo/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Non-web client for the terminal, supporting Gopher, Gemini and more";
+    mainProgram = "bombadillo";
     homepage = "https://bombadillo.colorfield.space/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ehmry ];
diff --git a/pkgs/applications/networking/browsers/browsh/default.nix b/pkgs/applications/networking/browsers/browsh/default.nix
index ee04f9ed04dc8..2eeef882d6307 100644
--- a/pkgs/applications/networking/browsers/browsh/default.nix
+++ b/pkgs/applications/networking/browsers/browsh/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A fully-modern text-based browser, rendering to TTY and browsers";
+    mainProgram = "browsh";
     homepage = "https://www.brow.sh/";
     maintainers = with maintainers; [ kalbasit siraben ];
     license = lib.licenses.lgpl21;
diff --git a/pkgs/applications/networking/browsers/castor/default.nix b/pkgs/applications/networking/browsers/castor/default.nix
index 6a898fb0c95d1..6d35a7091e8f5 100644
--- a/pkgs/applications/networking/browsers/castor/default.nix
+++ b/pkgs/applications/networking/browsers/castor/default.nix
@@ -44,6 +44,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
+    mainProgram = "castor";
     homepage = "https://sr.ht/~julienxx/Castor";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix
index 35f33c9972948..8a129f2fdab8f 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Full-featured text-mode web browser";
+    mainProgram = "elinks";
     homepage = "https://github.com/rkd77/elinks";
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix
index 0508b4a19ef38..4b9270b7d5180 100644
--- a/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/pkgs/applications/networking/browsers/eolie/default.nix
@@ -71,6 +71,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A new GNOME web browser";
+    mainProgram = "eolie";
     homepage = "https://wiki.gnome.org/Apps/Eolie";
     license  = licenses.gpl3Plus;
     maintainers = with maintainers; [ samdroid-apps ];
diff --git a/pkgs/applications/networking/browsers/kristall/default.nix b/pkgs/applications/networking/browsers/kristall/default.nix
index 1435d24726354..3515f0e30e01d 100644
--- a/pkgs/applications/networking/browsers/kristall/default.nix
+++ b/pkgs/applications/networking/browsers/kristall/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "Graphical small-internet client, supports gemini, http, https, gopher, finger";
+    mainProgram = "kristall";
     homepage = "https://random-projects.net/projects/kristall.gemini";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/networking/browsers/litebrowser/default.nix b/pkgs/applications/networking/browsers/litebrowser/default.nix
index 2158d0bb2f573..d1ffce7e6e5eb 100644
--- a/pkgs/applications/networking/browsers/litebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/litebrowser/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A simple browser based on the litehtml engine";
+    mainProgram = "litebrowser";
     homepage = "https://github.com/litehtml/litebrowser-linux";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/browsers/luakit/default.nix b/pkgs/applications/networking/browsers/luakit/default.nix
index 66188f174753a..a861f2f44bfc4 100644
--- a/pkgs/applications/networking/browsers/luakit/default.nix
+++ b/pkgs/applications/networking/browsers/luakit/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://luakit.github.io/";
     description = "Fast, small, webkit-based browser framework extensible in Lua";
+    mainProgram = "luakit";
     longDescription = ''
       Luakit is a highly configurable browser framework based on the WebKit web
       content engine and the GTK+ toolkit. It is very fast, extensible with Lua,
diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix
index 187914740f25c..3bf46be683193 100644
--- a/pkgs/applications/networking/browsers/midori/default.nix
+++ b/pkgs/applications/networking/browsers/midori/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight WebKitGTK web browser";
+    mainProgram = "midori";
     homepage = "https://www.midori-browser.org/";
     license = with licenses; [ lgpl21Plus ];
     platforms = with platforms; linux;
diff --git a/pkgs/applications/networking/browsers/mullvad-browser/default.nix b/pkgs/applications/networking/browsers/mullvad-browser/default.nix
index c74677490d5e1..9bb6fe7798320 100644
--- a/pkgs/applications/networking/browsers/mullvad-browser/default.nix
+++ b/pkgs/applications/networking/browsers/mullvad-browser/default.nix
@@ -256,6 +256,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Privacy-focused browser made in a collaboration between The Tor Project and Mullvad";
+    mainProgram = "mullvad-browser";
     homepage = "https://mullvad.net/en/browser";
     platforms = attrNames sources;
     maintainers = with maintainers; [ felschr panicgh ];
diff --git a/pkgs/applications/networking/browsers/netsurf/browser.nix b/pkgs/applications/networking/browsers/netsurf/browser.nix
index 0297301096d63..6feb02faa9d2b 100644
--- a/pkgs/applications/networking/browsers/netsurf/browser.nix
+++ b/pkgs/applications/networking/browsers/netsurf/browser.nix
@@ -134,6 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.netsurf-browser.org/";
     description = "A free, open source, small web browser";
+    mainProgram = "netsurf-gtk3";
     longDescription = ''
       NetSurf is a free, open source web browser. It is written in C and
       released under the GNU Public Licence version 2. NetSurf has its own
diff --git a/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix b/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix
index fc2b992803807..0ad77b07ca406 100644
--- a/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix
+++ b/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.netsurf-browser.org/";
     description = "Generator for JavaScript bindings for netsurf browser";
+    mainProgram = "nsgenbind";
     license = lib.licenses.mit;
     inherit (buildsystem.meta) maintainers platforms;
   };
diff --git a/pkgs/applications/networking/browsers/nyxt/default.nix b/pkgs/applications/networking/browsers/nyxt/default.nix
index ecc75cd5cd303..6a990201c75d9 100644
--- a/pkgs/applications/networking/browsers/nyxt/default.nix
+++ b/pkgs/applications/networking/browsers/nyxt/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)";
+    mainProgram = "nyxt";
     homepage = "https://nyxt.atlas.engineer";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lewo dariof4 ];
diff --git a/pkgs/applications/networking/browsers/qtchan/default.nix b/pkgs/applications/networking/browsers/qtchan/default.nix
index 8ad81139fbe91..eb2e9789caa56 100644
--- a/pkgs/applications/networking/browsers/qtchan/default.nix
+++ b/pkgs/applications/networking/browsers/qtchan/default.nix
@@ -22,6 +22,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "4chan browser in qt5";
+    mainProgram = "qtchan";
     homepage    = "https://github.com/siavash119/qtchan";
     license     = licenses.mit;
     maintainers = with maintainers; [ Madouura ];
diff --git a/pkgs/applications/networking/browsers/surf/default.nix b/pkgs/applications/networking/browsers/surf/default.nix
index 6573821d05984..012a86aadb384 100644
--- a/pkgs/applications/networking/browsers/surf/default.nix
+++ b/pkgs/applications/networking/browsers/surf/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple web browser based on WebKitGTK";
+    mainProgram = "surf";
     longDescription = ''
       surf is a simple web browser based on WebKitGTK. It is able to display
       websites and follow links. It supports the XEmbed protocol which makes it
diff --git a/pkgs/applications/networking/browsers/tor-browser/default.nix b/pkgs/applications/networking/browsers/tor-browser/default.nix
index 41d22dc39aa39..5e150662274b9 100644
--- a/pkgs/applications/networking/browsers/tor-browser/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser/default.nix
@@ -323,6 +323,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Privacy-focused browser routing traffic through the Tor network";
+    mainProgram = "tor-browser";
     homepage = "https://www.torproject.org/";
     changelog = "https://gitweb.torproject.org/builders/tor-browser-build.git/plain/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt?h=maint-${version}";
     platforms = attrNames sources;
diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix
index 35fece92529b8..8df37ed5e0862 100644
--- a/pkgs/applications/networking/browsers/vimb/default.nix
+++ b/pkgs/applications/networking/browsers/vimb/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A Vim-like browser";
+    mainProgram = "vimb";
     longDescription = ''
       A fast and lightweight vim like web browser based on the webkit web
       browser engine and the GTK toolkit. Vimb is modal like the great vim
diff --git a/pkgs/applications/networking/browsers/webmacs/default.nix b/pkgs/applications/networking/browsers/webmacs/default.nix
index 2f63670128bb1..dc8b89ac1df78 100644
--- a/pkgs/applications/networking/browsers/webmacs/default.nix
+++ b/pkgs/applications/networking/browsers/webmacs/default.nix
@@ -60,6 +60,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Keyboard-based web browser with Emacs/conkeror heritage";
+    mainProgram = "webmacs";
     longDescription = ''
       webmacs is yet another browser for keyboard-based web navigation.
 
diff --git a/pkgs/applications/networking/cluster/aiac/default.nix b/pkgs/applications/networking/cluster/aiac/default.nix
index 995e00a639485..79bf754fa3e28 100644
--- a/pkgs/applications/networking/cluster/aiac/default.nix
+++ b/pkgs/applications/networking/cluster/aiac/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = ''Artificial Intelligence Infrastructure-as-Code Generator.'';
+    mainProgram = "aiac";
     homepage = "https://github.com/gofireflyio/aiac/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index a76c04324ec0a..8a6e3ac65f748 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -84,6 +84,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Container native workflow engine for Kubernetes";
+    mainProgram = "argo";
     homepage = "https://github.com/argoproj/argo";
     changelog = "https://github.com/argoproj/argo-workflows/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/argocd-autopilot/default.nix b/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
index 3b0250c5f9a96..55028845e2cb1 100644
--- a/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
+++ b/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "ArgoCD Autopilot";
+    mainProgram = "argocd-autopilot";
     downloadPage = "https://github.com/argoproj-labs/argocd-autopilot";
     homepage = "https://argocd-autopilot.readthedocs.io/en/stable/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 73422872a7652..3139252e65c75 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -56,6 +56,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Declarative continuous deployment for Kubernetes";
+    mainProgram = "argocd";
     downloadPage = "https://github.com/argoproj/argo-cd";
     homepage = "https://argo-cd.readthedocs.io/en/stable/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/arkade/default.nix b/pkgs/applications/networking/cluster/arkade/default.nix
index 5ab103611b352..b921d080a478a 100644
--- a/pkgs/applications/networking/cluster/arkade/default.nix
+++ b/pkgs/applications/networking/cluster/arkade/default.nix
@@ -51,6 +51,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/alexellis/arkade";
     description = "Open Source Kubernetes Marketplace";
+    mainProgram = "arkade";
     license = licenses.mit;
     maintainers = with maintainers; [ welteki techknowlogick qjoly ];
   };
diff --git a/pkgs/applications/networking/cluster/assign-lb-ip/default.nix b/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
index 7b85443db3f04..bc55112dd292e 100644
--- a/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
+++ b/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Assigns loadBalancerIP address to a Kubernetes service for testing purposes";
+    mainProgram = "assign-lb-ip";
     homepage    = "https://github.com/Nordix/assign-lb-ip";
     license     = licenses.asl20;
     maintainers = [ maintainers.starcraft66 ];
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 7b6edadbba436..59c1d8664d55e 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/runatlantis/atlantis";
     description = "Terraform Pull Request Automation";
+    mainProgram = "atlantis";
     license = licenses.asl20;
     maintainers = with maintainers; [ jpotier ];
   };
diff --git a/pkgs/applications/networking/cluster/atmos/default.nix b/pkgs/applications/networking/cluster/atmos/default.nix
index dda42538412df..00c8805f3cfa3 100644
--- a/pkgs/applications/networking/cluster/atmos/default.nix
+++ b/pkgs/applications/networking/cluster/atmos/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
     homepage = "https://atmos.tools";
     changelog = "https://github.com/cloudposse/atmos/releases/tag/v${version}";
     description = "Universal Tool for DevOps and Cloud Automation (works with terraform, helm, helmfile, etc)";
+    mainProgram = "atmos";
     license = licenses.asl20;
     maintainers = with maintainers; [ rb ];
   };
diff --git a/pkgs/applications/networking/cluster/civo/default.nix b/pkgs/applications/networking/cluster/civo/default.nix
index 5fb0ff4d98520..d2f913a765ed7 100644
--- a/pkgs/applications/networking/cluster/civo/default.nix
+++ b/pkgs/applications/networking/cluster/civo/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI for interacting with Civo resources";
+    mainProgram = "civo";
     homepage = "https://github.com/civo/cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ berryp ];
diff --git a/pkgs/applications/networking/cluster/clusterctl/default.nix b/pkgs/applications/networking/cluster/clusterctl/default.nix
index f0778bdcc62d9..34add12a81352 100644
--- a/pkgs/applications/networking/cluster/clusterctl/default.nix
+++ b/pkgs/applications/networking/cluster/clusterctl/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/kubernetes-sigs/cluster-api/releases/tag/${src.rev}";
     description = "Kubernetes cluster API tool";
+    mainProgram = "clusterctl";
     homepage = "https://cluster-api.sigs.k8s.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/networking/cluster/cmctl/default.nix b/pkgs/applications/networking/cluster/cmctl/default.nix
index e1abc4ea985c2..feb1b03d26fe8 100644
--- a/pkgs/applications/networking/cluster/cmctl/default.nix
+++ b/pkgs/applications/networking/cluster/cmctl/default.nix
@@ -50,6 +50,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI tool for managing cert-manager service on Kubernetes clusters";
+    mainProgram = "cmctl";
     longDescription = ''
       cert-manager adds certificates and certificate issuers as resource types
       in Kubernetes clusters, and simplifies the process of obtaining, renewing
diff --git a/pkgs/applications/networking/cluster/cni/default.nix b/pkgs/applications/networking/cluster/cni/default.nix
index 33688148985f9..6fdeb802ea1cf 100644
--- a/pkgs/applications/networking/cluster/cni/default.nix
+++ b/pkgs/applications/networking/cluster/cni/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Container Network Interface - networking for Linux containers";
+    mainProgram = "cnitool";
     license = licenses.asl20;
     homepage = "https://github.com/containernetworking/cni";
     maintainers = with maintainers; [ offline vdemeester ];
diff --git a/pkgs/applications/networking/cluster/containerpilot/default.nix b/pkgs/applications/networking/cluster/containerpilot/default.nix
index dc6e5f3402fab..a255db568125c 100644
--- a/pkgs/applications/networking/cluster/containerpilot/default.nix
+++ b/pkgs/applications/networking/cluster/containerpilot/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
   meta = with lib; {
     homepage = "https://www.joyent.com/containerpilot";
     description = "An application centric micro-orchestrator.";
+    mainProgram = "containerpilot";
     platforms = platforms.unix;
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/applications/networking/cluster/dnsname-cni/default.nix b/pkgs/applications/networking/cluster/dnsname-cni/default.nix
index 3b6edd5752975..c147822b43b53 100644
--- a/pkgs/applications/networking/cluster/dnsname-cni/default.nix
+++ b/pkgs/applications/networking/cluster/dnsname-cni/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "DNS name resolution for containers";
+    mainProgram = "dnsname";
     homepage = "https://github.com/containers/dnsname";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
index a35cfab16cd7e..c21cf5b4970e8 100644
--- a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
+++ b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://minikube.sigs.k8s.io/docs/drivers/kvm2";
     description = "KVM2 driver for docker-machine";
+    mainProgram = "docker-machine-driver-kvm2";
     license = licenses.asl20;
     maintainers = with maintainers; [ tadfisher atkinschang ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/cluster/driftctl/default.nix b/pkgs/applications/networking/cluster/driftctl/default.nix
index b116f566c5cea..b976308c4d8aa 100644
--- a/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
     homepage = "https://driftctl.com/";
     changelog = "https://github.com/snyk/driftctl/releases/tag/v${version}";
     description = "Detect, track and alert on infrastructure drift";
+    mainProgram = "driftctl";
     longDescription = ''
       driftctl is a free and open-source CLI that warns of infrastructure drift
       and fills in the missing piece in your DevSecOps toolbox.
diff --git a/pkgs/applications/networking/cluster/falcoctl/default.nix b/pkgs/applications/networking/cluster/falcoctl/default.nix
index 1c582447fa8a1..7a73cc8cea29b 100644
--- a/pkgs/applications/networking/cluster/falcoctl/default.nix
+++ b/pkgs/applications/networking/cluster/falcoctl/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Administrative tooling for Falco";
+    mainProgram = "falcoctl";
     homepage = "https://github.com/falcosecurity/falcoctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ developer-guy kranurag7 LucaGuerra ];
diff --git a/pkgs/applications/networking/cluster/fetchit/default.nix b/pkgs/applications/networking/cluster/fetchit/default.nix
index cadc331a9605d..a113a5c718f0b 100644
--- a/pkgs/applications/networking/cluster/fetchit/default.nix
+++ b/pkgs/applications/networking/cluster/fetchit/default.nix
@@ -64,6 +64,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to manage the life cycle and configuration of Podman containers";
+    mainProgram = "fetchit";
     longDescription = ''
       FetchIt allows for a GitOps based approach to manage containers running on
       a single host or multiple hosts based on a git repository. This allows for
diff --git a/pkgs/applications/networking/cluster/flink/default.nix b/pkgs/applications/networking/cluster/flink/default.nix
index 276c6ebea34dc..5eed2c4afe6c3 100644
--- a/pkgs/applications/networking/cluster/flink/default.nix
+++ b/pkgs/applications/networking/cluster/flink/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A distributed stream processing framework";
+    mainProgram = "flink";
     homepage = "https://flink.apache.org";
     downloadPage = "https://flink.apache.org/downloads.html";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index 5891934462850..099ef43402354 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI client for Flux, the GitOps Kubernetes operator";
+    mainProgram = "fluxctl";
     homepage = "https://github.com/fluxcd/flux";
     license = licenses.asl20;
     maintainers = with maintainers; [ Gonzih Br1ght0ne ];
diff --git a/pkgs/applications/networking/cluster/fn-cli/default.nix b/pkgs/applications/networking/cluster/fn-cli/default.nix
index 299abe58fbd34..07234c75ff8e2 100644
--- a/pkgs/applications/networking/cluster/fn-cli/default.nix
+++ b/pkgs/applications/networking/cluster/fn-cli/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line tool for the fn project";
+    mainProgram = "fn";
     homepage = "https://fnproject.io";
     license = licenses.asl20;
     maintainers = [ maintainers.c4605 ];
diff --git a/pkgs/applications/networking/cluster/func/default.nix b/pkgs/applications/networking/cluster/func/default.nix
index 7145d1277c9b5..7ddb89d1c0482 100644
--- a/pkgs/applications/networking/cluster/func/default.nix
+++ b/pkgs/applications/networking/cluster/func/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Knative client library and CLI for creating, building, and deploying Knative Functions";
+    mainProgram = "func";
     homepage = "https://github.com/knative/func";
     changelog = "https://github.com/knative/func/releases/tag/knative-v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/gatekeeper/default.nix b/pkgs/applications/networking/cluster/gatekeeper/default.nix
index 22b757bacc0d5..5558a48d9f8ee 100644
--- a/pkgs/applications/networking/cluster/gatekeeper/default.nix
+++ b/pkgs/applications/networking/cluster/gatekeeper/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Policy Controller for Kubernetes";
+    mainProgram = "gator";
     homepage = "https://github.com/open-policy-agent/gatekeeper";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/pkgs/applications/networking/cluster/glooctl/default.nix b/pkgs/applications/networking/cluster/glooctl/default.nix
index 1b08314d27c8c..ffe98a73c9048 100644
--- a/pkgs/applications/networking/cluster/glooctl/default.nix
+++ b/pkgs/applications/networking/cluster/glooctl/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = {
     description = "glooctl is the unified CLI for Gloo";
+    mainProgram = "glooctl";
     homepage = "https://docs.solo.io/gloo-edge/latest/reference/cli/glooctl/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/applications/networking/cluster/hashi-up/default.nix b/pkgs/applications/networking/cluster/hashi-up/default.nix
index 583a0c32b1d1b..de782bef9af1d 100644
--- a/pkgs/applications/networking/cluster/hashi-up/default.nix
+++ b/pkgs/applications/networking/cluster/hashi-up/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A lightweight utility to install HashiCorp Consul, Nomad, or Vault on any remote Linux host";
+    mainProgram = "hashi-up";
     homepage = "https://github.com/jsiebens/hashi-up";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/pkgs/applications/networking/cluster/helm-dashboard/default.nix b/pkgs/applications/networking/cluster/helm-dashboard/default.nix
index bcd24be5c9228..e0603ff721368 100644
--- a/pkgs/applications/networking/cluster/helm-dashboard/default.nix
+++ b/pkgs/applications/networking/cluster/helm-dashboard/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = {
     description = "A simplified way of working with Helm";
+    mainProgram = "helm-dashboard";
     longDescription = ''
       Helm Dashboard is an open-source project which offers a UI-driven way to view the installed Helm charts,
       see their revision history and corresponding k8s resources.
diff --git a/pkgs/applications/networking/cluster/helm-docs/default.nix b/pkgs/applications/networking/cluster/helm-docs/default.nix
index cf286c8dc6f54..4952f4db1e612 100644
--- a/pkgs/applications/networking/cluster/helm-docs/default.nix
+++ b/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/norwoodj/helm-docs";
     description = "A tool for automatically generating markdown documentation for Helm charts";
+    mainProgram = "helm-docs";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sagikazarmark ];
   };
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index 0ae488c64c651..f0fa298e77862 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -41,6 +41,7 @@ buildGo122Module rec {
 
   meta = {
     description = "Declarative spec for deploying Helm charts";
+    mainProgram = "helmfile";
     longDescription = ''
       Declaratively deploy your Kubernetes manifests, Kustomize configs,
       and charts as Helm releases in one shot.
diff --git a/pkgs/applications/networking/cluster/helmsman/default.nix b/pkgs/applications/networking/cluster/helmsman/default.nix
index 0e0a69496f985..458ecae5ff68d 100644
--- a/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Helm Charts (k8s applications) as Code tool";
+    mainProgram = "helmsman";
     homepage = "https://github.com/Praqma/helmsman";
     license = licenses.mit;
     maintainers = with maintainers; [ lynty ];
diff --git a/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
index a1fceb10ea7be..1519058e8f166 100644
--- a/pkgs/applications/networking/cluster/hetzner-kube/default.nix
+++ b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = {
     description = "A CLI tool for provisioning Kubernetes clusters on Hetzner Cloud";
+    mainProgram = "hetzner-kube";
     homepage = "https://github.com/xetys/hetzner-kube";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ eliasp ];
diff --git a/pkgs/applications/networking/cluster/hubble/default.nix b/pkgs/applications/networking/cluster/hubble/default.nix
index ecbe56d098851..d9e5bbecca434 100644
--- a/pkgs/applications/networking/cluster/hubble/default.nix
+++ b/pkgs/applications/networking/cluster/hubble/default.nix
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Network, Service & Security Observability for Kubernetes using eBPF";
+    mainProgram = "hubble";
     license = licenses.asl20;
     homepage = "https://github.com/cilium/hubble/";
     maintainers = with maintainers; [ humancalico bryanasdev000 ];
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index 4c19d2404834c..8f22d01a4601e 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
+    mainProgram = "istioctl";
     homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ bryanasdev000 veehaitch ];
diff --git a/pkgs/applications/networking/cluster/jx/default.nix b/pkgs/applications/networking/cluster/jx/default.nix
index 204b08962454d..0bbee5b74ae01 100644
--- a/pkgs/applications/networking/cluster/jx/default.nix
+++ b/pkgs/applications/networking/cluster/jx/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Command line tool for installing and using Jenkins X";
+    mainProgram = "jx";
     homepage = "https://jenkins-x.io";
     longDescription = ''
       Jenkins X provides automated CI+CD for Kubernetes with Preview
diff --git a/pkgs/applications/networking/cluster/k3d/default.nix b/pkgs/applications/networking/cluster/k3d/default.nix
index e74595903b51e..fcd97875ff809 100644
--- a/pkgs/applications/networking/cluster/k3d/default.nix
+++ b/pkgs/applications/networking/cluster/k3d/default.nix
@@ -61,6 +61,7 @@ buildGoModule rec {
     homepage = "https://github.com/k3d-io/k3d/";
     changelog = "https://github.com/k3d-io/k3d/blob/v${version}/CHANGELOG.md";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
+    mainProgram = "k3d";
     longDescription = ''
       k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
 
diff --git a/pkgs/applications/networking/cluster/k3sup/default.nix b/pkgs/applications/networking/cluster/k3sup/default.nix
index c45970ddeef8b..d5ac78ea5c4c6 100644
--- a/pkgs/applications/networking/cluster/k3sup/default.nix
+++ b/pkgs/applications/networking/cluster/k3sup/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/alexellis/k3sup";
     description = "Bootstrap Kubernetes with k3s over SSH";
+    mainProgram = "k3sup";
     license = licenses.mit;
     maintainers = with maintainers; [ welteki qjoly ];
   };
diff --git a/pkgs/applications/networking/cluster/k8sgpt/default.nix b/pkgs/applications/networking/cluster/k8sgpt/default.nix
index 909e7fb621e53..3fa2d5f5bc956 100644
--- a/pkgs/applications/networking/cluster/k8sgpt/default.nix
+++ b/pkgs/applications/networking/cluster/k8sgpt/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Giving Kubernetes Superpowers to everyone";
+    mainProgram = "k8sgpt";
     homepage = "https://k8sgpt.ai";
     changelog = "https://github.com/k8sgpt-ai/k8sgpt/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/karmor/default.nix b/pkgs/applications/networking/cluster/karmor/default.nix
index 38058e57d2d84..383ac0e15f015 100644
--- a/pkgs/applications/networking/cluster/karmor/default.nix
+++ b/pkgs/applications/networking/cluster/karmor/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A client tool to help manage KubeArmor";
+    mainProgram = "karmor";
     homepage = "https://kubearmor.io";
     changelog = "https://github.com/kubearmor/kubearmor-client/releases/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kbst/default.nix b/pkgs/applications/networking/cluster/kbst/default.nix
index 30207b07457fd..566610ebc7cbc 100644
--- a/pkgs/applications/networking/cluster/kbst/default.nix
+++ b/pkgs/applications/networking/cluster/kbst/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubestack framework CLI";
+    mainProgram = "kbst";
     homepage = "https://www.kubestack.com/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mtrsk ];
diff --git a/pkgs/applications/networking/cluster/kconf/default.nix b/pkgs/applications/networking/cluster/kconf/default.nix
index 5e36f45e50fd9..8813327a60905 100644
--- a/pkgs/applications/networking/cluster/kconf/default.nix
+++ b/pkgs/applications/networking/cluster/kconf/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An opinionated command line tool for managing multiple kubeconfigs";
+    mainProgram = "kconf";
     homepage = "https://github.com/particledecay/kconf";
     license = licenses.mit;
     maintainers = with maintainers; [ thmzlt ];
diff --git a/pkgs/applications/networking/cluster/kfilt/default.nix b/pkgs/applications/networking/cluster/kfilt/default.nix
index dd85bd8bbddc2..8059528eaa121 100644
--- a/pkgs/applications/networking/cluster/kfilt/default.nix
+++ b/pkgs/applications/networking/cluster/kfilt/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = {
     description = "Command-line tool that filters Kubernetes resources";
+    mainProgram = "kfilt";
     homepage = "https://github.com/ryane/kfilt";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.ryane ];
diff --git a/pkgs/applications/networking/cluster/kluctl/default.nix b/pkgs/applications/networking/cluster/kluctl/default.nix
index 99e311ff3e20b..601be5ff6d1d7 100644
--- a/pkgs/applications/networking/cluster/kluctl/default.nix
+++ b/pkgs/applications/networking/cluster/kluctl/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The missing glue to put together large Kubernetes deployments";
+    mainProgram = "kluctl";
     homepage = "https://kluctl.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ sikmir netthier ];
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
index 156c2cae7ac5f..3a5f18cbf581d 100644
--- a/pkgs/applications/networking/cluster/kn/default.nix
+++ b/pkgs/applications/networking/cluster/kn/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within scripts";
+    mainProgram = "kn";
     homepage = "https://github.com/knative/client";
     changelog = "https://github.com/knative/client/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kompose/default.nix b/pkgs/applications/networking/cluster/kompose/default.nix
index 290d41fbdddde..248dcf84e3eda 100644
--- a/pkgs/applications/networking/cluster/kompose/default.nix
+++ b/pkgs/applications/networking/cluster/kompose/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
+    mainProgram = "kompose";
     homepage = "https://kompose.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ thpham vdemeester ];
diff --git a/pkgs/applications/networking/cluster/kontemplate/default.nix b/pkgs/applications/networking/cluster/kontemplate/default.nix
index 10c161f45d05e..14e75829e401c 100644
--- a/pkgs/applications/networking/cluster/kontemplate/default.nix
+++ b/pkgs/applications/networking/cluster/kontemplate/default.nix
@@ -15,6 +15,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description      = "Extremely simple Kubernetes resource templates";
+    mainProgram = "kontemplate";
     homepage         = "http://kontemplate.works";
     downloadPage     = "https://github.com/tazjin/kontemplate/releases";
     license          = licenses.gpl3;
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index 1e911aaabf666..7f051075a5b3a 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -38,6 +38,7 @@ let
 
         meta = with lib; {
           description = "Easiest way to get a production Kubernetes up and running";
+          mainProgram = "kops";
           homepage = "https://github.com/kubernetes/kops";
           changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases";
           license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kpt/default.nix b/pkgs/applications/networking/cluster/kpt/default.nix
index ff5c8588ccee4..8ae2138907b1a 100644
--- a/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/pkgs/applications/networking/cluster/kpt/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
+    mainProgram = "kpt";
     homepage = "https://googlecontainertools.github.io/kpt/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
diff --git a/pkgs/applications/networking/cluster/ktop/default.nix b/pkgs/applications/networking/cluster/ktop/default.nix
index 58fca5221c0dd..847a58a9c40f9 100644
--- a/pkgs/applications/networking/cluster/ktop/default.nix
+++ b/pkgs/applications/networking/cluster/ktop/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A top-like tool for your Kubernetes cluster";
+    mainProgram = "ktop";
     longDescription = ''
       Following the tradition of Unix/Linux top tools, ktop is a tool that displays useful metrics information about nodes, pods, and other workload resources running in a Kubernetes cluster.
     '';
diff --git a/pkgs/applications/networking/cluster/ktunnel/default.nix b/pkgs/applications/networking/cluster/ktunnel/default.nix
index 3b05aabc00b9f..5cbcc6b661b77 100644
--- a/pkgs/applications/networking/cluster/ktunnel/default.nix
+++ b/pkgs/applications/networking/cluster/ktunnel/default.nix
@@ -32,6 +32,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "A cli that exposes your local resources to kubernetes ";
+    mainProgram = "ktunnel";
     homepage = "https://github.com/omrikiei/ktunnel";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/applications/networking/cluster/kube-capacity/default.nix b/pkgs/applications/networking/cluster/kube-capacity/default.nix
index c4a631c3258e3..caed8df9e5119 100644
--- a/pkgs/applications/networking/cluster/kube-capacity/default.nix
+++ b/pkgs/applications/networking/cluster/kube-capacity/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "A simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster";
+    mainProgram = "kube-capacity";
     homepage = "https://github.com/robscott/kube-capacity";
     changelog = "https://github.com/robscott/kube-capacity/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kube-router/default.nix b/pkgs/applications/networking/cluster/kube-router/default.nix
index fc2f9cc206606..4b75b292fd3fd 100644
--- a/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.kube-router.io/";
     description = "All-in-one router, firewall and service proxy for Kubernetes";
+    mainProgram = "kube-router";
     license = licenses.asl20;
     maintainers = with maintainers; [ colemickens johanot ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/cluster/kube-score/default.nix b/pkgs/applications/networking/cluster/kube-score/default.nix
index 47eb7b4e60af7..f8b42bb0fae30 100644
--- a/pkgs/applications/networking/cluster/kube-score/default.nix
+++ b/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes object analysis with recommendations for improved reliability and security";
+    mainProgram = "kube-score";
     homepage = "https://github.com/zegl/kube-score";
     changelog = "https://github.com/zegl/kube-score/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubebuilder/default.nix b/pkgs/applications/networking/cluster/kubebuilder/default.nix
index 69b0f990eadc7..55f29f0deb476 100644
--- a/pkgs/applications/networking/cluster/kubebuilder/default.nix
+++ b/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -60,6 +60,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "SDK for building Kubernetes APIs using CRDs";
+    mainProgram = "kubebuilder";
     homepage = "https://github.com/kubernetes-sigs/kubebuilder";
     changelog = "https://github.com/kubernetes-sigs/kubebuilder/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix
index da4b6568901cc..78f14012707bc 100644
--- a/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for managing Kubernetes resources as code";
+    mainProgram = "kubecfg";
     homepage = "https://github.com/kubecfg/kubecfg";
     changelog = "https://github.com/kubecfg/kubecfg/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubecolor/default.nix b/pkgs/applications/networking/cluster/kubecolor/default.nix
index 2b41250c628b1..794b184e245f1 100644
--- a/pkgs/applications/networking/cluster/kubecolor/default.nix
+++ b/pkgs/applications/networking/cluster/kubecolor/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Colorizes kubectl output";
+    mainProgram = "kubecolor";
     homepage = "https://github.com/kubecolor/kubecolor";
     changelog = "https://github.com/kubecolor/kubecolor/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubeconform/default.nix b/pkgs/applications/networking/cluster/kubeconform/default.nix
index 611a33ca8f738..b129e0c65bd5f 100644
--- a/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A FAST Kubernetes manifests validator, with support for Custom Resources!";
+    mainProgram = "kubeconform";
     homepage    = "https://github.com/yannh/kubeconform/";
     license     = licenses.asl20;
     maintainers = [ maintainers.j4m3s ];
diff --git a/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix b/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
index b29ba78a4ef10..db05ee6b363ab 100644
--- a/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://cloudnative-pg.io/";
     description = "Plugin for kubectl to manage a CloudNativePG cluster in Kubernetes";
+    mainProgram = "kubectl-cnpg";
     license = licenses.asl20;
     maintainers = with maintainers; [ devusb ];
   };
diff --git a/pkgs/applications/networking/cluster/kubectl-doctor/default.nix b/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
index e198de456cca3..050192b86c9f4 100644
--- a/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl cluster triage plugin for k8s";
+    mainProgram = "kubectl-doctor";
     homepage = "https://github.com/emirozer/kubectl-doctor";
     changelog = "https://github.com/emirozer/kubectl-doctor/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix b/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
index f17c2b2ad1ab7..46bf4cb14eeff 100644
--- a/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "This plugin evicts the given pod and is useful for testing pod disruption budget rules";
+    mainProgram = "kubectl-evict-pod";
     homepage    = "https://github.com/rajatjindal/kubectl-evict-pod";
     license     = licenses.asl20;
     maintainers = [ maintainers.j4m3s ];
diff --git a/pkgs/applications/networking/cluster/kubectl-example/default.nix b/pkgs/applications/networking/cluster/kubectl-example/default.nix
index 76562de2bd766..dc917a987e0d2 100644
--- a/pkgs/applications/networking/cluster/kubectl-example/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-example/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl plugin for retrieving resource example YAMLs";
+    mainProgram = "kubectl-example";
     homepage = "https://github.com/seredot/kubectl-example";
     changelog = "https://github.com/seredot/kubectl-example/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubectl-explore/default.nix b/pkgs/applications/networking/cluster/kubectl-explore/default.nix
index 2eb7b6befb757..0ff402b39f089 100644
--- a/pkgs/applications/networking/cluster/kubectl-explore/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-explore/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A better kubectl explain with the fuzzy finder";
+    mainProgram = "kubectl-explore";
     homepage = "https://github.com/keisku/kubectl-explore";
     changelog = "https://github.com/keisku/kubectl-explore/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubectl-gadget/default.nix b/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
index 9dbee8d0a5447..436138d8560dd 100644
--- a/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A collection of gadgets for troubleshooting Kubernetes applications using eBPF";
+    mainProgram = "kubectl-gadget";
     homepage = "https://inspektor-gadget.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ kranurag7 ];
diff --git a/pkgs/applications/networking/cluster/kubectl-images/default.nix b/pkgs/applications/networking/cluster/kubectl-images/default.nix
index 7ab487d3dda1f..1c4b1bf60e128 100644
--- a/pkgs/applications/networking/cluster/kubectl-images/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-images/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Show container images used in the cluster.";
+    mainProgram = "kubectl-images";
     homepage = "https://github.com/chenjiandongx/kubectl-images";
     changelog = "https://github.com/chenjiandongx/kubectl-images/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix b/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
index d8718b1d254ce..934d1c9151dc1 100644
--- a/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
@@ -24,6 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Exec into node via kubectl";
+    mainProgram = "kubectl-node_shell";
     homepage = "https://github.com/kvaps/kubectl-node-shell";
     license = licenses.asl20;
     maintainers = with maintainers; [ jocelynthode ];
diff --git a/pkgs/applications/networking/cluster/kubectl-tree/default.nix b/pkgs/applications/networking/cluster/kubectl-tree/default.nix
index 1cb0cc3e9419c..62d4553b881d1 100644
--- a/pkgs/applications/networking/cluster/kubectl-tree/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-tree/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl plugin to browse Kubernetes object hierarchies as a tree";
+    mainProgram = "kubectl-tree";
     homepage = "https://github.com/ahmetb/kubectl-tree";
     changelog = "https://github.com/ahmetb/kubectl-tree/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix b/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
index 0bfdaafd5f561..695d63db81654 100644
--- a/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes CLI plugin to decode Kubernetes secrets";
+    mainProgram = "kubectl-view-secret";
     homepage = "https://github.com/elsesiy/kubectl-view-secret";
     changelog = "https://github.com/elsesiy/kubectl-view-secret/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubedog/default.nix b/pkgs/applications/networking/cluster/kubedog/default.nix
index 9618fcbf4457f..5d31bc8e33505 100644
--- a/pkgs/applications/networking/cluster/kubedog/default.nix
+++ b/pkgs/applications/networking/cluster/kubedog/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
       A tool to watch and follow Kubernetes resources in CI/CD deployment
       pipelines
     '';
+    mainProgram = "kubedog";
     homepage = "https://github.com/werf/kubedog";
     changelog = "https://github.com/werf/kubedog/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubefirst/default.nix b/pkgs/applications/networking/cluster/kubefirst/default.nix
index 1bf2c06db54ad..f73c2ebbf19e2 100644
--- a/pkgs/applications/networking/cluster/kubefirst/default.nix
+++ b/pkgs/applications/networking/cluster/kubefirst/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Kubefirst CLI creates instant GitOps platforms that integrate some of the best tools in cloud native from scratch.";
+    mainProgram = "kubefirst";
     homepage = "https://github.com/kubefirst/kubefirst/";
     license = licenses.mit;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
index a771972b6948f..0d3852e28414c 100644
--- a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes credential plugin implementing OpenID Connect (OIDC) authentication";
+    mainProgram = "kubectl-oidc_login";
     inherit (src.meta) homepage;
     license = licenses.asl20;
     maintainers = with maintainers; [ benley ];
diff --git a/pkgs/applications/networking/cluster/kubelogin/default.nix b/pkgs/applications/networking/cluster/kubelogin/default.nix
index 28e3f47a388aa..b2fa146b0bc30 100644
--- a/pkgs/applications/networking/cluster/kubelogin/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes credential plugin implementing Azure authentication";
+    mainProgram = "kubelogin";
     inherit (src.meta) homepage;
     license = licenses.mit;
     maintainers = [];
diff --git a/pkgs/applications/networking/cluster/kubemqctl/default.nix b/pkgs/applications/networking/cluster/kubemqctl/default.nix
index 7185ff5a42dcb..8e2590b75c7e8 100644
--- a/pkgs/applications/networking/cluster/kubemqctl/default.nix
+++ b/pkgs/applications/networking/cluster/kubemqctl/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://github.com/kubemq-io/kubemqctl";
     description = "Kubemqctl is a command line interface (CLI) for Kubemq Kubernetes Message Broker.";
+    mainProgram = "kubemqctl";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ brianmcgee ];
   };
diff --git a/pkgs/applications/networking/cluster/kubent/default.nix b/pkgs/applications/networking/cluster/kubent/default.nix
index d0b8eaf422e68..75f4244ee1425 100644
--- a/pkgs/applications/networking/cluster/kubent/default.nix
+++ b/pkgs/applications/networking/cluster/kubent/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/doitintl/kube-no-trouble";
     description = "Easily check your cluster for use of deprecated APIs";
+    mainProgram = "kubent";
     license = licenses.mit;
     maintainers = with maintainers; [ peterromfeldhk ];
   };
diff --git a/pkgs/applications/networking/cluster/kubergrunt/default.nix b/pkgs/applications/networking/cluster/kubergrunt/default.nix
index e5a5e1ba9f4bb..c37fe18281c90 100644
--- a/pkgs/applications/networking/cluster/kubergrunt/default.nix
+++ b/pkgs/applications/networking/cluster/kubergrunt/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Collection of commands to fill in the gaps between Terraform, Helm, and Kubectl";
+    mainProgram = "kubergrunt";
     homepage = "https://github.com/gruntwork-io/kubergrunt";
     license = licenses.asl20;
     maintainers = with maintainers; [ psibi ];
diff --git a/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix b/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
index 9efefd0646670..37ca5be589d13 100644
--- a/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kubernetes-sigs/metrics-server";
     description = "Kubernetes container resource metrics collector";
+    mainProgram = "metrics-server";
     license = licenses.asl20;
     maintainers = with maintainers; [ eskytthe ];
   };
diff --git a/pkgs/applications/networking/cluster/kubernix/default.nix b/pkgs/applications/networking/cluster/kubernix/default.nix
index 4495a8590f420..264fbe7d5dc0f 100644
--- a/pkgs/applications/networking/cluster/kubernix/default.nix
+++ b/pkgs/applications/networking/cluster/kubernix/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Single dependency Kubernetes clusters for local testing, experimenting and development";
+    mainProgram = "kubernix";
     homepage = "https://github.com/saschagrunert/kubernix";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ saschagrunert ];
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index 921797d1591a5..ed5db3c9485da 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes controller and tool for one-way encrypted Secrets";
+    mainProgram = "kubeseal";
     homepage = "https://github.com/bitnami-labs/sealed-secrets";
     changelog = "https://github.com/bitnami-labs/sealed-secrets/blob/v${version}/RELEASE-NOTES.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubeshark/default.nix b/pkgs/applications/networking/cluster/kubeshark/default.nix
index 0aaea3c505bb2..d798442c08445 100644
--- a/pkgs/applications/networking/cluster/kubeshark/default.nix
+++ b/pkgs/applications/networking/cluster/kubeshark/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/kubeshark/kubeshark/releases/tag/${version}";
     description = "The API Traffic Viewer for Kubernetes";
+    mainProgram = "kubeshark";
     homepage = "https://kubeshark.co/";
     license = licenses.asl20;
     longDescription = ''
diff --git a/pkgs/applications/networking/cluster/kubespy/default.nix b/pkgs/applications/networking/cluster/kubespy/default.nix
index 88a56e3c72e38..bfbfa1fa7ccf3 100644
--- a/pkgs/applications/networking/cluster/kubespy/default.nix
+++ b/pkgs/applications/networking/cluster/kubespy/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to observe Kubernetes resources in real time";
+    mainProgram = "kubespy";
     homepage = "https://github.com/pulumi/kubespy";
     license = licenses.asl20;
     maintainers = with maintainers; [ blaggacao ];
diff --git a/pkgs/applications/networking/cluster/kubetail/default.nix b/pkgs/applications/networking/cluster/kubetail/default.nix
index 774feac4d23d8..5fc1eaf488274 100644
--- a/pkgs/applications/networking/cluster/kubetail/default.nix
+++ b/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bash script to tail Kubernetes logs from multiple pods at the same time";
+    mainProgram = "kubetail";
     longDescription = ''
       Bash script that enables you to aggregate (tail/follow) logs from
       multiple pods into one stream. This is the same as running "kubectl logs
diff --git a/pkgs/applications/networking/cluster/kubeval/default.nix b/pkgs/applications/networking/cluster/kubeval/default.nix
index 574bfc61bb877..8fb1e68b02069 100644
--- a/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Validate your Kubernetes configuration files";
+    mainProgram = "kubeval";
     homepage = "https://github.com/instrumenta/kubeval";
     license = licenses.asl20;
     maintainers = with maintainers; [ johanot nicknovitski ];
diff --git a/pkgs/applications/networking/cluster/kubexit/default.nix b/pkgs/applications/networking/cluster/kubexit/default.nix
index bf086de6d78b8..080c87385bb6a 100644
--- a/pkgs/applications/networking/cluster/kubexit/default.nix
+++ b/pkgs/applications/networking/cluster/kubexit/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
   meta = with lib; {
     description = "Command supervisor for coordinated Kubernetes pod container termination.";
+    mainProgram = "kubexit";
     homepage = "https://github.com/karlkfi/kubexit/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/networking/cluster/kyverno/default.nix b/pkgs/applications/networking/cluster/kyverno/default.nix
index 3cf8ef72ba5ce..208867bec2c07 100644
--- a/pkgs/applications/networking/cluster/kyverno/default.nix
+++ b/pkgs/applications/networking/cluster/kyverno/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes Native Policy Management";
+    mainProgram = "kyverno";
     homepage = "https://kyverno.io/";
     changelog = "https://github.com/kyverno/kyverno/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/levant/default.nix b/pkgs/applications/networking/cluster/levant/default.nix
index 78458741a5ba5..937e57204b96d 100644
--- a/pkgs/applications/networking/cluster/levant/default.nix
+++ b/pkgs/applications/networking/cluster/levant/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An open source templating and deployment tool for HashiCorp Nomad jobs";
+    mainProgram = "levant";
     homepage = "https://github.com/hashicorp/levant";
     license = licenses.mpl20;
     maintainers = with maintainers; [ max-niederman ];
diff --git a/pkgs/applications/networking/cluster/linkerd/generic.nix b/pkgs/applications/networking/cluster/linkerd/generic.nix
index 0384f56f14aa6..edd5a895f3f0a 100644
--- a/pkgs/applications/networking/cluster/linkerd/generic.nix
+++ b/pkgs/applications/networking/cluster/linkerd/generic.nix
@@ -55,6 +55,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple Kubernetes service mesh that improves security, observability and reliability";
+    mainProgram = "linkerd";
     downloadPage = "https://github.com/linkerd/linkerd2/";
     homepage = "https://linkerd.io/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index bd9d0fece1b5b..69e73e6d47a32 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -67,6 +67,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://minikube.sigs.k8s.io";
     description = "A tool that makes it easy to run Kubernetes locally";
+    mainProgram = "minikube";
     license = licenses.asl20;
     maintainers = with maintainers; [ ebzzry copumpkin vdemeester atkinschang Chili-Man ];
   };
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index caf07b07989ee..8f7a59c70e8ad 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -52,6 +52,7 @@ buildGoModule rec {
     homepage = "https://github.com/containerd/nerdctl/";
     changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}";
     description = "A Docker-compatible CLI for containerd";
+    mainProgram = "nerdctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk developer-guy ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix b/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
index acd0643b4bdf3..d32445c6455c3 100644
--- a/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
+++ b/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
@@ -91,6 +91,7 @@ let
 
     meta = with lib; {
       description = "Autoscaling daemon for Nomad";
+      mainProgram = "nomad-autoscaler";
       homepage = "https://github.com/hashicorp/nomad-autoscaler";
       license = licenses.mpl20;
       maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix b/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
index 384e5b87c555d..8eb6a46563181 100644
--- a/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
+++ b/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.github.com/hashicorp/nomad-driver-podman";
     description = "Podman task driver for Nomad";
+    mainProgram = "nomad-driver-podman";
     platforms = platforms.linux;
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix
index b0b7fea4ff964..f94cb28ce2f55 100644
--- a/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/pkgs/applications/networking/cluster/nomad/default.nix
@@ -39,6 +39,7 @@ let
       meta = with lib; {
         homepage = "https://www.nomadproject.io/";
         description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
+        mainProgram = "nomad";
         inherit license;
         maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes amaxine techknowlogick cottand ];
       };
diff --git a/pkgs/applications/networking/cluster/nova/default.nix b/pkgs/applications/networking/cluster/nova/default.nix
index 2686b79c4b7fe..03d3737928a09 100644
--- a/pkgs/applications/networking/cluster/nova/default.nix
+++ b/pkgs/applications/networking/cluster/nova/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Find outdated or deprecated Helm charts running in your cluster";
+    mainProgram = "nova";
     longDescription = ''
       Nova scans your cluster for installed Helm charts, then
       cross-checks them against all known Helm repositories. If it
diff --git a/pkgs/applications/networking/cluster/ocm/default.nix b/pkgs/applications/networking/cluster/ocm/default.nix
index 95646c800abaf..99195f8889d2a 100644
--- a/pkgs/applications/networking/cluster/ocm/default.nix
+++ b/pkgs/applications/networking/cluster/ocm/default.nix
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI for the Red Hat OpenShift Cluster Manager";
+    mainProgram = "ocm";
     license = licenses.asl20;
     homepage = "https://github.com/openshift-online/ocm-cli";
     maintainers = with maintainers; [ stehessel ];
diff --git a/pkgs/applications/networking/cluster/odo/default.nix b/pkgs/applications/networking/cluster/odo/default.nix
index e94e3772c8dd6..9ab5082f61dca 100644
--- a/pkgs/applications/networking/cluster/odo/default.nix
+++ b/pkgs/applications/networking/cluster/odo/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Developer-focused CLI for OpenShift and Kubernetes";
+    mainProgram = "odo";
     license = licenses.asl20;
     homepage = "https://odo.dev";
     changelog = "https://github.com/redhat-developer/odo/releases/v${version}";
diff --git a/pkgs/applications/networking/cluster/pig/default.nix b/pkgs/applications/networking/cluster/pig/default.nix
index 5aae5e8e68bf4..42938d1246f9e 100644
--- a/pkgs/applications/networking/cluster/pig/default.nix
+++ b/pkgs/applications/networking/cluster/pig/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://pig.apache.org/";
     description = "High-level language for Apache Hadoop";
+    mainProgram = "pig";
     license = licenses.asl20;
 
     longDescription = ''
diff --git a/pkgs/applications/networking/cluster/pinniped/default.nix b/pkgs/applications/networking/cluster/pinniped/default.nix
index 3d8f0755ca0e6..ed86002a564a1 100644
--- a/pkgs/applications/networking/cluster/pinniped/default.nix
+++ b/pkgs/applications/networking/cluster/pinniped/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec{
 
   meta = with lib; {
     description = "Tool to securely log in to your Kubernetes clusters";
+    mainProgram = "pinniped";
     homepage = "https://pinniped.dev/";
     license = licenses.asl20;
     maintainers = with maintainers; [ bpaulin ];
diff --git a/pkgs/applications/networking/cluster/pluto/default.nix b/pkgs/applications/networking/cluster/pluto/default.nix
index 4223c0854f55b..628084f6f31ea 100644
--- a/pkgs/applications/networking/cluster/pluto/default.nix
+++ b/pkgs/applications/networking/cluster/pluto/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/FairwindsOps/pluto";
     description = "Find deprecated Kubernetes apiVersions";
+    mainProgram = "pluto";
     license = licenses.asl20;
     maintainers = with maintainers; [ peterromfeldhk kashw2 ];
   };
diff --git a/pkgs/applications/networking/cluster/popeye/default.nix b/pkgs/applications/networking/cluster/popeye/default.nix
index bd082a691e993..4c21b95265fba 100644
--- a/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/pkgs/applications/networking/cluster/popeye/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes cluster resource sanitizer";
+    mainProgram = "popeye";
     homepage = "https://github.com/derailed/popeye";
     changelog = "https://github.com/derailed/popeye/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/pv-migrate/default.nix b/pkgs/applications/networking/cluster/pv-migrate/default.nix
index 871f8287b8259..b55510e7e4cfa 100644
--- a/pkgs/applications/networking/cluster/pv-migrate/default.nix
+++ b/pkgs/applications/networking/cluster/pv-migrate/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI tool to easily migrate Kubernetes persistent volumes ";
+    mainProgram = "pv-migrate";
     homepage = "https://github.com/utkuozdemir/pv-migrate";
     changelog = "https://github.com/utkuozdemir/pv-migrate/releases/tag/${version}";
     license = licenses.afl20;
diff --git a/pkgs/applications/networking/cluster/rancher/default.nix b/pkgs/applications/networking/cluster/rancher/default.nix
index 8259a574cc1cc..309b806a88700 100644
--- a/pkgs/applications/networking/cluster/rancher/default.nix
+++ b/pkgs/applications/networking/cluster/rancher/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Rancher Command Line Interface (CLI) is a unified tool for interacting with your Rancher Server";
+    mainProgram = "rancher";
     homepage = "https://github.com/rancher/cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ bryanasdev000 ];
diff --git a/pkgs/applications/networking/cluster/rke/default.nix b/pkgs/applications/networking/cluster/rke/default.nix
index f44ffa5ba758d..435377d8e304c 100644
--- a/pkgs/applications/networking/cluster/rke/default.nix
+++ b/pkgs/applications/networking/cluster/rke/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/rancher/rke";
     description = "An extremely simple, lightning fast Kubernetes distribution that runs entirely within containers";
+    mainProgram = "rke";
     changelog = "https://github.com/rancher/rke/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/applications/networking/cluster/roxctl/default.nix b/pkgs/applications/networking/cluster/roxctl/default.nix
index 1bac7a553ecbc..abcb6fd4299ac 100644
--- a/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line client of the StackRox Kubernetes Security Platform";
+    mainProgram = "roxctl";
     license = licenses.asl20;
     homepage = "https://www.stackrox.io";
     maintainers = with maintainers; [ stehessel ];
diff --git a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index d3127b076777f..866775702521e 100644
--- a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -48,6 +48,7 @@ buildGoPackage rec {
   meta = with lib; {
     homepage = "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
     description = "Amazon SSM Session Manager Plugin";
+    mainProgram = "session-manager-plugin";
     license = licenses.asl20;
     maintainers = with maintainers; [ amarshall mbaillie ];
   };
diff --git a/pkgs/applications/networking/cluster/starboard/default.nix b/pkgs/applications/networking/cluster/starboard/default.nix
index 278bb1b54adcf..59b3a9de41e67 100644
--- a/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/pkgs/applications/networking/cluster/starboard/default.nix
@@ -69,6 +69,7 @@ buildGoModule rec {
     homepage = "https://github.com/aquasecurity/starboard";
     changelog = "https://github.com/aquasecurity/starboard/releases/tag/v${version}";
     description = "Kubernetes-native security tool kit";
+    mainProgram = "starboard";
     longDescription = ''
       Starboard integrates security tools into the Kubernetes environment, so
       that users can find and view the risks that relate to different resources
diff --git a/pkgs/applications/networking/cluster/stern/default.nix b/pkgs/applications/networking/cluster/stern/default.nix
index 07822397434d9..5585b373df351 100644
--- a/pkgs/applications/networking/cluster/stern/default.nix
+++ b/pkgs/applications/networking/cluster/stern/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Multi pod and container log tailing for Kubernetes";
+    mainProgram = "stern";
     homepage = "https://github.com/stern/stern";
     license = licenses.asl20;
     maintainers = with maintainers; [ mbode preisschild ];
diff --git a/pkgs/applications/networking/cluster/taktuk/default.nix b/pkgs/applications/networking/cluster/taktuk/default.nix
index 5cb9f8160067e..002bc9da26315 100644
--- a/pkgs/applications/networking/cluster/taktuk/default.nix
+++ b/pkgs/applications/networking/cluster/taktuk/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Efficient, large scale, parallel remote execution of commands";
+    mainProgram = "taktuk";
     longDescription = ''
       TakTuk allows one to execute commands in parallel on a potentially large set
       of remote nodes (using ssh to connect to each node). It is typically used
diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix
index 17b5c866de6eb..afc3b7bdf5aa4 100644
--- a/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI for out-of-band management of Kubernetes nodes created by Talos";
+    mainProgram = "talosctl";
     homepage = "https://www.talos.dev/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ flokli ];
diff --git a/pkgs/applications/networking/cluster/temporalite/default.nix b/pkgs/applications/networking/cluster/temporalite/default.nix
index efe1f2d30c5d5..5581c1694534e 100644
--- a/pkgs/applications/networking/cluster/temporalite/default.nix
+++ b/pkgs/applications/networking/cluster/temporalite/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An experimental distribution of Temporal that runs as a single process";
+    mainProgram = "temporalite";
     homepage = "https://github.com/temporalio/temporalite";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/pkgs/applications/networking/cluster/terraform-backend-git/default.nix b/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
index 2e7f70eaf57d2..a78b339c087ad 100644
--- a/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Terraform HTTP Backend implementation that uses Git repository as storage";
+    mainProgram = "terraform-backend-git";
     homepage = "https://github.com/plumber-cd/terraform-backend-git";
     changelog = "https://github.com/plumber-cd/terraform-backend-git/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
index ce1915242e438..69bb5d9919725 100644
--- a/pkgs/applications/networking/cluster/terraform-compliance/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "BDD test framework for terraform";
+    mainProgram = "terraform-compliance";
     homepage = "https://github.com/terraform-compliance/cli";
     changelog = "https://github.com/terraform-compliance/cli/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/terraform-docs/default.nix b/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 49855b77c544a..0a07d0e8627ae 100644
--- a/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A utility to generate documentation from Terraform modules in various output formats";
+    mainProgram = "terraform-docs";
     homepage = "https://github.com/terraform-docs/terraform-docs/";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/pkgs/applications/networking/cluster/terraform-inventory/default.nix
index 89d4b769e9af1..56763aca06793 100644
--- a/pkgs/applications/networking/cluster/terraform-inventory/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/adammck/terraform-inventory";
     description = "Terraform state to ansible inventory adapter";
+    mainProgram = "terraform-inventory";
     license = licenses.mit;
     maintainers = with maintainers; [ htr ];
   };
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 36ade0527264f..5ed3b0e07a077 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
     homepage = "https://terragrunt.gruntwork.io";
     changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}";
     description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices";
+    mainProgram = "terragrunt";
     license = licenses.mit;
     maintainers = with maintainers; [ jk qjoly kashw2 ];
   };
diff --git a/pkgs/applications/networking/cluster/terraspace/default.nix b/pkgs/applications/networking/cluster/terraspace/default.nix
index af7c1025356a7..da45541108f69 100644
--- a/pkgs/applications/networking/cluster/terraspace/default.nix
+++ b/pkgs/applications/networking/cluster/terraspace/default.nix
@@ -24,6 +24,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Terraform framework that provides an organized structure, and keeps your code DRY";
+    mainProgram = "terraspace";
     homepage    = "https://github.com/boltops-tools/terraspace";
     license     = licenses.asl20;
     platforms   = ruby.meta.platforms;
diff --git a/pkgs/applications/networking/cluster/tf-summarize/default.nix b/pkgs/applications/networking/cluster/tf-summarize/default.nix
index a16fb8b752081..14fec4795db0c 100644
--- a/pkgs/applications/networking/cluster/tf-summarize/default.nix
+++ b/pkgs/applications/networking/cluster/tf-summarize/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line utility to print the summary of the terraform plan";
+    mainProgram = "tf-summarize";
     homepage = "https://github.com/dineshba/tf-summarize";
     license = licenses.mit;
     maintainers = with maintainers; [ pjrm ];
diff --git a/pkgs/applications/networking/cluster/tfautomv/default.nix b/pkgs/applications/networking/cluster/tfautomv/default.nix
index 358dfd0a39fde..fc9dadbf37b6f 100644
--- a/pkgs/applications/networking/cluster/tfautomv/default.nix
+++ b/pkgs/applications/networking/cluster/tfautomv/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/busser/tfautomv";
     description = "When refactoring a Terraform codebase, you often need to write moved blocks. This can be tedious. Let tfautomv do it for you";
+    mainProgram = "tfautomv";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
   };
diff --git a/pkgs/applications/networking/cluster/tfswitch/default.nix b/pkgs/applications/networking/cluster/tfswitch/default.nix
index c8f2fb070fbad..50079dc762d8f 100644
--- a/pkgs/applications/networking/cluster/tfswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tfswitch/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "A command line tool to switch between different versions of terraform";
+    mainProgram = "tfswitch";
     homepage = "https://github.com/warrensbox/terraform-switcher";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
diff --git a/pkgs/applications/networking/cluster/tfupdate/default.nix b/pkgs/applications/networking/cluster/tfupdate/default.nix
index b60da990413bd..e7a4250f94445 100644
--- a/pkgs/applications/networking/cluster/tfupdate/default.nix
+++ b/pkgs/applications/networking/cluster/tfupdate/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Update version constraints in your Terraform configurations";
+    mainProgram = "tfupdate";
     homepage = "https://github.com/minamijoyo/tfupdate";
     changelog = "https://github.com/minamijoyo/tfupdate/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/tgswitch/default.nix b/pkgs/applications/networking/cluster/tgswitch/default.nix
index 25c301f0cbb5a..6196eeeac8eda 100644
--- a/pkgs/applications/networking/cluster/tgswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tgswitch/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line tool to switch between different versions of terragrunt";
+    mainProgram = "tgswitch";
     homepage = "https://github.com/warrensbox/tgswitch";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
diff --git a/pkgs/applications/networking/cluster/tilt/binary.nix b/pkgs/applications/networking/cluster/tilt/binary.nix
index d326f0f92e806..ebb7f6e117891 100644
--- a/pkgs/applications/networking/cluster/tilt/binary.nix
+++ b/pkgs/applications/networking/cluster/tilt/binary.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = {
     description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production";
+    mainProgram = "tilt";
     homepage = "https://tilt.dev/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ anton-dessiatov ];
diff --git a/pkgs/applications/networking/cluster/timoni/default.nix b/pkgs/applications/networking/cluster/timoni/default.nix
index 0efc9bb500553..a756212d3d67a 100644
--- a/pkgs/applications/networking/cluster/timoni/default.nix
+++ b/pkgs/applications/networking/cluster/timoni/default.nix
@@ -42,6 +42,7 @@ buildGo122Module rec {
     homepage = "https://timoni.sh";
     changelog = "https://github.com/stefanprodan/timoni/releases/tag/${src.rev}";
     description = "A package manager for Kubernetes, powered by CUE and inspired by Helm";
+    mainProgram = "timoni";
     license = licenses.asl20;
     maintainers = with maintainers; [ votava ];
   };
diff --git a/pkgs/applications/networking/cluster/tubekit/default.nix b/pkgs/applications/networking/cluster/tubekit/default.nix
index afcef293c1d86..1e4895118be15 100644
--- a/pkgs/applications/networking/cluster/tubekit/default.nix
+++ b/pkgs/applications/networking/cluster/tubekit/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubectl alternative with quick context switching";
+    mainProgram = "tubectl";
     homepage = "https://github.com/reconquest/tubekit";
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/applications/networking/cluster/vcluster/default.nix b/pkgs/applications/networking/cluster/vcluster/default.nix
index db2ea91fd0545..023bc2110e151 100644
--- a/pkgs/applications/networking/cluster/vcluster/default.nix
+++ b/pkgs/applications/networking/cluster/vcluster/default.nix
@@ -47,6 +47,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Create fully functional virtual Kubernetes clusters";
+    mainProgram = "vcluster";
     downloadPage = "https://github.com/loft-sh/vcluster";
     homepage = "https://www.vcluster.com/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/waagent/default.nix b/pkgs/applications/networking/cluster/waagent/default.nix
index 5c980133ff6c7..65b6d780ffb29 100644
--- a/pkgs/applications/networking/cluster/waagent/default.nix
+++ b/pkgs/applications/networking/cluster/waagent/default.nix
@@ -65,6 +65,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = {
     description = "The Microsoft Azure Linux Agent (waagent)";
+    mainProgram = "waagent";
     longDescription = ''
       The Microsoft Azure Linux Agent (waagent)
       manages Linux provisioning and VM interaction with the Azure
diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix
index 880095c720988..7e16417fe2b9d 100644
--- a/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -70,6 +70,7 @@ buildGoModule rec {
     homepage = "https://waypointproject.io";
     changelog = "https://github.com/hashicorp/waypoint/blob/v${version}/CHANGELOG.md";
     description = "A tool to build, deploy, and release any application on any platform";
+    mainProgram = "waypoint";
     longDescription = ''
       Waypoint allows developers to define their application build, deploy, and
       release lifecycle as code, reducing the time to deliver deployments
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
index 6699898945d24..85b97faabd3d6 100644
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ b/pkgs/applications/networking/cluster/werf/default.nix
@@ -83,6 +83,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "GitOps delivery tool";
+    mainProgram = "werf";
     longDescription = ''
       The CLI tool gluing Git, Docker, Helm & Kubernetes with any CI system to
       implement CI/CD and Giterminism.
diff --git a/pkgs/applications/networking/cluster/zarf/default.nix b/pkgs/applications/networking/cluster/zarf/default.nix
index 2d2b76cbb4180..a19cfa5bee584 100644
--- a/pkgs/applications/networking/cluster/zarf/default.nix
+++ b/pkgs/applications/networking/cluster/zarf/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "DevSecOps for Air Gap & Limited-Connection Systems. https://zarf.dev";
+    mainProgram = "zarf";
     homepage = "https://github.com/defenseunicorns/zarf.git";
     license = licenses.asl20;
     maintainers = with maintainers; [ ragingpastry ];
diff --git a/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/pkgs/applications/networking/dyndns/cfdyndns/default.nix
index 3d348d3471726..aba0262e32588 100644
--- a/pkgs/applications/networking/dyndns/cfdyndns/default.nix
+++ b/pkgs/applications/networking/dyndns/cfdyndns/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CloudFlare Dynamic DNS Client";
+    mainProgram = "cfdyndns";
     homepage = "https://github.com/nrdxp/cfdyndns";
     license = lib.licenses.mit;
     maintainers = with maintainers; [ colemickens nrdxp ];
diff --git a/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
index 776bfd501b000..6a9a57d67c3b1 100644
--- a/pkgs/applications/networking/dyndns/dyndnsc/default.nix
+++ b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
@@ -42,6 +42,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Dynamic DNS update client with support for multiple protocols";
+    mainProgram = "dyndnsc";
     longDescription = ''
       Dyndnsc is a command line client for sending updates to Dynamic
       DNS (DDNS, DynDNS) services.  It supports multiple protocols and
diff --git a/pkgs/applications/networking/feedreaders/canto-curses/default.nix b/pkgs/applications/networking/feedreaders/canto-curses/default.nix
index 729d12c1e5b90..d0a1e2cbce15a 100644
--- a/pkgs/applications/networking/feedreaders/canto-curses/default.nix
+++ b/pkgs/applications/networking/feedreaders/canto-curses/default.nix
@@ -16,6 +16,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "An ncurses-based console Atom/RSS feed reader";
+    mainProgram = "canto-curses";
     longDescription = ''
       Canto is an Atom/RSS feed reader for the console that is meant to be
       quick, concise, and colorful. It's meant to allow you to crank through
diff --git a/pkgs/applications/networking/feedreaders/castget/default.nix b/pkgs/applications/networking/feedreaders/castget/default.nix
index 86bb8f3042ec1..bf304389bcaee 100644
--- a/pkgs/applications/networking/feedreaders/castget/default.nix
+++ b/pkgs/applications/networking/feedreaders/castget/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A simple, command-line based RSS enclosure downloader";
+    mainProgram = "castget";
     longDescription = ''
       castget is a simple, command-line based RSS enclosure downloader. It is
       primarily intended for automatic, unattended downloading of podcasts.
diff --git a/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix b/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix
index b0bce2b71c5e4..806e4fc147e00 100644
--- a/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix
+++ b/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Uploads rss feeds as e-mails onto an IMAP server";
+    mainProgram = "feed2imap-go";
     homepage = "https://github.com/Necoro/feed2imap-go";
     license = licenses.gpl2;
     maintainers = with maintainers; [ nomeata ];
diff --git a/pkgs/applications/networking/feedreaders/fluent-reader/default.nix b/pkgs/applications/networking/feedreaders/fluent-reader/default.nix
index dd351ce1a27f8..362771511cf5f 100644
--- a/pkgs/applications/networking/feedreaders/fluent-reader/default.nix
+++ b/pkgs/applications/networking/feedreaders/fluent-reader/default.nix
@@ -27,6 +27,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "Modern desktop RSS reader built with Electron, React, and Fluent UI";
+    mainProgram = "fluent-reader";
     homepage = "https://hyliu.me/fluent-reader";
     license = licenses.bsd3;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix b/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
index 7563e8c22d782..902b6a7b35cb2 100644
--- a/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
+++ b/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
@@ -78,6 +78,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An RSS/Atom feed reader for GNOME";
+    mainProgram = "gfeeds";
     homepage = "https://gitlab.gnome.org/World/gfeeds";
     license = licenses.gpl3Plus;
     maintainers = [
diff --git a/pkgs/applications/networking/feedreaders/goeland/default.nix b/pkgs/applications/networking/feedreaders/goeland/default.nix
index 30bce6a15ff4b..08bdff3bbcfa8 100644
--- a/pkgs/applications/networking/feedreaders/goeland/default.nix
+++ b/pkgs/applications/networking/feedreaders/goeland/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An alternative to rss2email written in golang with many filters";
+    mainProgram = "goeland";
     longDescription = ''
       Goeland excels at creating beautiful emails from RSS feeds,
       tailored for daily or weekly digest. It includes a number of
diff --git a/pkgs/applications/networking/feedreaders/photon/default.nix b/pkgs/applications/networking/feedreaders/photon/default.nix
index 34612e2a87fcc..1717327d865c1 100644
--- a/pkgs/applications/networking/feedreaders/photon/default.nix
+++ b/pkgs/applications/networking/feedreaders/photon/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "RSS/Atom reader with the focus on speed, usability and a bit of unix philosophy";
+    mainProgram = "photon";
     homepage = "https://sr.ht/~ghost08/photon";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kmein ];
diff --git a/pkgs/applications/networking/feedreaders/rssguard/default.nix b/pkgs/applications/networking/feedreaders/rssguard/default.nix
index 5c031ebc479c3..499b8a2893d0e 100644
--- a/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple RSS/Atom feed reader with online synchronization";
+    mainProgram = "rssguard";
     longDescription = ''
       RSS Guard is a simple, light and easy-to-use RSS/ATOM feed aggregator
       developed using Qt framework and with online feed synchronization support
diff --git a/pkgs/applications/networking/feedreaders/rsstail/default.nix b/pkgs/applications/networking/feedreaders/rsstail/default.nix
index af2dbd1a9a4f9..524e8d76b6973 100644
--- a/pkgs/applications/networking/feedreaders/rsstail/default.nix
+++ b/pkgs/applications/networking/feedreaders/rsstail/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Monitor RSS feeds for new entries";
+    mainProgram = "rsstail";
     longDescription = ''
       RSSTail is more or less an RSS reader: it monitors an RSS feed and if it
       detects a new entry it'll emit only that new entry.
diff --git a/pkgs/applications/networking/feedreaders/russ/default.nix b/pkgs/applications/networking/feedreaders/russ/default.nix
index 4bf3c2a34000c..6780b58f0d018 100644
--- a/pkgs/applications/networking/feedreaders/russ/default.nix
+++ b/pkgs/applications/networking/feedreaders/russ/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A TUI RSS reader with vim-like controls and a local-first, offline-first focus";
+    mainProgram = "russ";
     homepage = "https://github.com/ckampfe/russ";
     license = with licenses; [ agpl3Only ];
     maintainers = with maintainers; [ blusk ];
diff --git a/pkgs/applications/networking/feedreaders/tuifeed/default.nix b/pkgs/applications/networking/feedreaders/tuifeed/default.nix
index 89494bb6d0173..6ee7a61484458 100644
--- a/pkgs/applications/networking/feedreaders/tuifeed/default.nix
+++ b/pkgs/applications/networking/feedreaders/tuifeed/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A terminal feed reader with a fancy UI";
+    mainProgram = "tuifeed";
     homepage = "https://github.com/veeso/tuifeed";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ devhell ];
diff --git a/pkgs/applications/networking/feedreaders/yarr/default.nix b/pkgs/applications/networking/feedreaders/yarr/default.nix
index ab3e6af5723e6..205e52012cd7d 100644
--- a/pkgs/applications/networking/feedreaders/yarr/default.nix
+++ b/pkgs/applications/networking/feedreaders/yarr/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Yet another rss reader";
+    mainProgram = "yarr";
     homepage = "https://github.com/nkanaev/yarr";
     changelog = "https://github.com/nkanaev/yarr/blob/v${version}/doc/changelog.txt";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/firehol/iprange.nix b/pkgs/applications/networking/firehol/iprange.nix
index 7dc43d5c116c8..d2504b73cc301 100644
--- a/pkgs/applications/networking/firehol/iprange.nix
+++ b/pkgs/applications/networking/firehol/iprange.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "manage IP ranges";
+    mainProgram = "iprange";
     homepage = "https://github.com/firehol/iprange";
     license = licenses.gpl2;
     maintainers = with maintainers; [ oxzi ];
diff --git a/pkgs/applications/networking/flent/http-getter.nix b/pkgs/applications/networking/flent/http-getter.nix
index 21c9d3ca6fb10..5ea07cfe4f9d6 100644
--- a/pkgs/applications/networking/flent/http-getter.nix
+++ b/pkgs/applications/networking/flent/http-getter.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/tohojo/http-getter";
     description = "Simple getter for HTTP URLs using cURL";
+    mainProgram = "http-getter";
     platforms = platforms.unix;
     license = licenses.gpl3;
   };
diff --git a/pkgs/applications/networking/gopher/geomyidae/default.nix b/pkgs/applications/networking/gopher/geomyidae/default.nix
index bd57b968140b4..442757a8bbe4f 100644
--- a/pkgs/applications/networking/gopher/geomyidae/default.nix
+++ b/pkgs/applications/networking/gopher/geomyidae/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A gopher daemon for Linux/BSD";
+    mainProgram = "geomyidae";
     homepage = "gopher://bitreich.org/1/scm/geomyidae";
     license = licenses.mit;
     maintainers = [ maintainers.athas ];
diff --git a/pkgs/applications/networking/gopher/phetch/default.nix b/pkgs/applications/networking/gopher/phetch/default.nix
index 8cdd3dc06325a..ed327dab740a7 100644
--- a/pkgs/applications/networking/gopher/phetch/default.nix
+++ b/pkgs/applications/networking/gopher/phetch/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A quick lil gopher client for your terminal, written in rust";
+    mainProgram = "phetch";
     longDescription = ''
       phetch is a terminal client designed to help you quickly navigate the gophersphere.
       - <1MB executable for Linux, Mac, and NetBSD
diff --git a/pkgs/applications/networking/gopher/sacc/default.nix b/pkgs/applications/networking/gopher/sacc/default.nix
index 686f671e13a52..2e89930f2b781 100644
--- a/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/pkgs/applications/networking/gopher/sacc/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A terminal gopher client";
+    mainProgram = "sacc";
     homepage = "gopher://bitreich.org/1/scm/sacc";
     license = licenses.isc;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/applications/networking/ids/daq/default.nix b/pkgs/applications/networking/ids/daq/default.nix
index dc40337bd723f..a8d2f52052dc7 100644
--- a/pkgs/applications/networking/ids/daq/default.nix
+++ b/pkgs/applications/networking/ids/daq/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Data AcQuisition library (DAQ), for packet I/O";
+    mainProgram = "daq-modules-config";
     homepage = "https://www.snort.org";
     maintainers = with lib.maintainers; [ aycanirican ];
     license = lib.licenses.gpl2;
diff --git a/pkgs/applications/networking/ids/zeek/broker/default.nix b/pkgs/applications/networking/ids/zeek/broker/default.nix
index a2d34ec7b1fe5..1e9b6f3f0c08d 100644
--- a/pkgs/applications/networking/ids/zeek/broker/default.nix
+++ b/pkgs/applications/networking/ids/zeek/broker/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Zeek's Messaging Library";
+    mainProgram = "broker-benchmark";
     homepage = "https://github.com/zeek/broker";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
index f402faf965be4..de70f49fe6040 100644
--- a/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
+++ b/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Export Skype history to HTML";
+    mainProgram = "SkypeExport";
     homepage = "https://github.com/Temptin/SkypeExport";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/instant-messengers/abaddon/default.nix b/pkgs/applications/networking/instant-messengers/abaddon/default.nix
index 3dbab9211dfa8..7101bba8d1967 100644
--- a/pkgs/applications/networking/instant-messengers/abaddon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/abaddon/default.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A discord client reimplementation, written in C++";
+    mainProgram = "abaddon";
     homepage = "https://github.com/uowuo/abaddon";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ genericnerdyusername ];
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index 99ce3f8811ef3..32b3096c3c669 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "IRC instant messaging gateway";
+    mainProgram = "bitlbee";
 
     longDescription = ''
       BitlBee brings IM (instant messaging) to IRC clients.  It's a
diff --git a/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix b/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
index 4bdc8f7f6debb..c0fd454a2fd83 100644
--- a/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Decentalized and secure messnger";
+    mainProgram = "briar-desktop";
     homepage = "https://code.briarproject.org/briar/briar-desktop";
     license = licenses.gpl3;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 4353c983320b7..19c91baf9a43e 100644
--- a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   '';
   meta = with lib; {
     description = "A chat client for Twitch chat";
+    mainProgram = "chatterino";
     longDescription = ''
       Chatterino is a chat client for Twitch chat. It aims to be an
       improved/extended version of the Twitch web chat. Chatterino 2 is
diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix
index 9faecf6092722..11ac39c32f804 100644
--- a/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "XMPP and SMS messaging via libpurple and ModemManager";
+    mainProgram = "chatty";
     homepage = "https://gitlab.gnome.org/World/Chatty";
     changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${src.rev}/NEWS";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/instant-messengers/cordless/default.nix b/pkgs/applications/networking/instant-messengers/cordless/default.nix
index 01bd4ff50e4c4..35c2c0dbffb31 100644
--- a/pkgs/applications/networking/instant-messengers/cordless/default.nix
+++ b/pkgs/applications/networking/instant-messengers/cordless/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/Bios-Marcel/cordless";
     description = "Discord terminal client";
+    mainProgram = "cordless";
     license = licenses.bsd3;
     maintainers = with maintainers; [ colemickens ];
   };
diff --git a/pkgs/applications/networking/instant-messengers/coyim/default.nix b/pkgs/applications/networking/instant-messengers/coyim/default.nix
index 61fb4b43a033e..8223f9598b61f 100644
--- a/pkgs/applications/networking/instant-messengers/coyim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/coyim/default.nix
@@ -30,6 +30,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "a safe and secure chat client";
+    mainProgram = "coyim";
     homepage = "https://coy.im/";
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/applications/networking/instant-messengers/dino/default.nix b/pkgs/applications/networking/instant-messengers/dino/default.nix
index 879314a97f0e0..258f75df4d108 100644
--- a/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -121,6 +121,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Modern Jabber/XMPP Client using GTK/Vala";
+    mainProgram = "dino";
     homepage = "https://github.com/dino/dino";
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix b/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
index 44ef7cae84c72..bdbd550b6731b 100644
--- a/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A custom discord client that supports streaming with audio on Linux";
+    mainProgram = "discord-screenaudio";
     homepage = "https://github.com/maltejur/discord-screenaudio";
     downloadPage = "https://github.com/maltejur/discord-screenaudio/releases";
     changelog = "https://github.com/maltejur/discord-screenaudio/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/instant-messengers/flare-signal/default.nix b/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
index 9988352d16145..f21241e10b605 100644
--- a/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
+++ b/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   meta = {
     changelog = "https://gitlab.com/schmiddi-on-mobile/flare/-/blob/${src.rev}/CHANGELOG.md";
     description = "An unofficial Signal GTK client";
+    mainProgram = "flare";
     homepage = "https://gitlab.com/schmiddi-on-mobile/flare";
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/pkgs/applications/networking/instant-messengers/freetalk/default.nix
index fdfbbc5b275b3..e259c6b60f8d6 100644
--- a/pkgs/applications/networking/instant-messengers/freetalk/default.nix
+++ b/pkgs/applications/networking/instant-messengers/freetalk/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description =  "Console XMPP client";
+    mainProgram = "freetalk";
     license = licenses.gpl3Plus ;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/instant-messengers/go-neb/default.nix b/pkgs/applications/networking/instant-messengers/go-neb/default.nix
index d1947825c42b1..82cfb3126c861 100644
--- a/pkgs/applications/networking/instant-messengers/go-neb/default.nix
+++ b/pkgs/applications/networking/instant-messengers/go-neb/default.nix
@@ -23,6 +23,7 @@ buildGoModule {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Extensible matrix bot written in Go";
+    mainProgram = "go-neb";
     homepage = "https://github.com/matrix-org/go-neb";
     license = licenses.asl20;
     maintainers = with maintainers; [ hexa maralorn ];
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index d7fd400298435..e25a94d0bef84 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -51,6 +51,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://maunium.net/go/gomuks/";
     description = "A terminal based Matrix client written in Go";
+    mainProgram = "gomuks";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ chvp emily ];
   };
diff --git a/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix b/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
index 352fa1a511cda..63d8581aa7664 100644
--- a/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Signal Messenger client for terminal";
+    mainProgram = "gurk";
     homepage = "https://github.com/boxdot/gurk-rs";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ devhell ];
diff --git a/pkgs/applications/networking/instant-messengers/iamb/default.nix b/pkgs/applications/networking/instant-messengers/iamb/default.nix
index ea8351c74f66c..6e4e5276e582a 100644
--- a/pkgs/applications/networking/instant-messengers/iamb/default.nix
+++ b/pkgs/applications/networking/instant-messengers/iamb/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Matrix client for Vim addicts";
+    mainProgram = "iamb";
     homepage = "https://github.com/ulyssa/iamb";
     changelog = "https://github.com/ulyssa/iamb/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/instant-messengers/jackline/default.nix b/pkgs/applications/networking/instant-messengers/jackline/default.nix
index 2c86b3e86fa85..946b77512e176 100644
--- a/pkgs/applications/networking/instant-messengers/jackline/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jackline/default.nix
@@ -47,6 +47,7 @@ buildDunePackage rec {
   meta = with lib; {
     homepage = "https://github.com/hannesm/jackline";
     description = "minimalistic secure XMPP client in OCaml";
+    mainProgram = "jackline";
     license = licenses.bsd2;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix
index 7acbd1b3b393a..98b4b69e69293 100644
--- a/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -249,6 +249,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://jami.net/";
     description = "The free and universal communication platform that respects the privacy and freedoms of its users";
+    mainProgram = "jami";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.linsui ];
diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index cb634f434d244..a9ee84fbbb955 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://desktop.jitsi.org/";
     description = "Open Source Video Calls and Chat";
+    mainProgram = "jitsi";
     sourceProvenance = with sourceTypes; [
       binaryBytecode
       binaryNativeCode
diff --git a/pkgs/applications/networking/instant-messengers/kaidan/default.nix b/pkgs/applications/networking/instant-messengers/kaidan/default.nix
index 5a242e9cd5176..b710421adb4aa 100644
--- a/pkgs/applications/networking/instant-messengers/kaidan/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kaidan/default.nix
@@ -57,6 +57,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "User-friendly and modern chat app, using XMPP";
+    mainProgram = "kaidan";
     longDescription = ''
        Kaidan is a user-friendly and modern chat app for every device. It uses
        the open communication protocol XMPP (Jabber). Unlike other chat apps,
diff --git a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
index 30d1ee2dcda8c..955c20c2c6f65 100644
--- a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
@@ -45,6 +45,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Delta Chat client using Kirigami framework";
+    mainProgram = "kdeltachat";
     homepage = "https://git.sr.ht/~link2xt/kdeltachat";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index 1d930612e9f9f..778e1dc9cf50c 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -134,6 +134,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.linphone.org/";
     description = "Open source SIP phone for voice/video calls and instant messaging";
+    mainProgram = "linphone";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
diff --git a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
index 1548036978739..54c485525d7ea 100644
--- a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
+++ b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -55,6 +55,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple but convenient CLI-based Matrix client app for sending and receiving";
+    mainProgram = "matrix-commander";
     homepage = "https://github.com/8go/matrix-commander";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix b/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix
index 0b2be12ad0b34..b16b0bbd7c4ed 100644
--- a/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix
+++ b/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix
@@ -25,6 +25,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Download backlogs from Matrix as raw text";
+    mainProgram = "matrix-dl";
     homepage = src.meta.homepage;
     license = licenses.gpl1Plus;
     maintainers = with maintainers; [ aw ];
diff --git a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index f7b31021a80e1..ac9d1b1369345 100644
--- a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Mattermost Desktop client";
+    mainProgram = "mattermost-desktop";
     homepage = "https://about.mattermost.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/pkgs/applications/networking/instant-messengers/mcabber/default.nix
index 3acd11a9a0d31..60ec25e5f1722 100644
--- a/pkgs/applications/networking/instant-messengers/mcabber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mcabber/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://mcabber.com/";
     description = "Small Jabber console client";
+    mainProgram = "mcabber";
     license = licenses.gpl2;
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; linux;
diff --git a/pkgs/applications/networking/instant-messengers/mm/default.nix b/pkgs/applications/networking/instant-messengers/mm/default.nix
index b6c48a0e948c2..a4f17b6709d11 100644
--- a/pkgs/applications/networking/instant-messengers/mm/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mm/default.nix
@@ -14,6 +14,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "A file system based matrix client";
+    mainProgram = "mm";
     homepage = "https://git.lost.host/meutraa/mm";
     license = licenses.isc;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/networking/instant-messengers/nchat/default.nix b/pkgs/applications/networking/instant-messengers/nchat/default.nix
index 51b704f5bc7b1..0e3c7f6803fb7 100644
--- a/pkgs/applications/networking/instant-messengers/nchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nchat/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Terminal-based chat client with support for Telegram and WhatsApp";
+    mainProgram = "nchat";
     homepage = "https://github.com/d99kris/nchat";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/applications/networking/instant-messengers/neosay/default.nix b/pkgs/applications/networking/instant-messengers/neosay/default.nix
index 3f76bdade3a8c..46ea22da5db81 100644
--- a/pkgs/applications/networking/instant-messengers/neosay/default.nix
+++ b/pkgs/applications/networking/instant-messengers/neosay/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Pipe stdin to matrix";
+    mainProgram = "neosay";
     homepage = "https://github.com/donuts-are-good/neosay";
     license = licenses.mit;
     maintainers = with maintainers; [ janik ];
diff --git a/pkgs/applications/networking/instant-messengers/profanity/default.nix b/pkgs/applications/networking/instant-messengers/profanity/default.nix
index cb8b09c336db9..cca91da3abda1 100644
--- a/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -92,6 +92,7 @@ stdenv.mkDerivation rec {
   meta =  with lib; {
     homepage = "http://www.profanity.im/";
     description = "A console based XMPP client";
+    mainProgram = "profanity";
     longDescription = ''
       Profanity is a console based XMPP client written in C using ncurses and
       libstrophe, inspired by Irssi.
diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index 750ebe186bb8b..295f92b9ef9a9 100644
--- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -99,6 +99,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://psi-plus.com";
     description = "XMPP (Jabber) client based on Qt5";
+    mainProgram = "psi-plus";
     maintainers = with maintainers; [ orivej misuzu unclechu ];
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/psi/default.nix b/pkgs/applications/networking/instant-messengers/psi/default.nix
index 62b6c8f8e59c0..7745fc9fc9097 100644
--- a/pkgs/applications/networking/instant-messengers/psi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi/default.nix
@@ -25,6 +25,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://psi-im.org";
     description = "An XMPP (Jabber) client";
+    mainProgram = "psi";
     maintainers = [ maintainers.raskin ];
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/qtox/default.nix b/pkgs/applications/networking/instant-messengers/qtox/default.nix
index 8273a6fdbc6d8..09240ae4713b5 100644
--- a/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -69,6 +69,7 @@ mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Qt Tox client";
+    mainProgram = "qtox";
     homepage = "https://tox.chat";
     license = licenses.gpl3;
     maintainers = with maintainers; [ akaWolf peterhoeg ];
diff --git a/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index 5111b7424f44c..2a0bfce75631c 100644
--- a/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Cross-platform desktop IM client for the Matrix protocol";
+    mainProgram = "quaternion";
     homepage = "https://matrix.org/ecosystem/clients/quaternion/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/networking/instant-messengers/ratox/default.nix b/pkgs/applications/networking/instant-messengers/ratox/default.nix
index 5dcb220507636..4a80071a6cea7 100644
--- a/pkgs/applications/networking/instant-messengers/ratox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ratox/default.nix
@@ -27,6 +27,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "FIFO based tox client";
+    mainProgram = "ratox";
     homepage = "http://ratox.2f30.org/";
     license = licenses.isc;
     maintainers = with maintainers; [ ehmry ];
diff --git a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
index e46f5824af0f2..737e867bf5a63 100644
--- a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Official Desktop client for Rocket.Chat";
+    mainProgram = "rocketchat-desktop";
     homepage = "https://github.com/RocketChat/Rocket.Chat.Electron";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
diff --git a/pkgs/applications/networking/instant-messengers/seren/default.nix b/pkgs/applications/networking/instant-messengers/seren/default.nix
index ed02def3eb88d..590a0639dc845 100644
--- a/pkgs/applications/networking/instant-messengers/seren/default.nix
+++ b/pkgs/applications/networking/instant-messengers/seren/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple ncurses VoIP program based on the Opus codec";
+    mainProgram = "seren";
     longDescription = ''
       Seren is a simple VoIP program based on the Opus codec
       that allows you to create a voice conference from the terminal, with up to 10
diff --git a/pkgs/applications/networking/instant-messengers/session-desktop/default.nix b/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
index 9b2dc1e62ef31..bc0afb8b68832 100644
--- a/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
@@ -57,6 +57,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     description = "Onion routing based messenger";
+    mainProgram = "session-desktop";
     homepage = "https://getsession.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ alexnortung ];
diff --git a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index 4f8f972620ac7..2f62a08f46256 100644
--- a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/AsamK/signal-cli";
     description = "Command-line and dbus interface for communicating with the Signal messaging service";
+    mainProgram = "signal-cli";
     changelog = "https://github.com/AsamK/signal-cli/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ivan ];
diff --git a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index 5343f6f88c2e5..454d6343d15be 100644
--- a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to work with Signal Backup files";
+    mainProgram = "signalbackup-tools";
     homepage = "https://github.com/bepaald/signalbackup-tools";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.malo ];
diff --git a/pkgs/applications/networking/instant-messengers/signaldctl/default.nix b/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
index 82637dbbb0c9a..d1c152013b57d 100644
--- a/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A golang library for communicating with signald";
+    mainProgram = "signaldctl";
     homepage = "https://signald.org/signaldctl/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ colinsane ];
diff --git a/pkgs/applications/networking/instant-messengers/silc-client/default.nix b/pkgs/applications/networking/instant-messengers/silc-client/default.nix
index 417cb4dbb8445..9dd94225acfed 100644
--- a/pkgs/applications/networking/instant-messengers/silc-client/default.nix
+++ b/pkgs/applications/networking/instant-messengers/silc-client/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://silcnet.org/";
     description = "Secure Internet Live Conferencing server";
+    mainProgram = "silc";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
diff --git a/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix b/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
index 15ff9a9e2b50e..425b0535e7419 100644
--- a/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Chat over SSH";
+    mainProgram = "ssh-chat";
     homepage = "https://github.com/shazow/ssh-chat";
     license = licenses.mit;
     maintainers = with maintainers; [ luc65r ];
diff --git a/pkgs/applications/networking/instant-messengers/tangram/default.nix b/pkgs/applications/networking/instant-messengers/tangram/default.nix
index df460db316641..c32e55ffde4ef 100644
--- a/pkgs/applications/networking/instant-messengers/tangram/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tangram/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Run web apps on your desktop";
+    mainProgram = "re.sonny.Tangram";
     homepage = "https://github.com/sonnyp/Tangram";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
index 0f9581ee78d32..0d430af0894c7 100644
--- a/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
@@ -101,6 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Unofficial Microsoft Teams client for Linux";
+    mainProgram = "teams-for-linux";
     homepage = "https://github.com/IsmaelMartinez/teams-for-linux";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ muscaln lilyinstarlight qjoly chvp ];
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index dbd81911501ee..f0732ec039208 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -209,6 +209,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Kotatogram – experimental Telegram Desktop fork";
+    mainProgram = "kotatogram-desktop";
     longDescription = ''
       Unofficial desktop client for the Telegram messenger, based on Telegram Desktop.
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix
index f0c054fd7a901..7cdbda355d382 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix
@@ -40,6 +40,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Terminal client for telegram";
+    mainProgram = "tg";
     homepage = "https://github.com/paul-nameless/tg";
     license = licenses.unlicense;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
index ed2723c0435cb..dc4b11caf0b90 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Jabber/XMPP connection manager for the Telepathy framework";
+    mainProgram = "telepathy-gabble-xmpp-console";
     homepage = "https://telepathy.freedesktop.org/components/telepathy-gabble/";
     license = licenses.lgpl21Plus;
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/networking/instant-messengers/tensor/default.nix b/pkgs/applications/networking/instant-messengers/tensor/default.nix
index ffa603fb80b12..c8b38ccb35ecd 100644
--- a/pkgs/applications/networking/instant-messengers/tensor/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -62,6 +62,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/davidar/tensor";
     description = "Cross-platform Qt5/QML-based Matrix client";
+    mainProgram = "tensor";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
     inherit (qtbase.meta) platforms;
diff --git a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
index 0cb8cc4ff2e5b..fc796ac7a3490 100644
--- a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Desktop client for Threema, a privacy-focused end-to-end encrypted mobile messenger";
+    mainProgram = "threema";
     homepage = "https://threema.ch";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
diff --git a/pkgs/applications/networking/instant-messengers/toxic/default.nix b/pkgs/applications/networking/instant-messengers/toxic/default.nix
index 2f16cb78454fc..bd3f30adc6887 100644
--- a/pkgs/applications/networking/instant-messengers/toxic/default.nix
+++ b/pkgs/applications/networking/instant-messengers/toxic/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; src.meta // {
     description = "Reference CLI for Tox";
+    mainProgram = "toxic";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ehmry ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/turses/default.nix b/pkgs/applications/networking/instant-messengers/turses/default.nix
index 240931065e6c1..19e50f3fe8bfa 100644
--- a/pkgs/applications/networking/instant-messengers/turses/default.nix
+++ b/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -87,6 +87,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Twitter client for the console";
+    mainProgram = "turses";
     homepage = "https://github.com/louipc/turses";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/networking/instant-messengers/utox/default.nix b/pkgs/applications/networking/instant-messengers/utox/default.nix
index 7fee1f5c3a83f..c5aa13da0d33d 100644
--- a/pkgs/applications/networking/instant-messengers/utox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/utox/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight Tox client";
+    mainProgram = "utox";
     homepage = "https://github.com/uTox/uTox";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/networking/instant-messengers/vk-cli/default.nix b/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
index a22437bf8da00..9d089a383556a 100644
--- a/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A console (ncurses) client for vk.com written in D";
+    mainProgram = "vk-cli";
     homepage = "https://github.com/vk-cli/vk";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
index efca89de7cbb3..366dcbeffaea4 100644
--- a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/eneshecan/whatsapp-for-linux";
     description = "Whatsapp desktop messaging app";
+    mainProgram = "whatsapp-for-linux";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ bartuka ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/xmppc/default.nix b/pkgs/applications/networking/instant-messengers/xmppc/default.nix
index c1a8891a073ef..47eb18f191dce 100644
--- a/pkgs/applications/networking/instant-messengers/xmppc/default.nix
+++ b/pkgs/applications/networking/instant-messengers/xmppc/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command Line Interface Tool for XMPP";
+    mainProgram = "xmppc";
     homepage = "https://codeberg.org/Anoxinon_e.V./xmppc";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/instant-messengers/ytalk/default.nix b/pkgs/applications/networking/instant-messengers/ytalk/default.nix
index 1ccc9fbe6f577..29ebc5f43d56f 100644
--- a/pkgs/applications/networking/instant-messengers/ytalk/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ytalk/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage    = "http://ytalk.ourproject.org";
     description = "A terminal based talk client";
+    mainProgram = "ytalk";
     platforms   = lib.platforms.unix;
     maintainers = with lib.maintainers; [ taeer ];
     license     = lib.licenses.gpl2Plus;
diff --git a/pkgs/applications/networking/irc/communi/default.nix b/pkgs/applications/networking/irc/communi/default.nix
index cbd099c33bc71..4f81dd657c623 100644
--- a/pkgs/applications/networking/irc/communi/default.nix
+++ b/pkgs/applications/networking/irc/communi/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple and elegant cross-platform IRC client";
+    mainProgram = "communi";
     homepage = "https://github.com/communi/communi-desktop";
     license = licenses.bsd3;
     maintainers = with maintainers; [ hrdinka ];
diff --git a/pkgs/applications/networking/irc/convos/default.nix b/pkgs/applications/networking/irc/convos/default.nix
index da4967916d44d..2fc2e0585910c 100644
--- a/pkgs/applications/networking/irc/convos/default.nix
+++ b/pkgs/applications/networking/irc/convos/default.nix
@@ -90,6 +90,7 @@ perlPackages.buildPerlPackage rec {
   meta = {
     homepage = "https://convos.chat";
     description = "Convos is the simplest way to use IRC in your browser";
+    mainProgram = "convos";
     license = lib.licenses.artistic2;
     maintainers = with lib.maintainers; [ sgo ];
   };
diff --git a/pkgs/applications/networking/irc/ii/default.nix b/pkgs/applications/networking/irc/ii/default.nix
index 8fcbdce972916..8fca009922527 100644
--- a/pkgs/applications/networking/irc/ii/default.nix
+++ b/pkgs/applications/networking/irc/ii/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "https://tools.suckless.org/ii/";
     license = lib.licenses.mit;
     description = "Irc it, simple FIFO based irc client";
+    mainProgram = "ii";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/irc/irccloud/default.nix b/pkgs/applications/networking/irc/irccloud/default.nix
index d6b7af7c0a86b..9f1ff10081779 100644
--- a/pkgs/applications/networking/irc/irccloud/default.nix
+++ b/pkgs/applications/networking/irc/irccloud/default.nix
@@ -30,6 +30,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "A desktop client for IRCCloud";
+    mainProgram = "irccloud";
     homepage = "https://www.irccloud.com";
     license = licenses.asl20;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/irc/ircdog/default.nix b/pkgs/applications/networking/irc/ircdog/default.nix
index 5da057b291543..56c951798fe9e 100644
--- a/pkgs/applications/networking/irc/ircdog/default.nix
+++ b/pkgs/applications/networking/irc/ircdog/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "ircdog is a simple wrapper over the raw IRC protocol that can respond to pings, and interprets formatting codes";
+    mainProgram = "ircdog";
     homepage = "https://github.com/ergochat/ircdog";
     changelog = "https://github.com/ergochat/ircdog/releases/tag/v${version}";
     license = licenses.isc;
diff --git a/pkgs/applications/networking/irc/irssi/default.nix b/pkgs/applications/networking/irc/irssi/default.nix
index d95b64f042985..940242b6668df 100644
--- a/pkgs/applications/networking/irc/irssi/default.nix
+++ b/pkgs/applications/networking/irc/irssi/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Terminal based IRC client";
+    mainProgram = "irssi";
     homepage = "https://irssi.org";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fab lovek323 ];
diff --git a/pkgs/applications/networking/irc/kirc/default.nix b/pkgs/applications/networking/irc/kirc/default.nix
index c21a444b61c1e..ea2e45bff88e0 100644
--- a/pkgs/applications/networking/irc/kirc/default.nix
+++ b/pkgs/applications/networking/irc/kirc/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://mcpcpc.github.io/kirc/";
     description = "Tiny IRC client written in C99";
+    mainProgram = "kirc";
     longDescription = ''
       kirc is a tiny open-source Internet Relay Chat (IRC) client designed with
       usability and cross-platform compatibility in mind.
diff --git a/pkgs/applications/networking/irc/senpai/default.nix b/pkgs/applications/networking/irc/senpai/default.nix
index fbf5dcb844d43..f27a31e660887 100644
--- a/pkgs/applications/networking/irc/senpai/default.nix
+++ b/pkgs/applications/networking/irc/senpai/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Your everyday IRC student";
+    mainProgram = "senpai";
     homepage = "https://sr.ht/~taiite/senpai/";
     changelog = "https://git.sr.ht/~delthas/senpai/refs/v${version}";
     license = licenses.isc;
diff --git a/pkgs/applications/networking/irc/sic/default.nix b/pkgs/applications/networking/irc/sic/default.nix
index d5a0737403a8e..82c5852128e99 100644
--- a/pkgs/applications/networking/irc/sic/default.nix
+++ b/pkgs/applications/networking/irc/sic/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Simple IRC client";
+    mainProgram = "sic";
     homepage = "https://tools.suckless.org/sic/";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/networking/irc/srain/default.nix b/pkgs/applications/networking/irc/srain/default.nix
index a035e6113616b..42fd7e1fb6530 100644
--- a/pkgs/applications/networking/irc/srain/default.nix
+++ b/pkgs/applications/networking/irc/srain/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Modern IRC client written in GTK";
+    mainProgram = "srain";
     homepage = "https://srain.silverrainz.me";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/jnetmap/default.nix b/pkgs/applications/networking/jnetmap/default.nix
index 8aea49decb7ea..b3c90beba36d0 100644
--- a/pkgs/applications/networking/jnetmap/default.nix
+++ b/pkgs/applications/networking/jnetmap/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical network monitoring and documentation tool";
+    mainProgram = "jnetmap";
     homepage = "http://www.rakudave.ch/jnetmap/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/mailreaders/afew/default.nix b/pkgs/applications/networking/mailreaders/afew/default.nix
index bcd9573974d35..9c40ce8f0f682 100644
--- a/pkgs/applications/networking/mailreaders/afew/default.nix
+++ b/pkgs/applications/networking/mailreaders/afew/default.nix
@@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/afewmail/afew";
     description = "An initial tagging script for notmuch mail";
+    mainProgram = "afew";
     license = licenses.isc;
     maintainers = with maintainers; [ flokli ];
   };
diff --git a/pkgs/applications/networking/mailreaders/alot/default.nix b/pkgs/applications/networking/mailreaders/alot/default.nix
index 471b603f26a16..cc3273dcdca90 100644
--- a/pkgs/applications/networking/mailreaders/alot/default.nix
+++ b/pkgs/applications/networking/mailreaders/alot/default.nix
@@ -90,6 +90,7 @@ with python3.pkgs; buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/pazz/alot";
     description = "Terminal MUA using notmuch mail";
+    mainProgram = "alot";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ milibopp ];
diff --git a/pkgs/applications/networking/mailreaders/astroid/default.nix b/pkgs/applications/networking/mailreaders/astroid/default.nix
index 518d47a9a40a0..249d262fe1e90 100644
--- a/pkgs/applications/networking/mailreaders/astroid/default.nix
+++ b/pkgs/applications/networking/mailreaders/astroid/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://astroidmail.github.io/";
     description = "GTK frontend to the notmuch mail system";
+    mainProgram = "astroid";
     maintainers = with maintainers; [ bdimcheff SuprDewd ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/caeml/default.nix b/pkgs/applications/networking/mailreaders/caeml/default.nix
index 54b4c7f60cdb0..f109ccfc3137e 100644
--- a/pkgs/applications/networking/mailreaders/caeml/default.nix
+++ b/pkgs/applications/networking/mailreaders/caeml/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "cat eml files";
+    mainProgram = "caeml";
     longDescription = ''
       Reads an email file from either STDIN or from a file passed as the first
       argument, digests it and outputs it to STDOUT in a more human readable
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 51f6eeacd1be7..16bc93304921a 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -153,6 +153,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The user-friendly, lightweight, and fast email client";
+    mainProgram = "claws-mail";
     homepage = "https://www.claws-mail.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/electron-mail/default.nix b/pkgs/applications/networking/mailreaders/electron-mail/default.nix
index a7b51585e3a08..da26d45b2b41d 100644
--- a/pkgs/applications/networking/mailreaders/electron-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/electron-mail/default.nix
@@ -29,6 +29,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "ElectronMail is an Electron-based unofficial desktop client for ProtonMail";
+    mainProgram = "electron-mail";
     homepage = "https://github.com/vladimiry/ElectronMail";
     license = licenses.gpl3;
     maintainers = [ maintainers.princemachiavelli ];
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index a92f7b86c00b7..252bfb08e93f8 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -128,6 +128,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Evolution";
     description = "Personal information management application that provides integrated mail, calendaring and address book functionality";
+    mainProgram = "evolution";
     maintainers = teams.gnome.members;
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/hasmail/default.nix b/pkgs/applications/networking/mailreaders/hasmail/default.nix
index cc2f5c91921d0..9f148618b254f 100644
--- a/pkgs/applications/networking/mailreaders/hasmail/default.nix
+++ b/pkgs/applications/networking/mailreaders/hasmail/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Simple tray icon for detecting new email on IMAP servers";
+    mainProgram = "hasmail";
     homepage = "https://github.com/jonhoo/hasmail";
     license = licenses.unlicense;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/applications/networking/mailreaders/himalaya/default.nix b/pkgs/applications/networking/mailreaders/himalaya/default.nix
index 02da88ba6a32e..7ab696685b52e 100644
--- a/pkgs/applications/networking/mailreaders/himalaya/default.nix
+++ b/pkgs/applications/networking/mailreaders/himalaya/default.nix
@@ -52,6 +52,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CLI to manage emails";
+    mainProgram = "himalaya";
     homepage = "https://pimalaya.org/himalaya/cli/latest/";
     changelog = "https://github.com/soywod/himalaya/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/mailreaders/imapfilter.nix b/pkgs/applications/networking/mailreaders/imapfilter.nix
index 30c1617839440..3277dee46a9d5 100644
--- a/pkgs/applications/networking/mailreaders/imapfilter.nix
+++ b/pkgs/applications/networking/mailreaders/imapfilter.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/lefcha/imapfilter";
     description = "Mail filtering utility";
+    mainProgram = "imapfilter";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ doronbehar ];
diff --git a/pkgs/applications/networking/mailreaders/lumail/default.nix b/pkgs/applications/networking/mailreaders/lumail/default.nix
index 878b778c5a507..e35d37dfe2240 100644
--- a/pkgs/applications/networking/mailreaders/lumail/default.nix
+++ b/pkgs/applications/networking/mailreaders/lumail/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Console-based email client";
+    mainProgram = "lumail2";
     homepage = "https://lumail.org/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/mailcheck/default.nix b/pkgs/applications/networking/mailreaders/mailcheck/default.nix
index 43590c9d3361c..b28b874adbc62 100644
--- a/pkgs/applications/networking/mailreaders/mailcheck/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailcheck/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Simple command line tool to check for new messages";
+    mainProgram = "mailcheck";
     homepage    = "https://mailcheck.sourceforge.net/";
     license     = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ kovirobi ];
diff --git a/pkgs/applications/networking/mailreaders/meli/default.nix b/pkgs/applications/networking/mailreaders/meli/default.nix
index 7de15eade8355..3dc373a09024f 100644
--- a/pkgs/applications/networking/mailreaders/meli/default.nix
+++ b/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -74,6 +74,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Terminal e-mail client and e-mail client library";
+    mainProgram = "meli";
     homepage = "https://meli.delivery";
     license = licenses.gpl3;
     maintainers = with maintainers; [ _0x4A6F matthiasbeyer ];
diff --git a/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix b/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
index 7d3be7c62bafa..d381dd0b0f271 100644
--- a/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
+++ b/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
@@ -22,6 +22,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/flokli/mlarchive2maildir";
     description = "Imports mail from (pipermail) archives into a maildir";
+    mainProgram = "mlarchive2maildir";
     license = licenses.mit;
     maintainers = with maintainers; [ flokli ];
   };
diff --git a/pkgs/applications/networking/mailreaders/msgviewer/default.nix b/pkgs/applications/networking/mailreaders/msgviewer/default.nix
index fd980893124f8..14d2556616c7c 100644
--- a/pkgs/applications/networking/mailreaders/msgviewer/default.nix
+++ b/pkgs/applications/networking/mailreaders/msgviewer/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Viewer for .msg files (MS Outlook)";
+    mainProgram = "msgviewer";
     homepage    = "https://www.washington.edu/alpine/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license     = licenses.asl20;
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 6616a87ba6eff..7bad118dc38b0 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -105,6 +105,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A small but very powerful text-based mail client";
+    mainProgram = "neomutt";
     homepage    = "http://www.neomutt.org";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ erikryb vrthra ma27 raitobezarius ];
diff --git a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
index 79b553a5dc920..125ea39584084 100644
--- a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/wangp/bower";
     description = "A curses terminal client for the Notmuch email system";
+    mainProgram = "bower";
     maintainers = with maintainers; [ jgart ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix b/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
index c1db119080127..3c933eaa4b8a7 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   XAPIAN_CONFIG = "${xapian}/bin/xapian-config";
   meta = {
     description = "Synchronize maildirs and notmuch databases";
+    mainProgram = "muchsync";
     homepage = "http://www.muchsync.org/";
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [];
diff --git a/pkgs/applications/networking/mailreaders/notmuch/mutt.nix b/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
index 4cd9706bdb973..92d82f057fbdd 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mutt support for notmuch";
+    mainProgram = "notmuch-mutt";
     homepage    = "https://notmuchmail.org/";
     license     = with licenses; gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix b/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix
index ea59ad817249a..2467e79255b50 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Application to assign notmuch tagged mails to IMAP folders";
+    mainProgram = "notmuch-mailmover";
     homepage = "https://github.com/michaeladler/notmuch-mailmover/";
     license = licenses.asl20;
     maintainers = with maintainers; [ michaeladler archer-65 ];
diff --git a/pkgs/applications/networking/mailreaders/sylpheed/default.nix b/pkgs/applications/networking/mailreaders/sylpheed/default.nix
index 90b7dbd28d4c7..d45c7f6dd5759 100644
--- a/pkgs/applications/networking/mailreaders/sylpheed/default.nix
+++ b/pkgs/applications/networking/mailreaders/sylpheed/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sylpheed.sraoss.jp/en/";
     description = "Lightweight and user-friendly e-mail client";
+    mainProgram = "sylpheed";
     maintainers = with maintainers; [ eelco ];
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.gpl2;
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 27fdde3c2a660..1ba63841ce5f9 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -48,6 +48,7 @@ let
 
     meta = with lib; {
       description = "Low-latency, high quality voice chat software";
+      mainProgram = "mumble-server";
       homepage = "https://mumble.info";
       license = licenses.bsd3;
       maintainers = with maintainers; [ infinisil felixsinger ];
diff --git a/pkgs/applications/networking/newsreaders/pan/default.nix b/pkgs/applications/networking/newsreaders/pan/default.nix
index 82f8ec4d55b12..24e2585a24dbd 100644
--- a/pkgs/applications/networking/newsreaders/pan/default.nix
+++ b/pkgs/applications/networking/newsreaders/pan/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A GTK-based Usenet newsreader good at both text and binaries";
+    mainProgram = "pan";
     homepage = "http://pan.rebelbase.com/";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/newsreaders/raven-reader/default.nix b/pkgs/applications/networking/newsreaders/raven-reader/default.nix
index b78afb6a726e5..46970cbef1187 100644
--- a/pkgs/applications/networking/newsreaders/raven-reader/default.nix
+++ b/pkgs/applications/networking/newsreaders/raven-reader/default.nix
@@ -30,6 +30,7 @@ appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "Open source desktop news reader with flexible settings to optimize your experience";
+    mainProgram = "raven-reader";
     homepage = "https://ravenreader.app/";
     license = licenses.mit;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix b/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix
index b83729ebc6936..e8432b4c5c244 100644
--- a/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix
+++ b/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
   meta = {
     broken = stdenv.isDarwin;
     description = "BitTorrent client written in C++";
+    mainProgram = "ctorrent";
     longDescription = ''
       CTorrent, a BitTorrent client implemented in C++, with bugfixes and
       performance enhancements.
diff --git a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index fd5424cee3424..2d8cf8780f631 100644
--- a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.frostwire.com/";
     description = "BitTorrent Client and Cloud File Downloader";
+    mainProgram = "frostwire";
     sourceProvenance = with sourceTypes; [
       binaryBytecode
       binaryNativeCode
diff --git a/pkgs/applications/networking/p2p/libutp/3.4.nix b/pkgs/applications/networking/p2p/libutp/3.4.nix
index dfff1eeed2392..6f543789fd610 100644
--- a/pkgs/applications/networking/p2p/libutp/3.4.nix
+++ b/pkgs/applications/networking/p2p/libutp/3.4.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "uTorrent Transport Protocol library";
+    mainProgram = "ucat";
     homepage = "https://github.com/transmission/libutp";
     license = licenses.mit;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/pkgs/applications/networking/p2p/opentracker/default.nix b/pkgs/applications/networking/p2p/opentracker/default.nix
index ebc105147d3d0..45b5044e1d6c5 100644
--- a/pkgs/applications/networking/p2p/opentracker/default.nix
+++ b/pkgs/applications/networking/p2p/opentracker/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
     license = licenses.beerware;
     platforms = platforms.linux;
     description = "Bittorrent tracker project which aims for minimal resource usage and is intended to run at your wlan router";
+    mainProgram = "opentracker";
     maintainers = with maintainers; [ makefu ];
   };
 }
diff --git a/pkgs/applications/networking/p2p/storrent/default.nix b/pkgs/applications/networking/p2p/storrent/default.nix
index a21a9fef38550..469eae7987c85 100644
--- a/pkgs/applications/networking/p2p/storrent/default.nix
+++ b/pkgs/applications/networking/p2p/storrent/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/jech/storrent";
     description = "An implementation of the BitTorrent protocol that is optimised for streaming media";
+    mainProgram = "storrent";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.marsam ];
diff --git a/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
index 28b425a05e3b2..35c368a826f74 100644
--- a/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
+++ b/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK remote control for the Transmission BitTorrent client";
+    mainProgram = "transmission-remote-gtk";
     homepage = "https://github.com/transmission-remote-gtk/transmission-remote-gtk";
     changelog = "https://github.com/transmission-remote-gtk/transmission-remote-gtk/releases/tag/${version}";
     license = licenses.gpl2;
diff --git a/pkgs/applications/networking/p2p/tremc/default.nix b/pkgs/applications/networking/p2p/tremc/default.nix
index 48e6a76c29a52..6a75a02d854b3 100644
--- a/pkgs/applications/networking/p2p/tremc/default.nix
+++ b/pkgs/applications/networking/p2p/tremc/default.nix
@@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Curses interface for transmission";
+    mainProgram = "tremc";
     homepage = "https://github.com/tremc/tremc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kashw2 ];
diff --git a/pkgs/applications/networking/p2p/tremotesf/default.nix b/pkgs/applications/networking/p2p/tremotesf/default.nix
index df898599701b6..6cf8c73bfb693 100644
--- a/pkgs/applications/networking/p2p/tremotesf/default.nix
+++ b/pkgs/applications/networking/p2p/tremotesf/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Remote GUI for transmission-daemon";
+    mainProgram = "tremotesf";
     license = licenses.gpl3Plus;
     homepage = "https://github.com/equeim/tremotesf2";
     maintainers = with maintainers; [ sochotnicky ];
diff --git a/pkgs/applications/networking/p2p/tribler/default.nix b/pkgs/applications/networking/p2p/tribler/default.nix
index e5949d2b11aa0..bb009ff0adf0e 100644
--- a/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/pkgs/applications/networking/p2p/tribler/default.nix
@@ -108,6 +108,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Decentralised P2P filesharing client based on the Bittorrent protocol";
+    mainProgram = "tribler";
     homepage = "https://www.tribler.org/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ xvapx viric mkg20001 ];
diff --git a/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix b/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
index df91e40eab829..71799de37fc39 100644
--- a/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
+++ b/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
@@ -47,6 +47,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A fork/continuation of the ZeroNet project";
+    mainProgram = "zeronet";
     longDescription = ''
       zeronet-conservancy is a fork/continuation of ZeroNet project (that has
       been abandoned by its creator) that is dedicated to sustaining existing
diff --git a/pkgs/applications/networking/powerdns-admin/default.nix b/pkgs/applications/networking/powerdns-admin/default.nix
index 12cd9f9d04e7d..07a155e15e4c6 100644
--- a/pkgs/applications/networking/powerdns-admin/default.nix
+++ b/pkgs/applications/networking/powerdns-admin/default.nix
@@ -130,6 +130,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A PowerDNS web interface with advanced features";
+    mainProgram = "powerdns-admin";
     homepage = "https://github.com/PowerDNS-Admin/PowerDNS-Admin";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi zhaofengli ];
diff --git a/pkgs/applications/networking/remote/rdesktop/default.nix b/pkgs/applications/networking/remote/rdesktop/default.nix
index e2ee9428ad241..a544984ee76b8 100644
--- a/pkgs/applications/networking/remote/rdesktop/default.nix
+++ b/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (rec {
 
   meta = {
     description = "Open source client for Windows Terminal Services";
+    mainProgram = "rdesktop";
     homepage = "http://www.rdesktop.org/";
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
     license = lib.licenses.gpl2;
diff --git a/pkgs/applications/networking/remote/x2goclient/default.nix b/pkgs/applications/networking/remote/x2goclient/default.nix
index 854fee0b6b656..848590d4cb873 100644
--- a/pkgs/applications/networking/remote/x2goclient/default.nix
+++ b/pkgs/applications/networking/remote/x2goclient/default.nix
@@ -60,6 +60,7 @@ qt5.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical NoMachine NX3 remote desktop client";
+    mainProgram = "x2goclient";
     homepage = "http://x2go.org/";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
diff --git a/pkgs/applications/networking/siproxd/default.nix b/pkgs/applications/networking/siproxd/default.nix
index 1b2d3053d9be1..f9dea3e2bf805 100644
--- a/pkgs/applications/networking/siproxd/default.nix
+++ b/pkgs/applications/networking/siproxd/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://siproxd.sourceforge.net/";
     description = "A masquerading SIP Proxy Server";
+    mainProgram = "siproxd";
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/applications/networking/sniffers/qtwirediff/default.nix b/pkgs/applications/networking/sniffers/qtwirediff/default.nix
index d4fe6c8ee708e..8ed53ec0771f9 100644
--- a/pkgs/applications/networking/sniffers/qtwirediff/default.nix
+++ b/pkgs/applications/networking/sniffers/qtwirediff/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Debugging tool to diff network traffic leveraging Wireshark";
+    mainProgram = "qtwirediff";
     homepage = "https://github.com/aaptel/qtwirediff";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
diff --git a/pkgs/applications/networking/sniffers/sngrep/default.nix b/pkgs/applications/networking/sniffers/sngrep/default.nix
index 1e27a01fa5e6d..8ffadab3ed44c 100644
--- a/pkgs/applications/networking/sniffers/sngrep/default.nix
+++ b/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool for displaying SIP calls message flows from terminal";
+    mainProgram = "sngrep";
     homepage = "https://github.com/irontec/sngrep";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/sniffers/whsniff/default.nix b/pkgs/applications/networking/sniffers/whsniff/default.nix
index 514336e7a6b99..da50fe39a5e0d 100644
--- a/pkgs/applications/networking/sniffers/whsniff/default.nix
+++ b/pkgs/applications/networking/sniffers/whsniff/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/homewsn/whsniff";
     description = "Packet sniffer for 802.15.4 wireless networks";
+    mainProgram = "whsniff";
     maintainers = with maintainers; [ snicket2100 ];
     platforms = platforms.linux;
     license = licenses.gpl2Only;
diff --git a/pkgs/applications/networking/sync/casync/default.nix b/pkgs/applications/networking/sync/casync/default.nix
index 7a1252f806fbe..79064f6bc107e 100644
--- a/pkgs/applications/networking/sync/casync/default.nix
+++ b/pkgs/applications/networking/sync/casync/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Content-Addressable Data Synchronizer";
+    mainProgram = "casync";
     homepage = "https://github.com/systemd/casync";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/sync/celeste/default.nix b/pkgs/applications/networking/sync/celeste/default.nix
index 5e56e5be71172..1836ebd1e6d99 100644
--- a/pkgs/applications/networking/sync/celeste/default.nix
+++ b/pkgs/applications/networking/sync/celeste/default.nix
@@ -86,6 +86,7 @@ rustPlatform.buildRustPackage rec {
   meta = {
     changelog = "https://github.com/hwittenborn/celeste/blob/${src.rev}/CHANGELOG.md";
     description = "GUI file synchronization client that can sync with any cloud provider";
+    mainProgram = "celeste";
     homepage = "https://github.com/hwittenborn/celeste";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/pkgs/applications/networking/sync/desync/default.nix b/pkgs/applications/networking/sync/desync/default.nix
index 8a5e3965ffd5e..e2c43315338ed 100644
--- a/pkgs/applications/networking/sync/desync/default.nix
+++ b/pkgs/applications/networking/sync/desync/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Content-addressed binary distribution system";
+    mainProgram = "desync";
     longDescription = "An alternate implementation of the casync protocol and storage mechanism with a focus on production-readiness";
     homepage = "https://github.com/folbricht/desync";
     changelog = "https://github.com/folbricht/desync/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/sync/lcsync/default.nix b/pkgs/applications/networking/sync/lcsync/default.nix
index 1d06ee1e4fd69..591a95fd008c0 100644
--- a/pkgs/applications/networking/sync/lcsync/default.nix
+++ b/pkgs/applications/networking/sync/lcsync/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     changelog = "https://codeberg.org/librecast/lcsync/src/tag/v${finalAttrs.version}/CHANGELOG.md";
     description = "Librecast File and Syncing Tool";
+    mainProgram = "lcsync";
     homepage = "https://librecast.net/lcsync.html";
     license = [ lib.licenses.gpl2 lib.licenses.gpl3 ];
     maintainers = with lib.maintainers; [ albertchae aynish DMills27 jasonodoom jleightcap ];
diff --git a/pkgs/applications/networking/sync/lsyncd/default.nix b/pkgs/applications/networking/sync/lsyncd/default.nix
index cc9663dd6fc29..a5dc0bc8cf51c 100644
--- a/pkgs/applications/networking/sync/lsyncd/default.nix
+++ b/pkgs/applications/networking/sync/lsyncd/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/axkibe/lsyncd";
     description = "A utility that synchronizes local directories with remote targets";
+    mainProgram = "lsyncd";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ bobvanderlinden ];
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
index b2c3b30d8719b..a4616c2aa923a 100644
--- a/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A complete tool to interact with OneDrive on Linux";
+    mainProgram = "onedrive";
     homepage = "https://github.com/abraunegg/onedrive";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ srgom peterhoeg bertof ];
diff --git a/pkgs/applications/networking/sync/openrsync/default.nix b/pkgs/applications/networking/sync/openrsync/default.nix
index 291db3c39951c..8b91bf24407ce 100644
--- a/pkgs/applications/networking/sync/openrsync/default.nix
+++ b/pkgs/applications/networking/sync/openrsync/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.openrsync.org/";
     description = "BSD-licensed implementation of rsync";
+    mainProgram = "openrsync";
     license = licenses.isc;
     maintainers = with maintainers; [ fgaz ];
     # https://github.com/kristapsdz/openrsync#portability
diff --git a/pkgs/applications/networking/sync/rclone/browser.nix b/pkgs/applications/networking/sync/rclone/browser.nix
index 1917fc40c0eec..99945267fa994 100644
--- a/pkgs/applications/networking/sync/rclone/browser.nix
+++ b/pkgs/applications/networking/sync/rclone/browser.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Graphical Frontend to Rclone written in Qt";
+    mainProgram = "rclone-browser";
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];