about summary refs log tree commit diff
path: root/pkgs/tools/misc
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/misc')
-rw-r--r--pkgs/tools/misc/aaa/default.nix1
-rw-r--r--pkgs/tools/misc/abduco/default.nix1
-rw-r--r--pkgs/tools/misc/adafruit-ampy/default.nix1
-rw-r--r--pkgs/tools/misc/addic7ed-cli/default.nix1
-rw-r--r--pkgs/tools/misc/addlicense/default.nix1
-rw-r--r--pkgs/tools/misc/adrgen/default.nix1
-rw-r--r--pkgs/tools/misc/afetch/default.nix1
-rw-r--r--pkgs/tools/misc/agedu/default.nix1
-rw-r--r--pkgs/tools/misc/aichat/default.nix1
-rw-r--r--pkgs/tools/misc/alarm-clock-applet/default.nix1
-rw-r--r--pkgs/tools/misc/antimicrox/default.nix1
-rw-r--r--pkgs/tools/misc/aoc-cli/default.nix1
-rw-r--r--pkgs/tools/misc/apkeep/default.nix1
-rw-r--r--pkgs/tools/misc/apparix/default.nix1
-rw-r--r--pkgs/tools/misc/aptly/default.nix1
-rw-r--r--pkgs/tools/misc/aquosctl/default.nix1
-rw-r--r--pkgs/tools/misc/archi/default.nix1
-rw-r--r--pkgs/tools/misc/as-tree/default.nix1
-rw-r--r--pkgs/tools/misc/asciinema-agg/default.nix1
-rw-r--r--pkgs/tools/misc/asciinema-scenario/default.nix1
-rw-r--r--pkgs/tools/misc/askalono/default.nix1
-rw-r--r--pkgs/tools/misc/atuin/default.nix1
-rw-r--r--pkgs/tools/misc/automirror/default.nix1
-rw-r--r--pkgs/tools/misc/autorevision/default.nix1
-rw-r--r--pkgs/tools/misc/bandwidth/default.nix1
-rw-r--r--pkgs/tools/misc/bartib/default.nix1
-rw-r--r--pkgs/tools/misc/bash_unit/default.nix1
-rw-r--r--pkgs/tools/misc/bashcards/default.nix1
-rw-r--r--pkgs/tools/misc/bbe/default.nix1
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix1
-rw-r--r--pkgs/tools/misc/bdf2sfd/default.nix1
-rw-r--r--pkgs/tools/misc/bdfresize/default.nix1
-rw-r--r--pkgs/tools/misc/beats/default.nix1
-rw-r--r--pkgs/tools/misc/betterdiscord-installer/default.nix1
-rw-r--r--pkgs/tools/misc/bfetch/default.nix1
-rw-r--r--pkgs/tools/misc/bibtool/default.nix1
-rw-r--r--pkgs/tools/misc/bitwise/default.nix1
-rw-r--r--pkgs/tools/misc/blacken-docs/default.nix1
-rw-r--r--pkgs/tools/misc/blahaj/default.nix1
-rw-r--r--pkgs/tools/misc/blflash/default.nix1
-rw-r--r--pkgs/tools/misc/blink1-tool/default.nix1
-rw-r--r--pkgs/tools/misc/bmap-tools/default.nix1
-rw-r--r--pkgs/tools/misc/bmon/default.nix1
-rw-r--r--pkgs/tools/misc/boltbrowser/default.nix1
-rw-r--r--pkgs/tools/misc/boxxy/default.nix1
-rw-r--r--pkgs/tools/misc/broot/default.nix1
-rw-r--r--pkgs/tools/misc/bsp-layout/default.nix1
-rw-r--r--pkgs/tools/misc/btdu/default.nix1
-rw-r--r--pkgs/tools/misc/buildtorrent/default.nix1
-rw-r--r--pkgs/tools/misc/calamares/default.nix1
-rw-r--r--pkgs/tools/misc/capture/default.nix1
-rw-r--r--pkgs/tools/misc/castty/default.nix1
-rw-r--r--pkgs/tools/misc/cc2538-bsl/default.nix1
-rw-r--r--pkgs/tools/misc/cf-terraforming/default.nix1
-rw-r--r--pkgs/tools/misc/cfonts/default.nix1
-rw-r--r--pkgs/tools/misc/chafa/default.nix1
-rw-r--r--pkgs/tools/misc/changelogger/default.nix1
-rw-r--r--pkgs/tools/misc/charasay/default.nix1
-rw-r--r--pkgs/tools/misc/checkpwn/default.nix1
-rw-r--r--pkgs/tools/misc/chef-cli/default.nix1
-rw-r--r--pkgs/tools/misc/chelf/default.nix1
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix1
-rw-r--r--pkgs/tools/misc/cicero-tui/default.nix1
-rw-r--r--pkgs/tools/misc/citron/default.nix1
-rw-r--r--pkgs/tools/misc/clac/default.nix1
-rw-r--r--pkgs/tools/misc/claws/default.nix1
-rw-r--r--pkgs/tools/misc/clematis/default.nix1
-rw-r--r--pkgs/tools/misc/clickclack/default.nix1
-rw-r--r--pkgs/tools/misc/clini/default.nix1
-rw-r--r--pkgs/tools/misc/clipbuzz/default.nix1
-rw-r--r--pkgs/tools/misc/clipnotify/default.nix1
-rw-r--r--pkgs/tools/misc/clipster/default.nix1
-rw-r--r--pkgs/tools/misc/cloc/default.nix1
-rw-r--r--pkgs/tools/misc/clolcat/default.nix1
-rw-r--r--pkgs/tools/misc/clpeak/default.nix1
-rw-r--r--pkgs/tools/misc/cod/default.nix1
-rw-r--r--pkgs/tools/misc/code-minimap/default.nix1
-rw-r--r--pkgs/tools/misc/codebraid/default.nix1
-rw-r--r--pkgs/tools/misc/codemov/default.nix1
-rw-r--r--pkgs/tools/misc/codevis/default.nix1
-rw-r--r--pkgs/tools/misc/coinlive/default.nix1
-rw-r--r--pkgs/tools/misc/colord-gtk/default.nix1
-rw-r--r--pkgs/tools/misc/colorless/default.nix1
-rw-r--r--pkgs/tools/misc/colorz/default.nix1
-rw-r--r--pkgs/tools/misc/compdb/default.nix1
-rw-r--r--pkgs/tools/misc/complete-alias/default.nix1
-rw-r--r--pkgs/tools/misc/completely/default.nix1
-rw-r--r--pkgs/tools/misc/convbin/default.nix1
-rw-r--r--pkgs/tools/misc/convfont/default.nix1
-rw-r--r--pkgs/tools/misc/convimg/default.nix1
-rw-r--r--pkgs/tools/misc/convmv/default.nix1
-rw-r--r--pkgs/tools/misc/copier/default.nix1
-rw-r--r--pkgs/tools/misc/coreboot-configurator/default.nix1
-rw-r--r--pkgs/tools/misc/cp437/default.nix1
-rw-r--r--pkgs/tools/misc/cpufetch/default.nix1
-rw-r--r--pkgs/tools/misc/cpuminer/default.nix1
-rw-r--r--pkgs/tools/misc/crex/default.nix1
-rw-r--r--pkgs/tools/misc/crypto-tracker/default.nix1
-rw-r--r--pkgs/tools/misc/csv2latex/default.nix1
-rw-r--r--pkgs/tools/misc/csv2parquet/default.nix1
-rw-r--r--pkgs/tools/misc/csvs-to-sqlite/default.nix1
-rw-r--r--pkgs/tools/misc/cutecom/default.nix1
-rw-r--r--pkgs/tools/misc/cyclonedx-python/default.nix1
-rw-r--r--pkgs/tools/misc/dabet/default.nix1
-rw-r--r--pkgs/tools/misc/dashing/default.nix1
-rw-r--r--pkgs/tools/misc/datefmt/default.nix1
-rw-r--r--pkgs/tools/misc/dbus-map/default.nix1
-rw-r--r--pkgs/tools/misc/ddate/default.nix1
-rw-r--r--pkgs/tools/misc/ddcutil/default.nix1
-rw-r--r--pkgs/tools/misc/debootstrap/default.nix1
-rw-r--r--pkgs/tools/misc/dgoss/default.nix1
-rw-r--r--pkgs/tools/misc/dialogbox/default.nix1
-rw-r--r--pkgs/tools/misc/didu/default.nix1
-rw-r--r--pkgs/tools/misc/diffoci/default.nix1
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix1
-rw-r--r--pkgs/tools/misc/dijo/default.nix1
-rw-r--r--pkgs/tools/misc/discocss/default.nix1
-rw-r--r--pkgs/tools/misc/disfetch/default.nix1
-rw-r--r--pkgs/tools/misc/diskonaut/default.nix1
-rw-r--r--pkgs/tools/misc/diskscan/default.nix1
-rw-r--r--pkgs/tools/misc/diskus/default.nix1
-rw-r--r--pkgs/tools/misc/djenrandom/default.nix1
-rw-r--r--pkgs/tools/misc/docbook2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/docker-sync/default.nix1
-rw-r--r--pkgs/tools/misc/docui/default.nix1
-rw-r--r--pkgs/tools/misc/doitlive/default.nix1
-rw-r--r--pkgs/tools/misc/dooit/default.nix1
-rw-r--r--pkgs/tools/misc/dotacat/default.nix1
-rw-r--r--pkgs/tools/misc/dotter/default.nix1
-rw-r--r--pkgs/tools/misc/dtach/default.nix1
-rw-r--r--pkgs/tools/misc/dtool/default.nix1
-rw-r--r--pkgs/tools/misc/dua/default.nix1
-rw-r--r--pkgs/tools/misc/duc/default.nix1
-rw-r--r--pkgs/tools/misc/duf/default.nix1
-rw-r--r--pkgs/tools/misc/dumptorrent/default.nix1
-rw-r--r--pkgs/tools/misc/dupd/default.nix1
-rw-r--r--pkgs/tools/misc/dutree/default.nix1
-rw-r--r--pkgs/tools/misc/dwarf2json/default.nix1
-rw-r--r--pkgs/tools/misc/dwt1-shell-color-scripts/default.nix1
-rw-r--r--pkgs/tools/misc/easeprobe/default.nix1
-rw-r--r--pkgs/tools/misc/edid-decode/default.nix1
-rw-r--r--pkgs/tools/misc/edir/default.nix1
-rw-r--r--pkgs/tools/misc/elfcat/default.nix1
-rw-r--r--pkgs/tools/misc/empty/default.nix1
-rw-r--r--pkgs/tools/misc/emv/default.nix1
-rw-r--r--pkgs/tools/misc/encpipe/default.nix1
-rw-r--r--pkgs/tools/misc/enjarify/default.nix1
-rw-r--r--pkgs/tools/misc/ent/default.nix1
-rw-r--r--pkgs/tools/misc/entr/default.nix1
-rw-r--r--pkgs/tools/misc/enumer/default.nix1
-rw-r--r--pkgs/tools/misc/envchain/default.nix1
-rw-r--r--pkgs/tools/misc/esphome/default.nix1
-rw-r--r--pkgs/tools/misc/esptool-ck/default.nix1
-rw-r--r--pkgs/tools/misc/ethtool/default.nix1
-rw-r--r--pkgs/tools/misc/ets/default.nix1
-rw-r--r--pkgs/tools/misc/eva/default.nix1
-rw-r--r--pkgs/tools/misc/evhz/default.nix1
-rw-r--r--pkgs/tools/misc/f2/default.nix1
-rw-r--r--pkgs/tools/misc/faketty/default.nix1
-rw-r--r--pkgs/tools/misc/fclones/default.nix1
-rw-r--r--pkgs/tools/misc/fcp/default.nix1
-rw-r--r--pkgs/tools/misc/fdupes/default.nix1
-rw-r--r--pkgs/tools/misc/fedifetcher/default.nix1
-rw-r--r--pkgs/tools/misc/fetch-scm/default.nix1
-rw-r--r--pkgs/tools/misc/ffsend/default.nix1
-rw-r--r--pkgs/tools/misc/filebench/default.nix1
-rw-r--r--pkgs/tools/misc/fileschanged/default.nix1
-rw-r--r--pkgs/tools/misc/findup/default.nix1
-rw-r--r--pkgs/tools/misc/flashrom-stable/default.nix1
-rw-r--r--pkgs/tools/misc/flashrom/default.nix1
-rw-r--r--pkgs/tools/misc/flitter/default.nix1
-rw-r--r--pkgs/tools/misc/flowgger/default.nix1
-rw-r--r--pkgs/tools/misc/fltrdr/default.nix1
-rw-r--r--pkgs/tools/misc/font-config-info/default.nix1
-rw-r--r--pkgs/tools/misc/fontfor/default.nix1
-rw-r--r--pkgs/tools/misc/fpp/default.nix1
-rw-r--r--pkgs/tools/misc/fre/default.nix1
-rw-r--r--pkgs/tools/misc/freshfetch/default.nix1
-rw-r--r--pkgs/tools/misc/fselect/default.nix1
-rw-r--r--pkgs/tools/misc/fsmark/default.nix1
-rw-r--r--pkgs/tools/misc/fsmon/default.nix1
-rw-r--r--pkgs/tools/misc/fsql/default.nix1
-rw-r--r--pkgs/tools/misc/fsrx/default.nix1
-rw-r--r--pkgs/tools/misc/fw/default.nix1
-rw-r--r--pkgs/tools/misc/fx-cast-bridge/default.nix1
-rw-r--r--pkgs/tools/misc/fzy/default.nix1
-rw-r--r--pkgs/tools/misc/g203-led/default.nix1
-rw-r--r--pkgs/tools/misc/g933-utils/default.nix1
-rw-r--r--pkgs/tools/misc/gay/default.nix1
-rw-r--r--pkgs/tools/misc/gazelle-origin/default.nix1
-rw-r--r--pkgs/tools/misc/gbdfed/default.nix1
-rw-r--r--pkgs/tools/misc/geteltorito/default.nix1
-rw-r--r--pkgs/tools/misc/getopt/default.nix1
-rw-r--r--pkgs/tools/misc/gh-actions-cache/default.nix1
-rw-r--r--pkgs/tools/misc/gh-cal/default.nix1
-rw-r--r--pkgs/tools/misc/gh-dash/default.nix1
-rw-r--r--pkgs/tools/misc/gh-eco/default.nix1
-rw-r--r--pkgs/tools/misc/gh-markdown-preview/default.nix1
-rw-r--r--pkgs/tools/misc/gh-ost/default.nix1
-rw-r--r--pkgs/tools/misc/ghostie/default.nix1
-rw-r--r--pkgs/tools/misc/gibo/default.nix1
-rw-r--r--pkgs/tools/misc/gif-for-cli/default.nix1
-rw-r--r--pkgs/tools/misc/gigalixir/default.nix1
-rw-r--r--pkgs/tools/misc/github-backup/default.nix1
-rw-r--r--pkgs/tools/misc/github-copilot-cli/default.nix1
-rw-r--r--pkgs/tools/misc/glasgow/default.nix1
-rw-r--r--pkgs/tools/misc/go-ios/default.nix1
-rw-r--r--pkgs/tools/misc/goaccess/default.nix1
-rw-r--r--pkgs/tools/misc/godu/default.nix1
-rw-r--r--pkgs/tools/misc/gomi/default.nix1
-rw-r--r--pkgs/tools/misc/goose/default.nix1
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix1
-rw-r--r--pkgs/tools/misc/gotify-desktop/default.nix1
-rw-r--r--pkgs/tools/misc/gparted/default.nix1
-rw-r--r--pkgs/tools/misc/gpick/default.nix1
-rw-r--r--pkgs/tools/misc/grafterm/default.nix1
-rw-r--r--pkgs/tools/misc/grass-sass/default.nix1
-rw-r--r--pkgs/tools/misc/grit/default.nix1
-rw-r--r--pkgs/tools/misc/grizzly/default.nix1
-rw-r--r--pkgs/tools/misc/gti/default.nix1
-rw-r--r--pkgs/tools/misc/gwe/default.nix1
-rw-r--r--pkgs/tools/misc/hackertyper/default.nix1
-rw-r--r--pkgs/tools/misc/hacksaw/default.nix1
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix1
-rw-r--r--pkgs/tools/misc/halp/default.nix1
-rw-r--r--pkgs/tools/misc/handlr-regex/default.nix1
-rw-r--r--pkgs/tools/misc/handlr/default.nix1
-rw-r--r--pkgs/tools/misc/hashpump/default.nix1
-rw-r--r--pkgs/tools/misc/haste-client/default.nix1
-rw-r--r--pkgs/tools/misc/hdaps-gl/default.nix1
-rw-r--r--pkgs/tools/misc/hddtemp/default.nix1
-rw-r--r--pkgs/tools/misc/hdfview/default.nix1
-rw-r--r--pkgs/tools/misc/hebcal/default.nix1
-rw-r--r--pkgs/tools/misc/heimdall/default.nix1
-rw-r--r--pkgs/tools/misc/hexd/default.nix1
-rw-r--r--pkgs/tools/misc/hexdiff/default.nix1
-rw-r--r--pkgs/tools/misc/hexyl/default.nix1
-rw-r--r--pkgs/tools/misc/hhpc/default.nix1
-rw-r--r--pkgs/tools/misc/hid-listen/default.nix1
-rw-r--r--pkgs/tools/misc/hidrd/default.nix1
-rw-r--r--pkgs/tools/misc/homesick/default.nix1
-rw-r--r--pkgs/tools/misc/hpcg/default.nix1
-rw-r--r--pkgs/tools/misc/hpl/default.nix1
-rw-r--r--pkgs/tools/misc/html-proofer/default.nix1
-rw-r--r--pkgs/tools/misc/hueadm/default.nix1
-rw-r--r--pkgs/tools/misc/hunt/default.nix1
-rw-r--r--pkgs/tools/misc/hwatch/default.nix1
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix1
-rw-r--r--pkgs/tools/misc/i3nator/default.nix1
-rw-r--r--pkgs/tools/misc/iay/default.nix1
-rw-r--r--pkgs/tools/misc/ibus-theme-tools/default.nix1
-rw-r--r--pkgs/tools/misc/ical2orgpy/default.nix1
-rw-r--r--pkgs/tools/misc/ictree/default.nix1
-rw-r--r--pkgs/tools/misc/ideviceinstaller/default.nix1
-rw-r--r--pkgs/tools/misc/idevicerestore/default.nix1
-rw-r--r--pkgs/tools/misc/ikill/default.nix1
-rw-r--r--pkgs/tools/misc/ili2c/default.nix1
-rw-r--r--pkgs/tools/misc/infracost/default.nix1
-rw-r--r--pkgs/tools/misc/ink/default.nix1
-rw-r--r--pkgs/tools/misc/inklingreader/default.nix1
-rw-r--r--pkgs/tools/misc/inspec/default.nix1
-rw-r--r--pkgs/tools/misc/instaloader/default.nix1
-rw-r--r--pkgs/tools/misc/invoice/default.nix1
-rw-r--r--pkgs/tools/misc/iotools/default.nix1
-rw-r--r--pkgs/tools/misc/ipad_charge/default.nix1
-rw-r--r--pkgs/tools/misc/ipbt/default.nix1
-rw-r--r--pkgs/tools/misc/ised/default.nix1
-rw-r--r--pkgs/tools/misc/isoimagewriter/default.nix1
-rw-r--r--pkgs/tools/misc/ix/default.nix1
-rw-r--r--pkgs/tools/misc/jdiskreport/default.nix1
-rw-r--r--pkgs/tools/misc/jdupes/default.nix1
-rw-r--r--pkgs/tools/misc/journaldriver/default.nix1
-rw-r--r--pkgs/tools/misc/jsonwatch/default.nix1
-rw-r--r--pkgs/tools/misc/jstest-gtk/default.nix1
-rw-r--r--pkgs/tools/misc/jugglinglab/default.nix1
-rw-r--r--pkgs/tools/misc/kak-lsp/default.nix1
-rw-r--r--pkgs/tools/misc/kalker/default.nix1
-rw-r--r--pkgs/tools/misc/kargo/default.nix1
-rw-r--r--pkgs/tools/misc/kb/default.nix1
-rw-r--r--pkgs/tools/misc/kcollectd/default.nix1
-rw-r--r--pkgs/tools/misc/keychain/default.nix1
-rw-r--r--pkgs/tools/misc/keymapviz/default.nix1
-rw-r--r--pkgs/tools/misc/kicli/default.nix1
-rw-r--r--pkgs/tools/misc/killport/default.nix1
-rw-r--r--pkgs/tools/misc/kitty-img/default.nix1
-rw-r--r--pkgs/tools/misc/krapslog/default.nix1
-rw-r--r--pkgs/tools/misc/kronometer/default.nix1
-rw-r--r--pkgs/tools/misc/ksnip/default.nix1
-rw-r--r--pkgs/tools/misc/kt/default.nix1
-rw-r--r--pkgs/tools/misc/lavat/default.nix1
-rw-r--r--pkgs/tools/misc/lazycli/default.nix1
-rw-r--r--pkgs/tools/misc/lazydocker/default.nix1
-rw-r--r--pkgs/tools/misc/ldapvi/default.nix1
-rw-r--r--pkgs/tools/misc/ldmtool/default.nix1
-rw-r--r--pkgs/tools/misc/leanify/default.nix1
-rw-r--r--pkgs/tools/misc/ledit/default.nix1
-rw-r--r--pkgs/tools/misc/lemmeknow/default.nix1
-rw-r--r--pkgs/tools/misc/lemmy-help/default.nix1
-rw-r--r--pkgs/tools/misc/lerpn/default.nix1
-rw-r--r--pkgs/tools/misc/libgen-cli/default.nix1
-rw-r--r--pkgs/tools/misc/librespeed-cli/default.nix1
-rw-r--r--pkgs/tools/misc/lice/default.nix1
-rw-r--r--pkgs/tools/misc/license-generator/default.nix1
-rw-r--r--pkgs/tools/misc/lighthouse-steamvr/default.nix1
-rw-r--r--pkgs/tools/misc/limitcpu/default.nix1
-rw-r--r--pkgs/tools/misc/lineselect/default.nix1
-rw-r--r--pkgs/tools/misc/lipl/default.nix1
-rw-r--r--pkgs/tools/misc/livedl/default.nix1
-rw-r--r--pkgs/tools/misc/lnav/default.nix1
-rw-r--r--pkgs/tools/misc/lnch/default.nix1
-rw-r--r--pkgs/tools/misc/loadlibrary/default.nix1
-rw-r--r--pkgs/tools/misc/locate-dominating-file/default.nix1
-rw-r--r--pkgs/tools/misc/logtop/default.nix1
-rw-r--r--pkgs/tools/misc/lolcat/default.nix1
-rw-r--r--pkgs/tools/misc/lorri/default.nix1
-rw-r--r--pkgs/tools/misc/lottieconverter/default.nix1
-rw-r--r--pkgs/tools/misc/lsd/default.nix1
-rw-r--r--pkgs/tools/misc/ltunify/default.nix1
-rw-r--r--pkgs/tools/misc/lwc/default.nix1
-rw-r--r--pkgs/tools/misc/macchina/default.nix1
-rw-r--r--pkgs/tools/misc/mailman-rss/default.nix1
-rw-r--r--pkgs/tools/misc/makebootfat/default.nix1
-rw-r--r--pkgs/tools/misc/mandown/default.nix1
-rw-r--r--pkgs/tools/misc/manga-cli/default.nix1
-rw-r--r--pkgs/tools/misc/mapcidr/default.nix1
-rw-r--r--pkgs/tools/misc/markdown-anki-decks/default.nix1
-rw-r--r--pkgs/tools/misc/marlin-calc/default.nix1
-rw-r--r--pkgs/tools/misc/massren/default.nix1
-rw-r--r--pkgs/tools/misc/mastotool/default.nix1
-rw-r--r--pkgs/tools/misc/mathpix-snipping-tool/default.nix1
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix1
-rw-r--r--pkgs/tools/misc/mcfly/default.nix1
-rw-r--r--pkgs/tools/misc/mdr/default.nix1
-rw-r--r--pkgs/tools/misc/mdslides/default.nix1
-rw-r--r--pkgs/tools/misc/me_cleaner/default.nix1
-rw-r--r--pkgs/tools/misc/megacli/default.nix1
-rw-r--r--pkgs/tools/misc/melody/default.nix1
-rw-r--r--pkgs/tools/misc/mermaid-filter/default.nix1
-rw-r--r--pkgs/tools/misc/mimeo/default.nix1
-rw-r--r--pkgs/tools/misc/minipro/default.nix1
-rw-r--r--pkgs/tools/misc/miniserve/default.nix1
-rw-r--r--pkgs/tools/misc/ministat/default.nix1
-rw-r--r--pkgs/tools/misc/mktorrent/default.nix1
-rw-r--r--pkgs/tools/misc/mloader/default.nix1
-rw-r--r--pkgs/tools/misc/mmake/default.nix1
-rw-r--r--pkgs/tools/misc/mmctl/default.nix1
-rw-r--r--pkgs/tools/misc/mnc/default.nix1
-rw-r--r--pkgs/tools/misc/mods/default.nix1
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix1
-rw-r--r--pkgs/tools/misc/mons/default.nix1
-rw-r--r--pkgs/tools/misc/moon-phases/default.nix1
-rw-r--r--pkgs/tools/misc/moserial/default.nix1
-rw-r--r--pkgs/tools/misc/most/default.nix1
-rw-r--r--pkgs/tools/misc/mpdscribble/default.nix1
-rw-r--r--pkgs/tools/misc/mpremote/default.nix1
-rw-r--r--pkgs/tools/misc/mprime/default.nix1
-rw-r--r--pkgs/tools/misc/mprocs/default.nix1
-rw-r--r--pkgs/tools/misc/ms-sys/default.nix1
-rw-r--r--pkgs/tools/misc/mslink/default.nix1
-rw-r--r--pkgs/tools/misc/mtm/default.nix1
-rw-r--r--pkgs/tools/misc/multitail/default.nix1
-rw-r--r--pkgs/tools/misc/multitime/default.nix1
-rw-r--r--pkgs/tools/misc/mutagen-compose/default.nix1
-rw-r--r--pkgs/tools/misc/mvebu64boot/default.nix1
-rw-r--r--pkgs/tools/misc/mysqltuner/default.nix1
-rw-r--r--pkgs/tools/misc/natls/default.nix1
-rw-r--r--pkgs/tools/misc/nb/default.nix1
-rw-r--r--pkgs/tools/misc/nbench/default.nix1
-rw-r--r--pkgs/tools/misc/nbqa/default.nix1
-rw-r--r--pkgs/tools/misc/nginx-config-formatter/default.nix1
-rw-r--r--pkgs/tools/misc/nitch/default.nix1
-rw-r--r--pkgs/tools/misc/nomino/default.nix1
-rw-r--r--pkgs/tools/misc/noteshrink/default.nix1
-rw-r--r--pkgs/tools/misc/noti/default.nix1
-rw-r--r--pkgs/tools/misc/notify/default.nix1
-rw-r--r--pkgs/tools/misc/ntfy/default.nix1
-rw-r--r--pkgs/tools/misc/nux/default.nix1
-rw-r--r--pkgs/tools/misc/nvfancontrol/default.nix1
-rw-r--r--pkgs/tools/misc/nvimpager/default.nix1
-rw-r--r--pkgs/tools/misc/nyancat/default.nix1
-rw-r--r--pkgs/tools/misc/ocs-url/default.nix1
-rw-r--r--pkgs/tools/misc/octofetch/default.nix1
-rw-r--r--pkgs/tools/misc/octosql/default.nix1
-rw-r--r--pkgs/tools/misc/odyssey/default.nix1
-rw-r--r--pkgs/tools/misc/ondir/default.nix1
-rw-r--r--pkgs/tools/misc/onefetch/default.nix1
-rw-r--r--pkgs/tools/misc/open-pdf-sign/default.nix1
-rw-r--r--pkgs/tools/misc/opencorsairlink/default.nix1
-rw-r--r--pkgs/tools/misc/opentsdb/default.nix1
-rw-r--r--pkgs/tools/misc/org-stats/default.nix1
-rw-r--r--pkgs/tools/misc/otel-cli/default.nix1
-rw-r--r--pkgs/tools/misc/owofetch/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-acro/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-drawio-filter/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-eqnos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-fignos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-imagine/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-include/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-katex/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-plantuml-filter/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-secnos/default.nix1
-rw-r--r--pkgs/tools/misc/pandoc-tablenos/default.nix1
-rw-r--r--pkgs/tools/misc/panicparse/default.nix1
-rw-r--r--pkgs/tools/misc/panoply/default.nix1
-rw-r--r--pkgs/tools/misc/paperlike-go/default.nix1
-rw-r--r--pkgs/tools/misc/paps/default.nix1
-rw-r--r--pkgs/tools/misc/parcellite/default.nix1
-rw-r--r--pkgs/tools/misc/parquet-tools/default.nix1
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix1
-rw-r--r--pkgs/tools/misc/past-time/default.nix1
-rw-r--r--pkgs/tools/misc/pastebinit/default.nix1
-rw-r--r--pkgs/tools/misc/pazi/default.nix1
-rw-r--r--pkgs/tools/misc/pb_cli/default.nix1
-rw-r--r--pkgs/tools/misc/pcp/default.nix1
-rw-r--r--pkgs/tools/misc/pdd/default.nix1
-rw-r--r--pkgs/tools/misc/pdf-parser/default.nix1
-rw-r--r--pkgs/tools/misc/peep/default.nix1
-rw-r--r--pkgs/tools/misc/pferd/default.nix1
-rw-r--r--pkgs/tools/misc/pfetch-rs/default.nix1
-rw-r--r--pkgs/tools/misc/pfetch/default.nix1
-rw-r--r--pkgs/tools/misc/pfsshell/default.nix1
-rw-r--r--pkgs/tools/misc/pg_flame/default.nix1
-rw-r--r--pkgs/tools/misc/pg_top/default.nix1
-rw-r--r--pkgs/tools/misc/pgbadger/default.nix1
-rw-r--r--pkgs/tools/misc/pgcenter/default.nix1
-rw-r--r--pkgs/tools/misc/pgmetrics/default.nix1
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/default.nix1
-rw-r--r--pkgs/tools/misc/pick/default.nix1
-rw-r--r--pkgs/tools/misc/picocom/default.nix1
-rw-r--r--pkgs/tools/misc/pipectl/default.nix1
-rw-r--r--pkgs/tools/misc/pipelight/default.nix1
-rw-r--r--pkgs/tools/misc/pipreqs/default.nix1
-rw-r--r--pkgs/tools/misc/pistol/default.nix1
-rw-r--r--pkgs/tools/misc/piston-cli/default.nix1
-rw-r--r--pkgs/tools/misc/pixd/default.nix1
-rw-r--r--pkgs/tools/misc/pk2cmd/default.nix1
-rw-r--r--pkgs/tools/misc/pkgdiff/default.nix1
-rw-r--r--pkgs/tools/misc/pkgtop/default.nix1
-rw-r--r--pkgs/tools/misc/plantuml/default.nix1
-rw-r--r--pkgs/tools/misc/pmbootstrap/default.nix1
-rw-r--r--pkgs/tools/misc/pod2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/poop/default.nix1
-rw-r--r--pkgs/tools/misc/portal/default.nix1
-rw-r--r--pkgs/tools/misc/pouf/default.nix1
-rw-r--r--pkgs/tools/misc/poweralertd/default.nix1
-rw-r--r--pkgs/tools/misc/powerline-rs/default.nix1
-rw-r--r--pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix1
-rw-r--r--pkgs/tools/misc/pre-commit/default.nix1
-rw-r--r--pkgs/tools/misc/precice-config-visualizer/default.nix1
-rw-r--r--pkgs/tools/misc/present-cli/default.nix1
-rw-r--r--pkgs/tools/misc/pridecat/default.nix1
-rw-r--r--pkgs/tools/misc/pridefetch/default.nix1
-rw-r--r--pkgs/tools/misc/procyon/default.nix1
-rw-r--r--pkgs/tools/misc/profetch/default.nix1
-rw-r--r--pkgs/tools/misc/progress/default.nix1
-rw-r--r--pkgs/tools/misc/promexplorer/default.nix1
-rw-r--r--pkgs/tools/misc/promql-cli/default.nix1
-rw-r--r--pkgs/tools/misc/proximity-sort/default.nix1
-rw-r--r--pkgs/tools/misc/pspg/default.nix1
-rw-r--r--pkgs/tools/misc/psql2csv/default.nix1
-rw-r--r--pkgs/tools/misc/psrecord/default.nix1
-rw-r--r--pkgs/tools/misc/pv/default.nix1
-rw-r--r--pkgs/tools/misc/pws/default.nix1
-rw-r--r--pkgs/tools/misc/q-text-as-data/default.nix1
-rw-r--r--pkgs/tools/misc/qdl/default.nix1
-rw-r--r--pkgs/tools/misc/qjoypad/default.nix1
-rw-r--r--pkgs/tools/misc/qmk/default.nix1
-rw-r--r--pkgs/tools/misc/qmk_hid/default.nix1
-rw-r--r--pkgs/tools/misc/qt5ct/default.nix1
-rw-r--r--pkgs/tools/misc/qt6ct/default.nix1
-rw-r--r--pkgs/tools/misc/quich/default.nix1
-rw-r--r--pkgs/tools/misc/radeon-profile/default.nix1
-rw-r--r--pkgs/tools/misc/ramfetch/default.nix1
-rw-r--r--pkgs/tools/misc/rargs/default.nix1
-rw-r--r--pkgs/tools/misc/rates/default.nix1
-rw-r--r--pkgs/tools/misc/rauc/default.nix1
-rw-r--r--pkgs/tools/misc/rename/default.nix1
-rw-r--r--pkgs/tools/misc/rfc/default.nix1
-rw-r--r--pkgs/tools/misc/rig/default.nix1
-rw-r--r--pkgs/tools/misc/ripdrag/default.nix1
-rw-r--r--pkgs/tools/misc/ristate/default.nix1
-rw-r--r--pkgs/tools/misc/rlwrap/default.nix1
-rw-r--r--pkgs/tools/misc/rmate-sh/default.nix1
-rw-r--r--pkgs/tools/misc/rmlint/default.nix1
-rw-r--r--pkgs/tools/misc/rmw/default.nix1
-rw-r--r--pkgs/tools/misc/roundup/default.nix1
-rw-r--r--pkgs/tools/misc/rpcsvc-proto/default.nix1
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix1
-rw-r--r--pkgs/tools/misc/rtz/default.nix1
-rw-r--r--pkgs/tools/misc/rust-motd/default.nix1
-rw-r--r--pkgs/tools/misc/rw/default.nix1
-rw-r--r--pkgs/tools/misc/sagoin/default.nix1
-rw-r--r--pkgs/tools/misc/sanctity/default.nix1
-rw-r--r--pkgs/tools/misc/savepagenow/default.nix1
-rw-r--r--pkgs/tools/misc/scdl/default.nix1
-rw-r--r--pkgs/tools/misc/scfbuild/default.nix1
-rw-r--r--pkgs/tools/misc/screenfetch/default.nix1
-rw-r--r--pkgs/tools/misc/scrub/default.nix1
-rw-r--r--pkgs/tools/misc/sd-mux-ctrl/default.nix1
-rw-r--r--pkgs/tools/misc/sdate/default.nix1
-rw-r--r--pkgs/tools/misc/see/default.nix1
-rw-r--r--pkgs/tools/misc/semiphemeral/default.nix1
-rw-r--r--pkgs/tools/misc/serverspec/default.nix1
-rw-r--r--pkgs/tools/misc/setconf/default.nix1
-rw-r--r--pkgs/tools/misc/sfz/default.nix1
-rw-r--r--pkgs/tools/misc/shadowenv/default.nix1
-rw-r--r--pkgs/tools/misc/shallot/default.nix1
-rw-r--r--pkgs/tools/misc/sharedown/default.nix1
-rw-r--r--pkgs/tools/misc/sheldon/default.nix1
-rw-r--r--pkgs/tools/misc/shell-hist/default.nix1
-rw-r--r--pkgs/tools/misc/shelldap/default.nix1
-rw-r--r--pkgs/tools/misc/shellspec/default.nix1
-rw-r--r--pkgs/tools/misc/shunit2/default.nix1
-rw-r--r--pkgs/tools/misc/silicon/default.nix1
-rw-r--r--pkgs/tools/misc/sixpair/default.nix1
-rw-r--r--pkgs/tools/misc/sl/default.nix1
-rw-r--r--pkgs/tools/misc/slop/default.nix1
-rw-r--r--pkgs/tools/misc/sloth/default.nix1
-rw-r--r--pkgs/tools/misc/slsnif/default.nix1
-rw-r--r--pkgs/tools/misc/smc/default.nix1
-rw-r--r--pkgs/tools/misc/smenu/default.nix1
-rw-r--r--pkgs/tools/misc/smug/default.nix1
-rw-r--r--pkgs/tools/misc/snore/default.nix1
-rw-r--r--pkgs/tools/misc/sonota/default.nix1
-rw-r--r--pkgs/tools/misc/spacer/default.nix1
-rw-r--r--pkgs/tools/misc/sqlite3-to-mysql/default.nix1
-rw-r--r--pkgs/tools/misc/srisum/default.nix1
-rw-r--r--pkgs/tools/misc/star-history/default.nix1
-rw-r--r--pkgs/tools/misc/starfetch/default.nix1
-rw-r--r--pkgs/tools/misc/staruml/default.nix1
-rw-r--r--pkgs/tools/misc/statserial/default.nix1
-rw-r--r--pkgs/tools/misc/subberthehut/default.nix1
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix1
-rw-r--r--pkgs/tools/misc/svu/default.nix1
-rw-r--r--pkgs/tools/misc/swaglyrics/default.nix1
-rw-r--r--pkgs/tools/misc/systrayhelper/default.nix1
-rw-r--r--pkgs/tools/misc/sysz/default.nix1
-rw-r--r--pkgs/tools/misc/szyszka/default.nix1
-rw-r--r--pkgs/tools/misc/t/default.nix1
-rw-r--r--pkgs/tools/misc/tagref/default.nix1
-rw-r--r--pkgs/tools/misc/tailer/default.nix1
-rw-r--r--pkgs/tools/misc/tbls/default.nix1
-rw-r--r--pkgs/tools/misc/tcat/default.nix1
-rw-r--r--pkgs/tools/misc/td/default.nix1
-rw-r--r--pkgs/tools/misc/tdfgo/default.nix1
-rw-r--r--pkgs/tools/misc/tea/default.nix1
-rw-r--r--pkgs/tools/misc/teamocil/default.nix1
-rw-r--r--pkgs/tools/misc/tensorman/default.nix1
-rw-r--r--pkgs/tools/misc/tere/default.nix1
-rw-r--r--pkgs/tools/misc/termplay/default.nix1
-rw-r--r--pkgs/tools/misc/termtosvg/default.nix1
-rw-r--r--pkgs/tools/misc/tewisay/default.nix1
-rw-r--r--pkgs/tools/misc/texi2mdoc/default.nix1
-rw-r--r--pkgs/tools/misc/tfk8s/default.nix1
-rw-r--r--pkgs/tools/misc/tgpt/default.nix1
-rw-r--r--pkgs/tools/misc/time-decode/default.nix1
-rw-r--r--pkgs/tools/misc/timelimit/default.nix1
-rw-r--r--pkgs/tools/misc/timer/default.nix1
-rw-r--r--pkgs/tools/misc/timetagger_cli/default.nix1
-rw-r--r--pkgs/tools/misc/timidity/default.nix1
-rw-r--r--pkgs/tools/misc/tio/default.nix1
-rw-r--r--pkgs/tools/misc/tldr/default.nix1
-rw-r--r--pkgs/tools/misc/tmate/default.nix1
-rw-r--r--pkgs/tools/misc/tmpwatch/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-cssh/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-mem-cpu-load/default.nix1
-rw-r--r--pkgs/tools/misc/tmux-sessionizer/default.nix1
-rw-r--r--pkgs/tools/misc/tmuxinator/default.nix1
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix1
-rw-r--r--pkgs/tools/misc/toastify/default.nix1
-rw-r--r--pkgs/tools/misc/toilet/default.nix1
-rw-r--r--pkgs/tools/misc/topgrade/default.nix1
-rw-r--r--pkgs/tools/misc/topicctl/default.nix1
-rw-r--r--pkgs/tools/misc/torrenttools/default.nix1
-rw-r--r--pkgs/tools/misc/traefik-certs-dumper/default.nix1
-rw-r--r--pkgs/tools/misc/triehash/default.nix1
-rw-r--r--pkgs/tools/misc/ttchat/default.nix1
-rw-r--r--pkgs/tools/misc/ttmkfdir/default.nix1
-rw-r--r--pkgs/tools/misc/tty-clock/default.nix1
-rw-r--r--pkgs/tools/misc/ttygif/default.nix1
-rw-r--r--pkgs/tools/misc/ttylog/default.nix1
-rw-r--r--pkgs/tools/misc/ttyplot/default.nix1
-rw-r--r--pkgs/tools/misc/tvnamer/default.nix1
-rw-r--r--pkgs/tools/misc/twitch-dl/default.nix1
-rw-r--r--pkgs/tools/misc/twm/default.nix1
-rw-r--r--pkgs/tools/misc/twspace-crawler/default.nix1
-rw-r--r--pkgs/tools/misc/twurl/default.nix1
-rw-r--r--pkgs/tools/misc/txtw/default.nix1
-rw-r--r--pkgs/tools/misc/tydra/default.nix1
-rw-r--r--pkgs/tools/misc/tz/default.nix1
-rw-r--r--pkgs/tools/misc/ugs/default.nix1
-rw-r--r--pkgs/tools/misc/uhubctl/default.nix1
-rw-r--r--pkgs/tools/misc/umlet/default.nix1
-rw-r--r--pkgs/tools/misc/unclutter/default.nix1
-rw-r--r--pkgs/tools/misc/undocker/default.nix1
-rw-r--r--pkgs/tools/misc/unparam/default.nix1
-rw-r--r--pkgs/tools/misc/up/default.nix1
-rw-r--r--pkgs/tools/misc/url-parser/default.nix1
-rw-r--r--pkgs/tools/misc/urlencode/default.nix1
-rw-r--r--pkgs/tools/misc/usbimager/default.nix1
-rw-r--r--pkgs/tools/misc/usbmuxd/default.nix1
-rw-r--r--pkgs/tools/misc/usbmuxd2/default.nix1
-rw-r--r--pkgs/tools/misc/usbview/default.nix1
-rw-r--r--pkgs/tools/misc/uwufetch/default.nix1
-rw-r--r--pkgs/tools/misc/uwuify/default.nix1
-rw-r--r--pkgs/tools/misc/valeronoi/default.nix1
-rw-r--r--pkgs/tools/misc/vcs_query/default.nix1
-rw-r--r--pkgs/tools/misc/veikk-linux-driver-gui/default.nix1
-rw-r--r--pkgs/tools/misc/via/default.nix1
-rw-r--r--pkgs/tools/misc/viddy/default.nix1
-rw-r--r--pkgs/tools/misc/vimer/default.nix1
-rw-r--r--pkgs/tools/misc/vimwiki-markdown/default.nix1
-rw-r--r--pkgs/tools/misc/vivid/default.nix1
-rw-r--r--pkgs/tools/misc/vix/default.nix1
-rw-r--r--pkgs/tools/misc/vmtouch/default.nix1
-rw-r--r--pkgs/tools/misc/void/default.nix1
-rw-r--r--pkgs/tools/misc/vorbisgain/default.nix1
-rw-r--r--pkgs/tools/misc/vrc-get/default.nix1
-rw-r--r--pkgs/tools/misc/vsh/default.nix1
-rw-r--r--pkgs/tools/misc/vtm/default.nix1
-rw-r--r--pkgs/tools/misc/vttest/default.nix1
-rw-r--r--pkgs/tools/misc/wagyu/default.nix1
-rw-r--r--pkgs/tools/misc/wakapi/default.nix1
-rw-r--r--pkgs/tools/misc/wasm-tools/default.nix1
-rw-r--r--pkgs/tools/misc/watchexec/default.nix1
-rw-r--r--pkgs/tools/misc/wayback-machine-archiver/default.nix1
-rw-r--r--pkgs/tools/misc/waylevel/default.nix1
-rw-r--r--pkgs/tools/misc/webcat/default.nix1
-rw-r--r--pkgs/tools/misc/websocat/default.nix1
-rw-r--r--pkgs/tools/misc/wemux/default.nix1
-rw-r--r--pkgs/tools/misc/wlc/default.nix1
-rw-r--r--pkgs/tools/misc/woeusb/default.nix1
-rw-r--r--pkgs/tools/misc/woof/default.nix1
-rw-r--r--pkgs/tools/misc/wootility/default.nix1
-rw-r--r--pkgs/tools/misc/wsl-open/default.nix1
-rw-r--r--pkgs/tools/misc/wwcd/default.nix1
-rw-r--r--pkgs/tools/misc/wyrd/default.nix1
-rw-r--r--pkgs/tools/misc/x11idle/default.nix1
-rw-r--r--pkgs/tools/misc/xcd/default.nix1
-rw-r--r--pkgs/tools/misc/xcp/default.nix1
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix1
-rw-r--r--pkgs/tools/misc/xdg-ninja/default.nix1
-rw-r--r--pkgs/tools/misc/xdiskusage/default.nix1
-rw-r--r--pkgs/tools/misc/xdo/default.nix1
-rw-r--r--pkgs/tools/misc/xdxf2slob/default.nix1
-rw-r--r--pkgs/tools/misc/xflux/default.nix1
-rw-r--r--pkgs/tools/misc/xfstests/default.nix1
-rw-r--r--pkgs/tools/misc/xiccd/default.nix1
-rw-r--r--pkgs/tools/misc/xilinx-bootgen/default.nix1
-rw-r--r--pkgs/tools/misc/xjobs/default.nix1
-rw-r--r--pkgs/tools/misc/xmonad-log/default.nix1
-rw-r--r--pkgs/tools/misc/xq/default.nix1
-rw-r--r--pkgs/tools/misc/xtitle/default.nix1
-rw-r--r--pkgs/tools/misc/xxv/default.nix1
-rw-r--r--pkgs/tools/misc/yafetch/default.nix1
-rw-r--r--pkgs/tools/misc/yai/default.nix1
-rw-r--r--pkgs/tools/misc/yajsv/default.nix1
-rw-r--r--pkgs/tools/misc/yank/default.nix1
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix1
-rw-r--r--pkgs/tools/misc/you-get/default.nix1
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix1
-rw-r--r--pkgs/tools/misc/ytarchive/default.nix1
-rw-r--r--pkgs/tools/misc/ytcast/default.nix1
-rw-r--r--pkgs/tools/misc/ytfzf/default.nix1
-rw-r--r--pkgs/tools/misc/ytmdl/default.nix1
-rw-r--r--pkgs/tools/misc/yubico-piv-tool/default.nix1
-rw-r--r--pkgs/tools/misc/yubikey-personalization-gui/default.nix1
-rw-r--r--pkgs/tools/misc/yutto/default.nix1
-rw-r--r--pkgs/tools/misc/zabbixctl/default.nix1
-rw-r--r--pkgs/tools/misc/zalgo/default.nix1
-rw-r--r--pkgs/tools/misc/zf/default.nix1
-rw-r--r--pkgs/tools/misc/zitadel-tools/default.nix1
-rw-r--r--pkgs/tools/misc/zotero-translation-server/default.nix1
-rw-r--r--pkgs/tools/misc/zsh-history-to-fish/default.nix1
-rw-r--r--pkgs/tools/misc/zthrottle/default.nix1
675 files changed, 675 insertions, 0 deletions
diff --git a/pkgs/tools/misc/aaa/default.nix b/pkgs/tools/misc/aaa/default.nix
index 2f5751bd85584..0988bbca7acb2 100644
--- a/pkgs/tools/misc/aaa/default.nix
+++ b/pkgs/tools/misc/aaa/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/DomesticMoth/aaa";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ asciimoth ];
+    mainProgram = "aaa";
   };
 }
diff --git a/pkgs/tools/misc/abduco/default.nix b/pkgs/tools/misc/abduco/default.nix
index 9493df1c66c49..097cfd9170a9c 100644
--- a/pkgs/tools/misc/abduco/default.nix
+++ b/pkgs/tools/misc/abduco/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "Allows programs to be run independently from its controlling terminal";
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.unix;
+    mainProgram = "abduco";
   };
 }
diff --git a/pkgs/tools/misc/adafruit-ampy/default.nix b/pkgs/tools/misc/adafruit-ampy/default.nix
index 21f137e1a832b..4a87c9692ca9a 100644
--- a/pkgs/tools/misc/adafruit-ampy/default.nix
+++ b/pkgs/tools/misc/adafruit-ampy/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     license = licenses.mit;
     description = "Utility to interact with a MicroPython board over a serial connection";
     maintainers = with maintainers; [ ];
+    mainProgram = "ampy";
   };
 }
diff --git a/pkgs/tools/misc/addic7ed-cli/default.nix b/pkgs/tools/misc/addic7ed-cli/default.nix
index 4648e123c635c..d335cfb1d737b 100644
--- a/pkgs/tools/misc/addic7ed-cli/default.nix
+++ b/pkgs/tools/misc/addic7ed-cli/default.nix
@@ -27,5 +27,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ aethelz ];
     platforms = platforms.unix;
+    mainProgram = "addic7ed";
   };
 }
diff --git a/pkgs/tools/misc/addlicense/default.nix b/pkgs/tools/misc/addlicense/default.nix
index 0ea6beadea80f..9b0dc691054a9 100644
--- a/pkgs/tools/misc/addlicense/default.nix
+++ b/pkgs/tools/misc/addlicense/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/google/addlicense";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "addlicense";
   };
 }
diff --git a/pkgs/tools/misc/adrgen/default.nix b/pkgs/tools/misc/adrgen/default.nix
index 6f8c50bd19d09..4a367062cafa9 100644
--- a/pkgs/tools/misc/adrgen/default.nix
+++ b/pkgs/tools/misc/adrgen/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     description = "A command-line tool for generating and managing Architecture Decision Records";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "adrgen";
   };
 }
diff --git a/pkgs/tools/misc/afetch/default.nix b/pkgs/tools/misc/afetch/default.nix
index aea2ff1ff2b92..9b8fe7e4e0916 100644
--- a/pkgs/tools/misc/afetch/default.nix
+++ b/pkgs/tools/misc/afetch/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 jk ];
     platforms = platforms.linux;
+    mainProgram = "afetch";
   };
 }
diff --git a/pkgs/tools/misc/agedu/default.nix b/pkgs/tools/misc/agedu/default.nix
index deee88a7303f4..d8b2c1a2c5ca7 100644
--- a/pkgs/tools/misc/agedu/default.nix
+++ b/pkgs/tools/misc/agedu/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ symphorien ];
     platforms = platforms.unix;
+    mainProgram = "agedu";
   };
 }
diff --git a/pkgs/tools/misc/aichat/default.nix b/pkgs/tools/misc/aichat/default.nix
index 6ec48a78fcf96..2fd1f885bfb30 100644
--- a/pkgs/tools/misc/aichat/default.nix
+++ b/pkgs/tools/misc/aichat/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sigoden/aichat";
     license = licenses.mit;
     maintainers = with maintainers; [ mwdomino ];
+    mainProgram = "aichat";
   };
 }
diff --git a/pkgs/tools/misc/alarm-clock-applet/default.nix b/pkgs/tools/misc/alarm-clock-applet/default.nix
index bcd8988622708..525d65dd7e08a 100644
--- a/pkgs/tools/misc/alarm-clock-applet/default.nix
+++ b/pkgs/tools/misc/alarm-clock-applet/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ aleksana ];
     platforms = platforms.linux;
+    mainProgram = "alarm-clock-applet";
   };
 }
diff --git a/pkgs/tools/misc/antimicrox/default.nix b/pkgs/tools/misc/antimicrox/default.nix
index f989ae912edd8..85e9af7bb67e1 100644
--- a/pkgs/tools/misc/antimicrox/default.nix
+++ b/pkgs/tools/misc/antimicrox/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     maintainers = with maintainers; [ sbruder ];
     license = licenses.gpl3Plus;
     platforms = with platforms; linux;
+    mainProgram = "antimicrox";
   };
 }
diff --git a/pkgs/tools/misc/aoc-cli/default.nix b/pkgs/tools/misc/aoc-cli/default.nix
index f33ffa073d474..4fec5647e04d7 100644
--- a/pkgs/tools/misc/aoc-cli/default.nix
+++ b/pkgs/tools/misc/aoc-cli/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/scarvalhojr/aoc-cli/";
     license = licenses.mit;
     maintainers = with maintainers; [ jordanisaacs ];
+    mainProgram = "aoc";
   };
 }
diff --git a/pkgs/tools/misc/apkeep/default.nix b/pkgs/tools/misc/apkeep/default.nix
index 6cce77d1d849b..2da292b815b6c 100644
--- a/pkgs/tools/misc/apkeep/default.nix
+++ b/pkgs/tools/misc/apkeep/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/EFForg/apkeep/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "apkeep";
   };
 }
diff --git a/pkgs/tools/misc/apparix/default.nix b/pkgs/tools/misc/apparix/default.nix
index 1c78a78542564..a75a9f03f3007 100644
--- a/pkgs/tools/misc/apparix/default.nix
+++ b/pkgs/tools/misc/apparix/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.all;
+    mainProgram = "apparix";
   };
 }
diff --git a/pkgs/tools/misc/aptly/default.nix b/pkgs/tools/misc/aptly/default.nix
index f6dcd8e80aa12..6da10fe9b7fce 100644
--- a/pkgs/tools/misc/aptly/default.nix
+++ b/pkgs/tools/misc/aptly/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ montag451 ] ++ teams.bitnomial.members;
     changelog =
       "https://github.com/aptly-dev/aptly/releases/tag/v${version}";
+    mainProgram = "aptly";
   };
 }
diff --git a/pkgs/tools/misc/aquosctl/default.nix b/pkgs/tools/misc/aquosctl/default.nix
index d67005053b151..f8eba27e0fe47 100644
--- a/pkgs/tools/misc/aquosctl/default.nix
+++ b/pkgs/tools/misc/aquosctl/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
     platforms = platforms.linux;
+    mainProgram = "aquosctl";
   };
 }
 
diff --git a/pkgs/tools/misc/archi/default.nix b/pkgs/tools/misc/archi/default.nix
index 793e06fb3d056..d0f1a39a397e3 100644
--- a/pkgs/tools/misc/archi/default.nix
+++ b/pkgs/tools/misc/archi/default.nix
@@ -78,5 +78,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ earldouglas paumr ];
+    mainProgram = "Archi";
   };
 }
diff --git a/pkgs/tools/misc/as-tree/default.nix b/pkgs/tools/misc/as-tree/default.nix
index 3b0c7c270dba3..f4c5eb1354de8 100644
--- a/pkgs/tools/misc/as-tree/default.nix
+++ b/pkgs/tools/misc/as-tree/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jez/as-tree";
     license = with licenses; [ blueOak100 ];
     maintainers = with maintainers; [ jshholland ];
+    mainProgram = "as-tree";
   };
 }
diff --git a/pkgs/tools/misc/asciinema-agg/default.nix b/pkgs/tools/misc/asciinema-agg/default.nix
index 516051e11920d..3b530eb28f6f9 100644
--- a/pkgs/tools/misc/asciinema-agg/default.nix
+++ b/pkgs/tools/misc/asciinema-agg/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/asciinema/agg/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "agg";
   };
 }
diff --git a/pkgs/tools/misc/asciinema-scenario/default.nix b/pkgs/tools/misc/asciinema-scenario/default.nix
index 45d1ba4a79eca..91102ab46eae7 100644
--- a/pkgs/tools/misc/asciinema-scenario/default.nix
+++ b/pkgs/tools/misc/asciinema-scenario/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/garbas/asciinema-scenario/";
     maintainers = with maintainers; [ garbas ];
     license = with licenses; [ mit ];
+    mainProgram = "asciinema-scenario";
   };
 }
diff --git a/pkgs/tools/misc/askalono/default.nix b/pkgs/tools/misc/askalono/default.nix
index 35d0bf5ff22a5..3b9a0c9633e9f 100644
--- a/pkgs/tools/misc/askalono/default.nix
+++ b/pkgs/tools/misc/askalono/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/jpeddicord/askalono/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "askalono";
   };
 }
diff --git a/pkgs/tools/misc/atuin/default.nix b/pkgs/tools/misc/atuin/default.nix
index 61da92e88d84e..2722512992d57 100644
--- a/pkgs/tools/misc/atuin/default.nix
+++ b/pkgs/tools/misc/atuin/default.nix
@@ -54,5 +54,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/atuinsh/atuin";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 sciencentistguy _0x4A6F ];
+    mainProgram = "atuin";
   };
 }
diff --git a/pkgs/tools/misc/automirror/default.nix b/pkgs/tools/misc/automirror/default.nix
index cc10c93b3f654..457303c6bc268 100644
--- a/pkgs/tools/misc/automirror/default.nix
+++ b/pkgs/tools/misc/automirror/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     description = "Automatic Display Mirror";
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "automirror";
   };
 }
diff --git a/pkgs/tools/misc/autorevision/default.nix b/pkgs/tools/misc/autorevision/default.nix
index ab7add1261a9a..f0d9797693809 100644
--- a/pkgs/tools/misc/autorevision/default.nix
+++ b/pkgs/tools/misc/autorevision/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "autorevision";
   };
 }
diff --git a/pkgs/tools/misc/bandwidth/default.nix b/pkgs/tools/misc/bandwidth/default.nix
index 25a7e0647ef73..9a34442b22101 100644
--- a/pkgs/tools/misc/bandwidth/default.nix
+++ b/pkgs/tools/misc/bandwidth/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.x86 ++ platforms.arm ++ platforms.aarch64;
     maintainers = with maintainers; [ r-burns ];
+    mainProgram = "bandwidth";
   };
 }
diff --git a/pkgs/tools/misc/bartib/default.nix b/pkgs/tools/misc/bartib/default.nix
index feea3e21954a5..893fbe7b58a3f 100644
--- a/pkgs/tools/misc/bartib/default.nix
+++ b/pkgs/tools/misc/bartib/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nikolassv/bartib";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "bartib";
   };
 }
diff --git a/pkgs/tools/misc/bash_unit/default.nix b/pkgs/tools/misc/bash_unit/default.nix
index 5857bea6251d2..ffedb168f1b40 100644
--- a/pkgs/tools/misc/bash_unit/default.nix
+++ b/pkgs/tools/misc/bash_unit/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ pamplemousse ];
     platforms = platforms.all;
     license = licenses.gpl3Plus;
+    mainProgram = "bash_unit";
   };
 }
diff --git a/pkgs/tools/misc/bashcards/default.nix b/pkgs/tools/misc/bashcards/default.nix
index 30a442ef56233..bce5ab40e2dd6 100644
--- a/pkgs/tools/misc/bashcards/default.nix
+++ b/pkgs/tools/misc/bashcards/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ rpearce ];
     platforms = platforms.all;
+    mainProgram = "bashcards";
   };
 }
diff --git a/pkgs/tools/misc/bbe/default.nix b/pkgs/tools/misc/bbe/default.nix
index 1b734a83d3d3d..58d099da4b06d 100644
--- a/pkgs/tools/misc/bbe/default.nix
+++ b/pkgs/tools/misc/bbe/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.hhm ];
+    mainProgram = "bbe";
   };
 }
diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix
index 516e35a082ce1..268b877629d8b 100644
--- a/pkgs/tools/misc/bdf2psf/default.nix
+++ b/pkgs/tools/misc/bdf2psf/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rnhmjoj vrthra ];
     platforms = platforms.all;
+    mainProgram = "bdf2psf";
   };
 }
diff --git a/pkgs/tools/misc/bdf2sfd/default.nix b/pkgs/tools/misc/bdf2sfd/default.nix
index f18e5e2d96277..73a72ffeb61aa 100644
--- a/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/pkgs/tools/misc/bdf2sfd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "bdf2sfd";
   };
 }
diff --git a/pkgs/tools/misc/bdfresize/default.nix b/pkgs/tools/misc/bdfresize/default.nix
index ef3ffc873aa95..077b524302752 100644
--- a/pkgs/tools/misc/bdfresize/default.nix
+++ b/pkgs/tools/misc/bdfresize/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = "http://openlab.ring.gr.jp/efont/dist/tools/bdfresize/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ malte-v ];
+    mainProgram = "bdfresize";
   };
 }
diff --git a/pkgs/tools/misc/beats/default.nix b/pkgs/tools/misc/beats/default.nix
index 9b387a3939d5a..a8ad2436f08ce 100644
--- a/pkgs/tools/misc/beats/default.nix
+++ b/pkgs/tools/misc/beats/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     description = "Swatch Internet Time implemented as a C program";
     platforms = platforms.all;
     maintainers = [ maintainers.j0hax ];
+    mainProgram = "beats";
   };
 }
diff --git a/pkgs/tools/misc/betterdiscord-installer/default.nix b/pkgs/tools/misc/betterdiscord-installer/default.nix
index 1de5b7c4cf69f..f064f5227bf9f 100644
--- a/pkgs/tools/misc/betterdiscord-installer/default.nix
+++ b/pkgs/tools/misc/betterdiscord-installer/default.nix
@@ -28,5 +28,6 @@ in appimageTools.wrapType2 {
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "betterdiscord-installer";
   };
 }
diff --git a/pkgs/tools/misc/bfetch/default.nix b/pkgs/tools/misc/bfetch/default.nix
index 675a8cb11f382..2d678da532332 100644
--- a/pkgs/tools/misc/bfetch/default.nix
+++ b/pkgs/tools/misc/bfetch/default.nix
@@ -25,5 +25,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ moni ];
+    mainProgram = "bfetch";
   };
 }
diff --git a/pkgs/tools/misc/bibtool/default.nix b/pkgs/tools/misc/bibtool/default.nix
index df27f244fca8c..f9de299c87b2f 100644
--- a/pkgs/tools/misc/bibtool/default.nix
+++ b/pkgs/tools/misc/bibtool/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
+    mainProgram = "bibtool";
   };
 }
diff --git a/pkgs/tools/misc/bitwise/default.nix b/pkgs/tools/misc/bitwise/default.nix
index e9443f25c0a9a..a01fa83b3c79e 100644
--- a/pkgs/tools/misc/bitwise/default.nix
+++ b/pkgs/tools/misc/bitwise/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = [ maintainers.whonore ];
     platforms = platforms.unix;
+    mainProgram = "bitwise";
   };
 }
diff --git a/pkgs/tools/misc/blacken-docs/default.nix b/pkgs/tools/misc/blacken-docs/default.nix
index 186f1d393ac38..434f684b78d29 100644
--- a/pkgs/tools/misc/blacken-docs/default.nix
+++ b/pkgs/tools/misc/blacken-docs/default.nix
@@ -34,5 +34,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Run Black on Python code blocks in documentation files";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "blacken-docs";
   };
 }
diff --git a/pkgs/tools/misc/blahaj/default.nix b/pkgs/tools/misc/blahaj/default.nix
index 1b0e5ff839ead..01a1de06a870e 100644
--- a/pkgs/tools/misc/blahaj/default.nix
+++ b/pkgs/tools/misc/blahaj/default.nix
@@ -19,5 +19,6 @@ crystal.buildCrystalPackage rec {
     homepage = "https://blahaj.queer.software";
     license = licenses.bsd2;
     maintainers = with maintainers; [ aleksana cafkafk ];
+    mainProgram = "blahaj";
   };
 }
diff --git a/pkgs/tools/misc/blflash/default.nix b/pkgs/tools/misc/blflash/default.nix
index db243a185f97f..36c1712a6e579 100644
--- a/pkgs/tools/misc/blflash/default.nix
+++ b/pkgs/tools/misc/blflash/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/spacemeowx2/blflash";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ _0x4A6F ];
+    mainProgram = "blflash";
   };
 }
diff --git a/pkgs/tools/misc/blink1-tool/default.nix b/pkgs/tools/misc/blink1-tool/default.nix
index 44cfa2fbfe72b..df994593d99b4 100644
--- a/pkgs/tools/misc/blink1-tool/default.nix
+++ b/pkgs/tools/misc/blink1-tool/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ cc-by-sa-40 ];
     maintainers = with maintainers; [ cransom ];
     platforms = platforms.linux;
+    mainProgram = "blink1-tool";
   };
 }
diff --git a/pkgs/tools/misc/bmap-tools/default.nix b/pkgs/tools/misc/bmap-tools/default.nix
index c78c0121ed0c7..4bf170ccbc7d5 100644
--- a/pkgs/tools/misc/bmap-tools/default.nix
+++ b/pkgs/tools/misc/bmap-tools/default.nix
@@ -22,5 +22,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "bmaptool";
   };
 }
diff --git a/pkgs/tools/misc/bmon/default.nix b/pkgs/tools/misc/bmon/default.nix
index e85c2b96bd347..237eb7476da56 100644
--- a/pkgs/tools/misc/bmon/default.nix
+++ b/pkgs/tools/misc/bmon/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ bjornfor pSub ];
+    mainProgram = "bmon";
   };
 }
diff --git a/pkgs/tools/misc/boltbrowser/default.nix b/pkgs/tools/misc/boltbrowser/default.nix
index 855d9f21f2b2f..f4603ab3b4adb 100644
--- a/pkgs/tools/misc/boltbrowser/default.nix
+++ b/pkgs/tools/misc/boltbrowser/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/br0xen/boltbrowser";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "boltbrowser";
   };
 }
diff --git a/pkgs/tools/misc/boxxy/default.nix b/pkgs/tools/misc/boxxy/default.nix
index 4a0a4fe0a99de..52a0b94abeda5 100644
--- a/pkgs/tools/misc/boxxy/default.nix
+++ b/pkgs/tools/misc/boxxy/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ dit7ya figsoda ];
     platforms = platforms.linux;
     broken = stdenv.isAarch64;
+    mainProgram = "boxxy";
   };
 }
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index de0fd1a115598..7e686922b8aaf 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -88,5 +88,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Canop/broot/releases/tag/v${version}";
     maintainers = with maintainers; [ dywedir ];
     license = with licenses; [ mit ];
+    mainProgram = "broot";
   };
 }
diff --git a/pkgs/tools/misc/bsp-layout/default.nix b/pkgs/tools/misc/bsp-layout/default.nix
index e5a78adcadfc9..e0348fb9207ef 100644
--- a/pkgs/tools/misc/bsp-layout/default.nix
+++ b/pkgs/tools/misc/bsp-layout/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ totoroot ];
     platforms = platforms.linux;
+    mainProgram = "bsp-layout";
   };
 }
diff --git a/pkgs/tools/misc/btdu/default.nix b/pkgs/tools/misc/btdu/default.nix
index 8031b5ea165d9..631c542a9f8ad 100644
--- a/pkgs/tools/misc/btdu/default.nix
+++ b/pkgs/tools/misc/btdu/default.nix
@@ -88,5 +88,6 @@ stdenv.mkDerivation rec {
       license = licenses.gpl2Only;
       platforms = platforms.linux;
       maintainers = with maintainers; [ atila ];
+      mainProgram = "btdu";
     };
 }
diff --git a/pkgs/tools/misc/buildtorrent/default.nix b/pkgs/tools/misc/buildtorrent/default.nix
index ce357a1d491e1..d9fc90768a984 100644
--- a/pkgs/tools/misc/buildtorrent/default.nix
+++ b/pkgs/tools/misc/buildtorrent/default.nix
@@ -14,5 +14,6 @@ stdenv.mkDerivation rec {
     homepage = "https://mathr.co.uk/blog/torrent.html";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
+    mainProgram = "buildtorrent";
   };
 }
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index a82d62aed0df7..6b9b50144708c 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -93,5 +93,6 @@ mkDerivation rec {
     license = with licenses; [ gpl3Plus bsd2 cc0 ];
     maintainers = with maintainers; [ manveru vlinkz ];
     platforms = platforms.linux;
+    mainProgram = "calamares";
   };
 }
diff --git a/pkgs/tools/misc/capture/default.nix b/pkgs/tools/misc/capture/default.nix
index d8b2fe6765184..be08be4f1436a 100644
--- a/pkgs/tools/misc/capture/default.nix
+++ b/pkgs/tools/misc/capture/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/buhman/capture";
     maintainers = [ maintainers.ar1a ];
     license = licenses.gpl3Plus;
+    mainProgram = "capture";
   };
 }
diff --git a/pkgs/tools/misc/castty/default.nix b/pkgs/tools/misc/castty/default.nix
index 075c6d739b3f8..86dae729790b8 100644
--- a/pkgs/tools/misc/castty/default.nix
+++ b/pkgs/tools/misc/castty/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     maintainers = with maintainers; [ iblech ];
     platforms = platforms.unix;
+    mainProgram = "castty";
   };
 }
diff --git a/pkgs/tools/misc/cc2538-bsl/default.nix b/pkgs/tools/misc/cc2538-bsl/default.nix
index c90fc3914d418..602327ab79b17 100644
--- a/pkgs/tools/misc/cc2538-bsl/default.nix
+++ b/pkgs/tools/misc/cc2538-bsl/default.nix
@@ -51,6 +51,7 @@ python3Packages.buildPythonPackage rec {
     description = "Flash TI SimpleLink chips (CC2538, CC13xx, CC26xx) over serial";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lorenz ];
+    mainProgram = "cc2538-bsl";
   };
 }
 
diff --git a/pkgs/tools/misc/cf-terraforming/default.nix b/pkgs/tools/misc/cf-terraforming/default.nix
index 8ac51a4821d46..916f349dc5088 100644
--- a/pkgs/tools/misc/cf-terraforming/default.nix
+++ b/pkgs/tools/misc/cf-terraforming/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/cloudflare/cf-terraforming/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ benley ];
+    mainProgram = "cf-terraforming";
   };
 }
diff --git a/pkgs/tools/misc/cfonts/default.nix b/pkgs/tools/misc/cfonts/default.nix
index cbee66e68f4a6..244360c99d8bf 100644
--- a/pkgs/tools/misc/cfonts/default.nix
+++ b/pkgs/tools/misc/cfonts/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
       "A silly little command line tool for sexy ANSI fonts in the console";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ leifhelm ];
+    mainProgram = "cfonts";
   };
 }
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index a03a55387d6b0..828877acbdae2 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl3Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.mog ];
+    mainProgram = "chafa";
   };
 }
diff --git a/pkgs/tools/misc/changelogger/default.nix b/pkgs/tools/misc/changelogger/default.nix
index ce7a37c7cc1ae..165f63c468ad6 100644
--- a/pkgs/tools/misc/changelogger/default.nix
+++ b/pkgs/tools/misc/changelogger/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/MarkusFreitag/changelogger/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ tomsiewert ];
+    mainProgram = "changelogger";
   };
 }
diff --git a/pkgs/tools/misc/charasay/default.nix b/pkgs/tools/misc/charasay/default.nix
index c66605cc826c9..9051638a8c2c9 100644
--- a/pkgs/tools/misc/charasay/default.nix
+++ b/pkgs/tools/misc/charasay/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/latipun7/charasay";
     license = licenses.mit;
     maintainers = with maintainers; [ hmajid2301 ];
+    mainProgram = "chara";
   };
 }
diff --git a/pkgs/tools/misc/checkpwn/default.nix b/pkgs/tools/misc/checkpwn/default.nix
index 413dbef68fbe8..994fecc6c4db1 100644
--- a/pkgs/tools/misc/checkpwn/default.nix
+++ b/pkgs/tools/misc/checkpwn/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/brycx/checkpwn/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "checkpwn";
   };
 }
diff --git a/pkgs/tools/misc/chef-cli/default.nix b/pkgs/tools/misc/chef-cli/default.nix
index bc43592d4f28b..af3a60103ca35 100644
--- a/pkgs/tools/misc/chef-cli/default.nix
+++ b/pkgs/tools/misc/chef-cli/default.nix
@@ -14,5 +14,6 @@ bundlerApp {
     homepage = "https://chef.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "chef-cli";
   };
 }
diff --git a/pkgs/tools/misc/chelf/default.nix b/pkgs/tools/misc/chelf/default.nix
index 25344d8658e82..7dd84eba1e441 100644
--- a/pkgs/tools/misc/chelf/default.nix
+++ b/pkgs/tools/misc/chelf/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Gottox/chelf";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "chelf";
   };
 }
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 88812357a9c08..9e0e2fafe9f25 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/twpayne/chezmoi/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ jhillyerd ];
+    mainProgram = "chezmoi";
   };
 }
diff --git a/pkgs/tools/misc/cicero-tui/default.nix b/pkgs/tools/misc/cicero-tui/default.nix
index 8578b1a6f1395..0ab33112a6e3b 100644
--- a/pkgs/tools/misc/cicero-tui/default.nix
+++ b/pkgs/tools/misc/cicero-tui/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "cicero";
   };
 }
diff --git a/pkgs/tools/misc/citron/default.nix b/pkgs/tools/misc/citron/default.nix
index 17fa3c5e5a210..d40c8c9369283 100644
--- a/pkgs/tools/misc/citron/default.nix
+++ b/pkgs/tools/misc/citron/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ vuimuich ];
     platforms = lib.platforms.linux;
+    mainProgram = "citron";
   };
 }
diff --git a/pkgs/tools/misc/clac/default.nix b/pkgs/tools/misc/clac/default.nix
index 0c4676323003f..e87fc0bb97ae5 100644
--- a/pkgs/tools/misc/clac/default.nix
+++ b/pkgs/tools/misc/clac/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
+    mainProgram = "clac";
   };
 }
diff --git a/pkgs/tools/misc/claws/default.nix b/pkgs/tools/misc/claws/default.nix
index 5690ec74d0a25..05231d2b16e67 100644
--- a/pkgs/tools/misc/claws/default.nix
+++ b/pkgs/tools/misc/claws/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "Interactive command line client for testing websocket servers";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "claws";
   };
 }
diff --git a/pkgs/tools/misc/clematis/default.nix b/pkgs/tools/misc/clematis/default.nix
index ea3c209600add..76851bbd0fd03 100644
--- a/pkgs/tools/misc/clematis/default.nix
+++ b/pkgs/tools/misc/clematis/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ misterio77 ];
+    mainProgram = "clematis";
   };
 }
diff --git a/pkgs/tools/misc/clickclack/default.nix b/pkgs/tools/misc/clickclack/default.nix
index da351dbbc69ce..884c2ac84bc18 100644
--- a/pkgs/tools/misc/clickclack/default.nix
+++ b/pkgs/tools/misc/clickclack/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "clickclack";
   };
 }
diff --git a/pkgs/tools/misc/clini/default.nix b/pkgs/tools/misc/clini/default.nix
index 751cb31470262..95d86e6fd46d1 100644
--- a/pkgs/tools/misc/clini/default.nix
+++ b/pkgs/tools/misc/clini/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/domgreen/clini";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
+    mainProgram = "clini";
   };
 }
diff --git a/pkgs/tools/misc/clipbuzz/default.nix b/pkgs/tools/misc/clipbuzz/default.nix
index 7bece66a786de..9e1e3724b8993 100644
--- a/pkgs/tools/misc/clipbuzz/default.nix
+++ b/pkgs/tools/misc/clipbuzz/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://trong.loang.net/~cnx/clipbuzz";
     license = lib.licenses.unlicense;
     maintainers = [ lib.maintainers.McSinyx ];
+    mainProgram = "clipbuzz";
   };
 })
diff --git a/pkgs/tools/misc/clipnotify/default.nix b/pkgs/tools/misc/clipnotify/default.nix
index 51a67f6983f81..8f94f974b058d 100644
--- a/pkgs/tools/misc/clipnotify/default.nix
+++ b/pkgs/tools/misc/clipnotify/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     maintainers = with maintainers; [ jb55 ];
     license = licenses.publicDomain;
+    mainProgram = "clipnotify";
   };
 }
diff --git a/pkgs/tools/misc/clipster/default.nix b/pkgs/tools/misc/clipster/default.nix
index e6efabb5b33a3..26170d148943a 100644
--- a/pkgs/tools/misc/clipster/default.nix
+++ b/pkgs/tools/misc/clipster/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation  rec {
     homepage = "https://github.com/mrichar1/clipster";
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
+    mainProgram = "clipster";
   };
 }
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index a8fc4a4f01b88..fdd932634c5e2 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -56,5 +56,6 @@ in stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ rycee ];
+    mainProgram = "cloc";
   };
 }
diff --git a/pkgs/tools/misc/clolcat/default.nix b/pkgs/tools/misc/clolcat/default.nix
index 25c7ade5cd623..5ba22c69b41b3 100644
--- a/pkgs/tools/misc/clolcat/default.nix
+++ b/pkgs/tools/misc/clolcat/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = [ maintainers.felipeqq2 ];
     license = licenses.wtfpl;
+    mainProgram = "clolcat";
   };
 }
diff --git a/pkgs/tools/misc/clpeak/default.nix b/pkgs/tools/misc/clpeak/default.nix
index c87729d81ae0f..4539602320f3f 100644
--- a/pkgs/tools/misc/clpeak/default.nix
+++ b/pkgs/tools/misc/clpeak/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/krrishnarraj/clpeak/";
     license = licenses.unlicense;
     maintainers = with maintainers; [ ];
+    mainProgram = "clpeak";
   };
 }
diff --git a/pkgs/tools/misc/cod/default.nix b/pkgs/tools/misc/cod/default.nix
index c681930032fcb..eba78d6c2263a 100644
--- a/pkgs/tools/misc/cod/default.nix
+++ b/pkgs/tools/misc/cod/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
     broken = stdenv.isDarwin;
+    mainProgram = "cod";
   };
 }
diff --git a/pkgs/tools/misc/code-minimap/default.nix b/pkgs/tools/misc/code-minimap/default.nix
index dc264307e7d88..33e6ee825b0b5 100644
--- a/pkgs/tools/misc/code-minimap/default.nix
+++ b/pkgs/tools/misc/code-minimap/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/wfxr/code-minimap";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ bsima ];
+    mainProgram = "code-minimap";
   };
 }
diff --git a/pkgs/tools/misc/codebraid/default.nix b/pkgs/tools/misc/codebraid/default.nix
index f4d8fa4940f00..516dd66cf01b0 100644
--- a/pkgs/tools/misc/codebraid/default.nix
+++ b/pkgs/tools/misc/codebraid/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     '';
     license = licenses.bsd3;
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "codebraid";
   };
 }
diff --git a/pkgs/tools/misc/codemov/default.nix b/pkgs/tools/misc/codemov/default.nix
index fe248c24edcdd..d8cc40e3d8617 100644
--- a/pkgs/tools/misc/codemov/default.nix
+++ b/pkgs/tools/misc/codemov/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/sloganking/codemov";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "codemov";
   };
 }
diff --git a/pkgs/tools/misc/codevis/default.nix b/pkgs/tools/misc/codevis/default.nix
index 464702432aa6f..c41351f95983f 100644
--- a/pkgs/tools/misc/codevis/default.nix
+++ b/pkgs/tools/misc/codevis/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sloganking/codevis/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "codevis";
   };
 }
diff --git a/pkgs/tools/misc/coinlive/default.nix b/pkgs/tools/misc/coinlive/default.nix
index 2d81a940dd57b..2d5faff98a027 100644
--- a/pkgs/tools/misc/coinlive/default.nix
+++ b/pkgs/tools/misc/coinlive/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mayeranalytics/coinlive";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "coinlive";
   };
 }
diff --git a/pkgs/tools/misc/colord-gtk/default.nix b/pkgs/tools/misc/colord-gtk/default.nix
index 35076a283270f..1e66ab3ba00d8 100644
--- a/pkgs/tools/misc/colord-gtk/default.nix
+++ b/pkgs/tools/misc/colord-gtk/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
+    mainProgram = "cd-convert";
   };
 }
diff --git a/pkgs/tools/misc/colorless/default.nix b/pkgs/tools/misc/colorless/default.nix
index 46e4745172ff9..d7613d30d0977 100644
--- a/pkgs/tools/misc/colorless/default.nix
+++ b/pkgs/tools/misc/colorless/default.nix
@@ -43,5 +43,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ suominen ];
     platforms = platforms.unix;
+    mainProgram = "colorless";
   };
 }
diff --git a/pkgs/tools/misc/colorz/default.nix b/pkgs/tools/misc/colorz/default.nix
index d259f482942db..f60843afcfb05 100644
--- a/pkgs/tools/misc/colorz/default.nix
+++ b/pkgs/tools/misc/colorz/default.nix
@@ -20,5 +20,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/metakirby5/colorz";
     license = licenses.mit;
     maintainers = with maintainers; [ skykanin ];
+    mainProgram = "colorz";
   };
 }
diff --git a/pkgs/tools/misc/compdb/default.nix b/pkgs/tools/misc/compdb/default.nix
index c6d6d75283d91..0a5e689bb4b8f 100644
--- a/pkgs/tools/misc/compdb/default.nix
+++ b/pkgs/tools/misc/compdb/default.nix
@@ -19,5 +19,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.mit;
     homepage = "https://github.com/Sarcasm/compdb";
     maintainers = [ maintainers.detegr ];
+    mainProgram = "compdb";
   };
 }
diff --git a/pkgs/tools/misc/complete-alias/default.nix b/pkgs/tools/misc/complete-alias/default.nix
index c23ed9771f23a..fdf0c1ae0ab26 100644
--- a/pkgs/tools/misc/complete-alias/default.nix
+++ b/pkgs/tools/misc/complete-alias/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/cykerway/complete-alias";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ tuxinaut ];
+    mainProgram = "complete_alias";
   };
 }
diff --git a/pkgs/tools/misc/completely/default.nix b/pkgs/tools/misc/completely/default.nix
index 7e0129f6d1b3f..326887299c0c2 100644
--- a/pkgs/tools/misc/completely/default.nix
+++ b/pkgs/tools/misc/completely/default.nix
@@ -17,5 +17,6 @@ bundlerApp {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "completely";
   };
 }
diff --git a/pkgs/tools/misc/convbin/default.nix b/pkgs/tools/misc/convbin/default.nix
index 90b403adeb603..96164902dc2c5 100644
--- a/pkgs/tools/misc/convbin/default.nix
+++ b/pkgs/tools/misc/convbin/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.all;
+    mainProgram = "convbin";
   };
 }
diff --git a/pkgs/tools/misc/convfont/default.nix b/pkgs/tools/misc/convfont/default.nix
index 501c4e29a416a..d58f7ecc2bea4 100644
--- a/pkgs/tools/misc/convfont/default.nix
+++ b/pkgs/tools/misc/convfont/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.wtfpl;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.all;
+    mainProgram = "convfont";
   };
 }
diff --git a/pkgs/tools/misc/convimg/default.nix b/pkgs/tools/misc/convimg/default.nix
index 8492527f30373..93b01723bf624 100644
--- a/pkgs/tools/misc/convimg/default.nix
+++ b/pkgs/tools/misc/convimg/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.linux;
+    mainProgram = "convimg";
   };
 }
diff --git a/pkgs/tools/misc/convmv/default.nix b/pkgs/tools/misc/convmv/default.nix
index 6ed8c78361ec9..8d392f78f47ff 100644
--- a/pkgs/tools/misc/convmv/default.nix
+++ b/pkgs/tools/misc/convmv/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux ++ platforms.freebsd ++ platforms.cygwin;
     maintainers = [ ];
     license = licenses.gpl2Plus;
+    mainProgram = "convmv";
   };
 }
diff --git a/pkgs/tools/misc/copier/default.nix b/pkgs/tools/misc/copier/default.nix
index ea8417f6da22a..c1e8568dfd50d 100644
--- a/pkgs/tools/misc/copier/default.nix
+++ b/pkgs/tools/misc/copier/default.nix
@@ -53,5 +53,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://copier.readthedocs.io";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
+    mainProgram = "copier";
   };
 }
diff --git a/pkgs/tools/misc/coreboot-configurator/default.nix b/pkgs/tools/misc/coreboot-configurator/default.nix
index 9d61b795ce541..2c51fd61fc110 100644
--- a/pkgs/tools/misc/coreboot-configurator/default.nix
+++ b/pkgs/tools/misc/coreboot-configurator/default.nix
@@ -56,5 +56,6 @@ mkDerivation {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ danth ];
+    mainProgram = "coreboot-configurator";
   };
 }
diff --git a/pkgs/tools/misc/cp437/default.nix b/pkgs/tools/misc/cp437/default.nix
index c08214ff548ba..cb4b1b8508cb9 100644
--- a/pkgs/tools/misc/cp437/default.nix
+++ b/pkgs/tools/misc/cp437/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/keaston/cp437";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jb55 ];
+    mainProgram = "cp437";
   };
 }
diff --git a/pkgs/tools/misc/cpufetch/default.nix b/pkgs/tools/misc/cpufetch/default.nix
index 074a76e32e812..ac7384642e819 100644
--- a/pkgs/tools/misc/cpufetch/default.nix
+++ b/pkgs/tools/misc/cpufetch/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Dr-Noob/cpufetch";
     changelog = "https://github.com/Dr-Noob/cpufetch/releases/tag/v${version}";
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "cpufetch";
   };
 }
diff --git a/pkgs/tools/misc/cpuminer/default.nix b/pkgs/tools/misc/cpuminer/default.nix
index 28335ccb4481d..4b7c5fc7f4867 100644
--- a/pkgs/tools/misc/cpuminer/default.nix
+++ b/pkgs/tools/misc/cpuminer/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "minerd";
   };
 }
diff --git a/pkgs/tools/misc/crex/default.nix b/pkgs/tools/misc/crex/default.nix
index 14d462e8e6e42..d173457d71901 100644
--- a/pkgs/tools/misc/crex/default.nix
+++ b/pkgs/tools/misc/crex/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
     platforms = platforms.all;
+    mainProgram = "crex";
   };
 }
diff --git a/pkgs/tools/misc/crypto-tracker/default.nix b/pkgs/tools/misc/crypto-tracker/default.nix
index cbab28f9cd336..273a0aa63e4c0 100644
--- a/pkgs/tools/misc/crypto-tracker/default.nix
+++ b/pkgs/tools/misc/crypto-tracker/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/Nox04/crypto-tracker";
     license = licenses.mit;
     maintainers = with maintainers; [ tiredofit ];
+    mainProgram = "crypto-tracker";
   };
 }
diff --git a/pkgs/tools/misc/csv2latex/default.nix b/pkgs/tools/misc/csv2latex/default.nix
index e297bc532dc12..cc286c54e9adc 100644
--- a/pkgs/tools/misc/csv2latex/default.nix
+++ b/pkgs/tools/misc/csv2latex/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "http://brouits.free.fr/csv2latex/";
     license = licenses.gpl2;
     maintainers = [ maintainers.catern ];
+    mainProgram = "csv2latex";
   };
 }
diff --git a/pkgs/tools/misc/csv2parquet/default.nix b/pkgs/tools/misc/csv2parquet/default.nix
index 2be9f1c3c6447..0d6050d703a7c 100644
--- a/pkgs/tools/misc/csv2parquet/default.nix
+++ b/pkgs/tools/misc/csv2parquet/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/domoritz/csv2parquet";
     license = licenses.mit;
     maintainers = with maintainers; [ john-shaffer ];
+    mainProgram = "csv2parquet";
   };
 }
diff --git a/pkgs/tools/misc/csvs-to-sqlite/default.nix b/pkgs/tools/misc/csvs-to-sqlite/default.nix
index dc140c1c0c01c..28537e9631ea3 100644
--- a/pkgs/tools/misc/csvs-to-sqlite/default.nix
+++ b/pkgs/tools/misc/csvs-to-sqlite/default.nix
@@ -57,5 +57,6 @@ with python3.pkgs; buildPythonApplication rec {
     homepage = "https://github.com/simonw/csvs-to-sqlite";
     license = licenses.asl20;
     maintainers = [ maintainers.costrouc ];
+    mainProgram = "csvs-to-sqlite";
   };
 }
diff --git a/pkgs/tools/misc/cutecom/default.nix b/pkgs/tools/misc/cutecom/default.nix
index 1d264926fd7ca..490d33b123d84 100644
--- a/pkgs/tools/misc/cutecom/default.nix
+++ b/pkgs/tools/misc/cutecom/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bennofs ];
     platforms = platforms.unix;
+    mainProgram = "cutecom";
   };
 }
diff --git a/pkgs/tools/misc/cyclonedx-python/default.nix b/pkgs/tools/misc/cyclonedx-python/default.nix
index 03b5ba031112c..8284035c99e14 100644
--- a/pkgs/tools/misc/cyclonedx-python/default.nix
+++ b/pkgs/tools/misc/cyclonedx-python/default.nix
@@ -43,5 +43,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/CycloneDX/cyclonedx-python";
     license = licenses.asl20;
     maintainers = [ ];
+    mainProgram = "cyclonedx-py";
   };
 }
diff --git a/pkgs/tools/misc/dabet/default.nix b/pkgs/tools/misc/dabet/default.nix
index da7cbce191c2c..acdc66cbad8fe 100644
--- a/pkgs/tools/misc/dabet/default.nix
+++ b/pkgs/tools/misc/dabet/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/dabet";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "dabet";
   };
 }
 
diff --git a/pkgs/tools/misc/dashing/default.nix b/pkgs/tools/misc/dashing/default.nix
index 7a1541b7e9403..c7ec598fe309e 100644
--- a/pkgs/tools/misc/dashing/default.nix
+++ b/pkgs/tools/misc/dashing/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/technosophos/dashing";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "dashing";
   };
 }
diff --git a/pkgs/tools/misc/datefmt/default.nix b/pkgs/tools/misc/datefmt/default.nix
index cffa589e38785..0b2dd7fae270e 100644
--- a/pkgs/tools/misc/datefmt/default.nix
+++ b/pkgs/tools/misc/datefmt/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jb55 ];
+    mainProgram = "datefmt";
   };
 }
diff --git a/pkgs/tools/misc/dbus-map/default.nix b/pkgs/tools/misc/dbus-map/default.nix
index 56f89b2f05311..955a248be7bbf 100644
--- a/pkgs/tools/misc/dbus-map/default.nix
+++ b/pkgs/tools/misc/dbus-map/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "dbus-map";
   };
 }
diff --git a/pkgs/tools/misc/ddate/default.nix b/pkgs/tools/misc/ddate/default.nix
index 4de50693b744a..012e00c8f9724 100644
--- a/pkgs/tools/misc/ddate/default.nix
+++ b/pkgs/tools/misc/ddate/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ kovirobi ];
     platforms = platforms.all;
+    mainProgram = "ddate";
   };
 }
diff --git a/pkgs/tools/misc/ddcutil/default.nix b/pkgs/tools/misc/ddcutil/default.nix
index 903f923b5d8a0..285fd3799711e 100644
--- a/pkgs/tools/misc/ddcutil/default.nix
+++ b/pkgs/tools/misc/ddcutil/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ rnhmjoj ];
     changelog = "https://github.com/rockowitz/ddcutil/blob/v${version}/CHANGELOG.md";
+    mainProgram = "ddcutil";
   };
 }
 
diff --git a/pkgs/tools/misc/debootstrap/default.nix b/pkgs/tools/misc/debootstrap/default.nix
index 04c19d93af99a..96e003fe7204f 100644
--- a/pkgs/tools/misc/debootstrap/default.nix
+++ b/pkgs/tools/misc/debootstrap/default.nix
@@ -97,5 +97,6 @@ in stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ marcweber ];
     platforms = platforms.linux;
+    mainProgram = "debootstrap";
   };
 }
diff --git a/pkgs/tools/misc/dgoss/default.nix b/pkgs/tools/misc/dgoss/default.nix
index 0ca97c9f63f19..8201a8805be1d 100644
--- a/pkgs/tools/misc/dgoss/default.nix
+++ b/pkgs/tools/misc/dgoss/default.nix
@@ -44,5 +44,6 @@ resholve.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ hyzual anthonyroussel ];
+    mainProgram = "dgoss";
   };
 }
diff --git a/pkgs/tools/misc/dialogbox/default.nix b/pkgs/tools/misc/dialogbox/default.nix
index 02fb122d44657..7012f9d69ad58 100644
--- a/pkgs/tools/misc/dialogbox/default.nix
+++ b/pkgs/tools/misc/dialogbox/default.nix
@@ -43,5 +43,6 @@ mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    mainProgram = "dialogbox";
   };
 }
diff --git a/pkgs/tools/misc/didu/default.nix b/pkgs/tools/misc/didu/default.nix
index 8a29cdb2d346b..a5a8a790e4ffe 100644
--- a/pkgs/tools/misc/didu/default.nix
+++ b/pkgs/tools/misc/didu/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/didu";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "didu";
   };
 }
diff --git a/pkgs/tools/misc/diffoci/default.nix b/pkgs/tools/misc/diffoci/default.nix
index fe50ac5e5e66f..df7cc71140aab 100644
--- a/pkgs/tools/misc/diffoci/default.nix
+++ b/pkgs/tools/misc/diffoci/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/reproducible-containers/diffoci/";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
+    mainProgram = "diffoci";
   };
 }
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 09a4ef57c69f6..61617044792b9 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -288,5 +288,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg danielfullmer raitobezarius ];
     platforms = platforms.unix;
+    mainProgram = "diffoscope";
   };
 }
diff --git a/pkgs/tools/misc/dijo/default.nix b/pkgs/tools/misc/dijo/default.nix
index 606bba0dff926..45da82571bd46 100644
--- a/pkgs/tools/misc/dijo/default.nix
+++ b/pkgs/tools/misc/dijo/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NerdyPepper/dijo";
     license = licenses.mit;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "dijo";
   };
 }
diff --git a/pkgs/tools/misc/discocss/default.nix b/pkgs/tools/misc/discocss/default.nix
index a9e3d124c8556..b930338c29f4d 100644
--- a/pkgs/tools/misc/discocss/default.nix
+++ b/pkgs/tools/misc/discocss/default.nix
@@ -38,5 +38,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mpl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ mlvzk ];
+    mainProgram = "discocss";
   };
 }
diff --git a/pkgs/tools/misc/disfetch/default.nix b/pkgs/tools/misc/disfetch/default.nix
index 90c2c06626cdd..6cd7a2683d604 100644
--- a/pkgs/tools/misc/disfetch/default.nix
+++ b/pkgs/tools/misc/disfetch/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ vel ];
+    mainProgram = "disfetch";
   };
 }
diff --git a/pkgs/tools/misc/diskonaut/default.nix b/pkgs/tools/misc/diskonaut/default.nix
index 0ea4106ab0343..6193e0a5e8166 100644
--- a/pkgs/tools/misc/diskonaut/default.nix
+++ b/pkgs/tools/misc/diskonaut/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/imsnif/diskonaut";
     license = licenses.mit;
     maintainers = with maintainers; [ evanjs figsoda ];
+    mainProgram = "diskonaut";
   };
 }
diff --git a/pkgs/tools/misc/diskscan/default.nix b/pkgs/tools/misc/diskscan/default.nix
index 265218dfcfd50..141822d22ddbb 100644
--- a/pkgs/tools/misc/diskscan/default.nix
+++ b/pkgs/tools/misc/diskscan/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux;
     maintainers = with maintainers; [ peterhoeg ];
     license = licenses.gpl3;
+    mainProgram = "diskscan";
   };
 }
diff --git a/pkgs/tools/misc/diskus/default.nix b/pkgs/tools/misc/diskus/default.nix
index c664de7c5dc66..cfbcfdcca6ebb 100644
--- a/pkgs/tools/misc/diskus/default.nix
+++ b/pkgs/tools/misc/diskus/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
       diskus is a very simple program that computes the total size of the
       current directory. It is a parallelized version of du -sh.
     '';
+    mainProgram = "diskus";
   };
 }
diff --git a/pkgs/tools/misc/djenrandom/default.nix b/pkgs/tools/misc/djenrandom/default.nix
index f55329a66180e..51f892a5a4530 100644
--- a/pkgs/tools/misc/djenrandom/default.nix
+++ b/pkgs/tools/misc/djenrandom/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     # djenrandom uses x86 specific instructions, therefore we can only compile for the x86 architechture
     platforms = lib.platforms.x86;
     maintainers = with lib.maintainers; [ orichter thillux ];
+    mainProgram = "djenrandom";
   };
 }
diff --git a/pkgs/tools/misc/docbook2mdoc/default.nix b/pkgs/tools/misc/docbook2mdoc/default.nix
index 9a4352d32679d..f64a73a338bac 100644
--- a/pkgs/tools/misc/docbook2mdoc/default.nix
+++ b/pkgs/tools/misc/docbook2mdoc/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "docbook2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/docker-sync/default.nix b/pkgs/tools/misc/docker-sync/default.nix
index 48fbaa1e9de04..aa129c0a36dbd 100644
--- a/pkgs/tools/misc/docker-sync/default.nix
+++ b/pkgs/tools/misc/docker-sync/default.nix
@@ -16,5 +16,6 @@ bundlerApp {
     license = licenses.gpl3;
     maintainers = with maintainers; [ manveru nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "docker-sync";
   };
 }
diff --git a/pkgs/tools/misc/docui/default.nix b/pkgs/tools/misc/docui/default.nix
index 122bc20279ba1..d226c2fc8f00b 100644
--- a/pkgs/tools/misc/docui/default.nix
+++ b/pkgs/tools/misc/docui/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ aethelz ];
     broken = stdenv.isDarwin;
+    mainProgram = "docui";
   };
 }
diff --git a/pkgs/tools/misc/doitlive/default.nix b/pkgs/tools/misc/doitlive/default.nix
index 6eef5fab1d1c1..483b36d98d319 100644
--- a/pkgs/tools/misc/doitlive/default.nix
+++ b/pkgs/tools/misc/doitlive/default.nix
@@ -19,5 +19,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://pypi.python.org/pypi/doitlive";
     license = licenses.mit;
     maintainers = with maintainers; [ mbode ];
+    mainProgram = "doitlive";
   };
 }
diff --git a/pkgs/tools/misc/dooit/default.nix b/pkgs/tools/misc/dooit/default.nix
index b8aa6c8809ff7..79e968a5458b5 100644
--- a/pkgs/tools/misc/dooit/default.nix
+++ b/pkgs/tools/misc/dooit/default.nix
@@ -50,5 +50,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/kraanzu/dooit/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ khaneliman wesleyjrz ];
+    mainProgram = "dooit";
   };
 }
diff --git a/pkgs/tools/misc/dotacat/default.nix b/pkgs/tools/misc/dotacat/default.nix
index 07dc66b116740..2512ff20d8d57 100644
--- a/pkgs/tools/misc/dotacat/default.nix
+++ b/pkgs/tools/misc/dotacat/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://gitlab.scd31.com/stephen/dotacat";
     license = licenses.mit;
     maintainers = with maintainers; [ traxys ];
+    mainProgram = "dotacat";
   };
 }
diff --git a/pkgs/tools/misc/dotter/default.nix b/pkgs/tools/misc/dotter/default.nix
index 1356a3908d60c..2abe844531b50 100644
--- a/pkgs/tools/misc/dotter/default.nix
+++ b/pkgs/tools/misc/dotter/default.nix
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/SuperCuber/dotter";
     license = licenses.unlicense;
     maintainers = with maintainers; [ linsui ];
+    mainProgram = "dotter";
   };
 }
diff --git a/pkgs/tools/misc/dtach/default.nix b/pkgs/tools/misc/dtach/default.nix
index 0e0d4ddd077c9..226c7335f2645 100644
--- a/pkgs/tools/misc/dtach/default.nix
+++ b/pkgs/tools/misc/dtach/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
 
     platforms = lib.platforms.unix;
     maintainers = [ ];
+    mainProgram = "dtach";
   };
 }
diff --git a/pkgs/tools/misc/dtool/default.nix b/pkgs/tools/misc/dtool/default.nix
index 26eb0ab9ed83d..9cf22a9da39f3 100644
--- a/pkgs/tools/misc/dtool/default.nix
+++ b/pkgs/tools/misc/dtool/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/guoxbin/dtool";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linuxissuper ];
+    mainProgram = "dtool";
   };
 }
diff --git a/pkgs/tools/misc/dua/default.nix b/pkgs/tools/misc/dua/default.nix
index e197c0f90ad88..6ed80c30b740b 100644
--- a/pkgs/tools/misc/dua/default.nix
+++ b/pkgs/tools/misc/dua/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Byron/dua-cli/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda killercup ];
+    mainProgram = "dua";
   };
 }
diff --git a/pkgs/tools/misc/duc/default.nix b/pkgs/tools/misc/duc/default.nix
index d630c94127387..0501b681aa3aa 100644
--- a/pkgs/tools/misc/duc/default.nix
+++ b/pkgs/tools/misc/duc/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.all;
     maintainers = [ ];
+    mainProgram = "duc";
   };
 }
diff --git a/pkgs/tools/misc/duf/default.nix b/pkgs/tools/misc/duf/default.nix
index dbc50346ca55a..5c2ccb5717fc0 100644
--- a/pkgs/tools/misc/duf/default.nix
+++ b/pkgs/tools/misc/duf/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "Disk Usage/Free Utility";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda penguwin ];
+    mainProgram = "duf";
   };
 }
diff --git a/pkgs/tools/misc/dumptorrent/default.nix b/pkgs/tools/misc/dumptorrent/default.nix
index 3199bae9987e3..194d40e1c1cc2 100644
--- a/pkgs/tools/misc/dumptorrent/default.nix
+++ b/pkgs/tools/misc/dumptorrent/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
       license = licenses.gpl2;
       maintainers = [ maintainers.zohl ];
       platforms = platforms.all;
+      mainProgram = "dumptorrent";
     };
 }
diff --git a/pkgs/tools/misc/dupd/default.nix b/pkgs/tools/misc/dupd/default.nix
index 903a9f9e5fd4d..cf5ab77e7d470 100644
--- a/pkgs/tools/misc/dupd/default.nix
+++ b/pkgs/tools/misc/dupd/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.virkki.com/dupd";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "dupd";
   };
 }
diff --git a/pkgs/tools/misc/dutree/default.nix b/pkgs/tools/misc/dutree/default.nix
index c40385c387bab..fe47997296e87 100644
--- a/pkgs/tools/misc/dutree/default.nix
+++ b/pkgs/tools/misc/dutree/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nachoparker/dutree";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "dutree";
   };
 }
diff --git a/pkgs/tools/misc/dwarf2json/default.nix b/pkgs/tools/misc/dwarf2json/default.nix
index 813c1fb368383..3bd0fa4b94a87 100644
--- a/pkgs/tools/misc/dwarf2json/default.nix
+++ b/pkgs/tools/misc/dwarf2json/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "Convert ELF/DWARF symbol and type information into vol3's intermediate JSON";
     license = licenses.vol-sl;
     maintainers = with maintainers; [ arkivm ];
+    mainProgram = "dwarf2json";
   };
 }
diff --git a/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix b/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
index 39a9187b3babd..e7c7287b5311a 100644
--- a/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
+++ b/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
@@ -48,5 +48,6 @@ stdenvNoCC.mkDerivation {
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.all;
+    mainProgram = "colorscript";
   };
 }
diff --git a/pkgs/tools/misc/easeprobe/default.nix b/pkgs/tools/misc/easeprobe/default.nix
index 9745364fb7ec6..70181956339c0 100644
--- a/pkgs/tools/misc/easeprobe/default.nix
+++ b/pkgs/tools/misc/easeprobe/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     homepage = "https://github.com/megaease/easeprobe";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "easeprobe";
   };
 }
diff --git a/pkgs/tools/misc/edid-decode/default.nix b/pkgs/tools/misc/edid-decode/default.nix
index f12d5a09f2367..eb72d0a815702 100644
--- a/pkgs/tools/misc/edid-decode/default.nix
+++ b/pkgs/tools/misc/edid-decode/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ Madouura ];
     platforms = platforms.all;
+    mainProgram = "edid-decode";
   };
 }
diff --git a/pkgs/tools/misc/edir/default.nix b/pkgs/tools/misc/edir/default.nix
index f6934bae49956..9fd1c70ba7eb4 100644
--- a/pkgs/tools/misc/edir/default.nix
+++ b/pkgs/tools/misc/edir/default.nix
@@ -24,5 +24,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ guyonvarch ];
     platforms = platforms.all;
+    mainProgram = "edir";
   };
 }
diff --git a/pkgs/tools/misc/elfcat/default.nix b/pkgs/tools/misc/elfcat/default.nix
index 222470299739e..53d2516e40917 100644
--- a/pkgs/tools/misc/elfcat/default.nix
+++ b/pkgs/tools/misc/elfcat/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ruslashev/elfcat";
     license = licenses.zlib;
     maintainers = with maintainers; [ moni ];
+    mainProgram = "elfcat";
   };
 }
diff --git a/pkgs/tools/misc/empty/default.nix b/pkgs/tools/misc/empty/default.nix
index 296cd7c52583c..29dfa606dd44e 100644
--- a/pkgs/tools/misc/empty/default.nix
+++ b/pkgs/tools/misc/empty/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
       - can easily be ported to almost all UNIX-like systems
     '';
     maintainers = [ maintainers.djwf ];
+    mainProgram = "empty";
   };
 }
diff --git a/pkgs/tools/misc/emv/default.nix b/pkgs/tools/misc/emv/default.nix
index 3e5a348c58232..a317805e463ce 100644
--- a/pkgs/tools/misc/emv/default.nix
+++ b/pkgs/tools/misc/emv/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation {
     description = "Editor Move: Rename files with your favourite text editor";
     license = lib.licenses.publicDomain;
     platforms = lib.platforms.unix;
+    mainProgram = "emv";
   };
 }
diff --git a/pkgs/tools/misc/encpipe/default.nix b/pkgs/tools/misc/encpipe/default.nix
index d8eea00c3107d..f3ab870b0f05e 100644
--- a/pkgs/tools/misc/encpipe/default.nix
+++ b/pkgs/tools/misc/encpipe/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jedisct1/encpipe";
     license = licenses.isc;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "encpipe";
   };
 }
diff --git a/pkgs/tools/misc/enjarify/default.nix b/pkgs/tools/misc/enjarify/default.nix
index 1828ddce7aacd..0a146dc02f321 100644
--- a/pkgs/tools/misc/enjarify/default.nix
+++ b/pkgs/tools/misc/enjarify/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/google/enjarify/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "enjarify";
   };
 }
diff --git a/pkgs/tools/misc/ent/default.nix b/pkgs/tools/misc/ent/default.nix
index bd9dfeafea6bd..3152e00503bb3 100644
--- a/pkgs/tools/misc/ent/default.nix
+++ b/pkgs/tools/misc/ent/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     homepage = "https://www.fourmilab.ch/random/";
     platforms = platforms.all;
     license = licenses.publicDomain;
+    mainProgram = "ent";
   };
 }
diff --git a/pkgs/tools/misc/entr/default.nix b/pkgs/tools/misc/entr/default.nix
index efee9f7043e5e..6d00d4128a51e 100644
--- a/pkgs/tools/misc/entr/default.nix
+++ b/pkgs/tools/misc/entr/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ pSub synthetica ];
+    mainProgram = "entr";
   };
 }
diff --git a/pkgs/tools/misc/enumer/default.nix b/pkgs/tools/misc/enumer/default.nix
index 67b49b299f71d..c10cfdccd91f7 100644
--- a/pkgs/tools/misc/enumer/default.nix
+++ b/pkgs/tools/misc/enumer/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/dmarkham/enumer";
     license = licenses.bsd2;
     maintainers = with maintainers; [ hexa ];
+    mainProgram = "enumer";
   };
 }
diff --git a/pkgs/tools/misc/envchain/default.nix b/pkgs/tools/misc/envchain/default.nix
index 4446400c2f75f..a204f31a7484e 100644
--- a/pkgs/tools/misc/envchain/default.nix
+++ b/pkgs/tools/misc/envchain/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
+    mainProgram = "envchain";
   };
 }
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 176557ca3536b..6ac1f24a20108 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -107,5 +107,6 @@ python.pkgs.buildPythonApplication rec {
       gpl3Only # The python codebase and all other parts of this codebase
     ];
     maintainers = with maintainers; [ globin hexa ];
+    mainProgram = "esphome";
   };
 }
diff --git a/pkgs/tools/misc/esptool-ck/default.nix b/pkgs/tools/misc/esptool-ck/default.nix
index 0b4e8cecaf642..2dd6415324e48 100644
--- a/pkgs/tools/misc/esptool-ck/default.nix
+++ b/pkgs/tools/misc/esptool-ck/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "esptool";
   };
 }
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 5850fada2a70f..eb1911170beb6 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "ethtool";
   };
 }
diff --git a/pkgs/tools/misc/ets/default.nix b/pkgs/tools/misc/ets/default.nix
index 43d26e2693921..7d9103e7b3508 100644
--- a/pkgs/tools/misc/ets/default.nix
+++ b/pkgs/tools/misc/ets/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/zmwangx/ets/";
     license = licenses.mit;
     maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "ets";
   };
 }
diff --git a/pkgs/tools/misc/eva/default.nix b/pkgs/tools/misc/eva/default.nix
index 934a19209d0e0..b15957a909a88 100644
--- a/pkgs/tools/misc/eva/default.nix
+++ b/pkgs/tools/misc/eva/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NerdyPepper/eva";
     license = licenses.mit;
     maintainers = with maintainers; [ nrdxp ma27 figsoda ];
+    mainProgram = "eva";
   };
 }
diff --git a/pkgs/tools/misc/evhz/default.nix b/pkgs/tools/misc/evhz/default.nix
index 703dcae083a35..712606c6913a1 100644
--- a/pkgs/tools/misc/evhz/default.nix
+++ b/pkgs/tools/misc/evhz/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ Tungsten842 ];
     platforms = platforms.linux;
+    mainProgram = "evhz";
   };
 }
diff --git a/pkgs/tools/misc/f2/default.nix b/pkgs/tools/misc/f2/default.nix
index 43c9d52a3dd19..f97c2b8e80c6b 100644
--- a/pkgs/tools/misc/f2/default.nix
+++ b/pkgs/tools/misc/f2/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/ayoisaiah/f2";
     license = licenses.mit;
     maintainers = with maintainers; [ zendo ];
+    mainProgram = "f2";
   };
 }
diff --git a/pkgs/tools/misc/faketty/default.nix b/pkgs/tools/misc/faketty/default.nix
index 6ec144d5d693f..4515f83d1f83c 100644
--- a/pkgs/tools/misc/faketty/default.nix
+++ b/pkgs/tools/misc/faketty/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/dtolnay/faketty/releases/tag/${version}";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "faketty";
   };
 }
diff --git a/pkgs/tools/misc/fclones/default.nix b/pkgs/tools/misc/fclones/default.nix
index 01f35bd8c65b3..6db73d081a24b 100644
--- a/pkgs/tools/misc/fclones/default.nix
+++ b/pkgs/tools/misc/fclones/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/pkolaczk/fclones/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ cyounkins figsoda msfjarvis ];
+    mainProgram = "fclones";
   };
 }
diff --git a/pkgs/tools/misc/fcp/default.nix b/pkgs/tools/misc/fcp/default.nix
index 7124e90784573..61db506bc1aed 100644
--- a/pkgs/tools/misc/fcp/default.nix
+++ b/pkgs/tools/misc/fcp/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "fcp";
   };
 }
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index f92a6a69fe287..e4e52115c3563 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.maggesi ];
+    mainProgram = "fdupes";
   };
 }
diff --git a/pkgs/tools/misc/fedifetcher/default.nix b/pkgs/tools/misc/fedifetcher/default.nix
index e3070ab6e5a94..3a1192d698c16 100644
--- a/pkgs/tools/misc/fedifetcher/default.nix
+++ b/pkgs/tools/misc/fedifetcher/default.nix
@@ -36,5 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://blog.thms.uk/fedifetcher";
     license = licenses.mit;
     maintainers = with maintainers; [ delroth ];
+    mainProgram = "fedifetcher";
   };
 }
diff --git a/pkgs/tools/misc/fetch-scm/default.nix b/pkgs/tools/misc/fetch-scm/default.nix
index 3e8a3e63e80a7..a5bc1f65a9041 100644
--- a/pkgs/tools/misc/fetch-scm/default.nix
+++ b/pkgs/tools/misc/fetch-scm/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ vel ];
+    mainProgram = "fetch-scm";
   };
 }
diff --git a/pkgs/tools/misc/ffsend/default.nix b/pkgs/tools/misc/ffsend/default.nix
index 309abb973d310..18f5a0ee0a16c 100644
--- a/pkgs/tools/misc/ffsend/default.nix
+++ b/pkgs/tools/misc/ffsend/default.nix
@@ -88,5 +88,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lilyball equirosa marsam ];
     platforms = platforms.unix;
+    mainProgram = "ffsend";
   };
 }
diff --git a/pkgs/tools/misc/filebench/default.nix b/pkgs/tools/misc/filebench/default.nix
index ca62c8c4a1a8f..b8d4c6fa7a89e 100644
--- a/pkgs/tools/misc/filebench/default.nix
+++ b/pkgs/tools/misc/filebench/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.cddl;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "filebench";
   };
 }
diff --git a/pkgs/tools/misc/fileschanged/default.nix b/pkgs/tools/misc/fileschanged/default.nix
index f44011a98a71a..5644a01fa75a0 100644
--- a/pkgs/tools/misc/fileschanged/default.nix
+++ b/pkgs/tools/misc/fileschanged/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     '';
 
     platforms = lib.platforms.linux;
+    mainProgram = "fileschanged";
   };
 }
diff --git a/pkgs/tools/misc/findup/default.nix b/pkgs/tools/misc/findup/default.nix
index d196192447d81..9cffd61f20116 100644
--- a/pkgs/tools/misc/findup/default.nix
+++ b/pkgs/tools/misc/findup/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Search parent directories for sentinel files";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ booniepepper ];
+    mainProgram = "findup";
   };
 })
diff --git a/pkgs/tools/misc/flashrom-stable/default.nix b/pkgs/tools/misc/flashrom-stable/default.nix
index 0ad2c533fd964..053605b5aaf16 100644
--- a/pkgs/tools/misc/flashrom-stable/default.nix
+++ b/pkgs/tools/misc/flashrom-stable/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl2 gpl2Plus ];
     maintainers = with maintainers; [ felixsinger ];
     platforms = platforms.all;
+    mainProgram = "flashrom";
   };
 }
diff --git a/pkgs/tools/misc/flashrom/default.nix b/pkgs/tools/misc/flashrom/default.nix
index 6463595c28c8e..b2b9583db2328 100644
--- a/pkgs/tools/misc/flashrom/default.nix
+++ b/pkgs/tools/misc/flashrom/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ fpletz felixsinger ];
     platforms = platforms.all;
+    mainProgram = "flashrom";
   };
 }
diff --git a/pkgs/tools/misc/flitter/default.nix b/pkgs/tools/misc/flitter/default.nix
index 5df3d168a9b0a..958c5ebc32097 100644
--- a/pkgs/tools/misc/flitter/default.nix
+++ b/pkgs/tools/misc/flitter/default.nix
@@ -56,5 +56,6 @@ ocamlPackages.buildDunePackage {
     maintainers = with maintainers; [ fgaz ];
     homepage = "https://github.com/alexozer/flitter";
     platforms = platforms.unix;
+    mainProgram = "flitter";
   };
 }
diff --git a/pkgs/tools/misc/flowgger/default.nix b/pkgs/tools/misc/flowgger/default.nix
index 44908d67bb9ef..c9517043adc96 100644
--- a/pkgs/tools/misc/flowgger/default.nix
+++ b/pkgs/tools/misc/flowgger/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     description = "A fast, simple and lightweight data collector written in Rust";
     license = licenses.bsd2;
     maintainers = with maintainers; [];
+    mainProgram = "flowgger";
   };
 }
diff --git a/pkgs/tools/misc/fltrdr/default.nix b/pkgs/tools/misc/fltrdr/default.nix
index 3e51a4c8bbc22..25cbf80593357 100644
--- a/pkgs/tools/misc/fltrdr/default.nix
+++ b/pkgs/tools/misc/fltrdr/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     platforms   = platforms.linux; # can only test linux
     license     = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
+    mainProgram = "fltrdr";
   };
 }
diff --git a/pkgs/tools/misc/font-config-info/default.nix b/pkgs/tools/misc/font-config-info/default.nix
index 89f0d9060386b..20133eb0df775 100644
--- a/pkgs/tools/misc/font-config-info/default.nix
+++ b/pkgs/tools/misc/font-config-info/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ bsd3 ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "font-config-info";
   };
 }
diff --git a/pkgs/tools/misc/fontfor/default.nix b/pkgs/tools/misc/fontfor/default.nix
index 73d1085450e8c..f870e01077016 100644
--- a/pkgs/tools/misc/fontfor/default.nix
+++ b/pkgs/tools/misc/fontfor/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "fontfor";
   };
 }
diff --git a/pkgs/tools/misc/fpp/default.nix b/pkgs/tools/misc/fpp/default.nix
index ff514ceafb20f..d8f575b1363b1 100644
--- a/pkgs/tools/misc/fpp/default.nix
+++ b/pkgs/tools/misc/fpp/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://facebook.github.io/PathPicker/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.all;
+    mainProgram = "fpp";
   };
 }
diff --git a/pkgs/tools/misc/fre/default.nix b/pkgs/tools/misc/fre/default.nix
index 92393eb4fc27a..b3bc0eadae0df 100644
--- a/pkgs/tools/misc/fre/default.nix
+++ b/pkgs/tools/misc/fre/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/camdencheek/fre/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gaykitty ];
+    mainProgram = "fre";
   };
 }
diff --git a/pkgs/tools/misc/freshfetch/default.nix b/pkgs/tools/misc/freshfetch/default.nix
index 89ec74b20258e..0723c18048b97 100644
--- a/pkgs/tools/misc/freshfetch/default.nix
+++ b/pkgs/tools/misc/freshfetch/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/k4rakara/freshfetch";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "freshfetch";
   };
 }
diff --git a/pkgs/tools/misc/fselect/default.nix b/pkgs/tools/misc/fselect/default.nix
index fbad5f05ad3a3..401de87d64fd1 100644
--- a/pkgs/tools/misc/fselect/default.nix
+++ b/pkgs/tools/misc/fselect/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jhspetersson/fselect";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "fselect";
   };
 }
diff --git a/pkgs/tools/misc/fsmark/default.nix b/pkgs/tools/misc/fsmark/default.nix
index 1a21156e64033..2c2aa2c6fef82 100644
--- a/pkgs/tools/misc/fsmark/default.nix
+++ b/pkgs/tools/misc/fsmark/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "fs_mark";
   };
 }
diff --git a/pkgs/tools/misc/fsmon/default.nix b/pkgs/tools/misc/fsmon/default.nix
index 6cde8a2150bee..f704de4f65157 100644
--- a/pkgs/tools/misc/fsmon/default.nix
+++ b/pkgs/tools/misc/fsmon/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "fsmon";
   };
 }
diff --git a/pkgs/tools/misc/fsql/default.nix b/pkgs/tools/misc/fsql/default.nix
index 4b92e885b6961..d9f3b3ae8f90e 100644
--- a/pkgs/tools/misc/fsql/default.nix
+++ b/pkgs/tools/misc/fsql/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/kshvmdn/fsql";
     license = licenses.mit;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "fsql";
   };
 }
diff --git a/pkgs/tools/misc/fsrx/default.nix b/pkgs/tools/misc/fsrx/default.nix
index ad1ad389f1be6..63f3b9728f1e0 100644
--- a/pkgs/tools/misc/fsrx/default.nix
+++ b/pkgs/tools/misc/fsrx/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/thatvegandev/fsrx";
     license = licenses.mit;
     maintainers = with maintainers; [ MoritzBoehme ];
+    mainProgram = "fsrx";
   };
 }
diff --git a/pkgs/tools/misc/fw/default.nix b/pkgs/tools/misc/fw/default.nix
index dc000a11295aa..99df87700747c 100644
--- a/pkgs/tools/misc/fw/default.nix
+++ b/pkgs/tools/misc/fw/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/brocode/fw";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "fw";
   };
 }
diff --git a/pkgs/tools/misc/fx-cast-bridge/default.nix b/pkgs/tools/misc/fx-cast-bridge/default.nix
index 5f2274101e56d..d2b8f27899f01 100644
--- a/pkgs/tools/misc/fx-cast-bridge/default.nix
+++ b/pkgs/tools/misc/fx-cast-bridge/default.nix
@@ -51,5 +51,6 @@ buildNpmPackage rec {
     homepage = "https://hensm.github.io/fx_cast/";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill pedrohlc ];
+    mainProgram = "fx_cast_bridge";
   };
 }
diff --git a/pkgs/tools/misc/fzy/default.nix b/pkgs/tools/misc/fzy/default.nix
index f726adb0d4629..b7186e08d3dbb 100644
--- a/pkgs/tools/misc/fzy/default.nix
+++ b/pkgs/tools/misc/fzy/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
     platforms = platforms.all;
+    mainProgram = "fzy";
   };
 }
diff --git a/pkgs/tools/misc/g203-led/default.nix b/pkgs/tools/misc/g203-led/default.nix
index 7290b57a32368..f2db4f58d5918 100644
--- a/pkgs/tools/misc/g203-led/default.nix
+++ b/pkgs/tools/misc/g203-led/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ r-burns ];
     homepage = "https://github.com/smasty/g203-led";
     platforms = platforms.linux;
+    mainProgram = "g203-led";
   };
 }
diff --git a/pkgs/tools/misc/g933-utils/default.nix b/pkgs/tools/misc/g933-utils/default.nix
index a2671f946b05d..de084fb74bf44 100644
--- a/pkgs/tools/misc/g933-utils/default.nix
+++ b/pkgs/tools/misc/g933-utils/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
     platforms = platforms.linux;
+    mainProgram = "g933-utils";
   };
 }
diff --git a/pkgs/tools/misc/gay/default.nix b/pkgs/tools/misc/gay/default.nix
index 42887f85c6c06..d1129702f867a 100644
--- a/pkgs/tools/misc/gay/default.nix
+++ b/pkgs/tools/misc/gay/default.nix
@@ -17,5 +17,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Colour your text / terminal to be more gay";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres CodeLongAndProsper90 ];
+    mainProgram = "gay";
   };
 }
diff --git a/pkgs/tools/misc/gazelle-origin/default.nix b/pkgs/tools/misc/gazelle-origin/default.nix
index 19955c56d02c9..924c0ba8df7b3 100644
--- a/pkgs/tools/misc/gazelle-origin/default.nix
+++ b/pkgs/tools/misc/gazelle-origin/default.nix
@@ -33,5 +33,6 @@ buildPythonApplication rec {
     # TODO license is unspecified in the upstream, as well as the fork
     license = licenses.unfree;
     maintainers = with maintainers; [ somasis ];
+    mainProgram = "gazelle-origin";
   };
 }
diff --git a/pkgs/tools/misc/gbdfed/default.nix b/pkgs/tools/misc/gbdfed/default.nix
index ded2864dbc644..0d709117b9247 100644
--- a/pkgs/tools/misc/gbdfed/default.nix
+++ b/pkgs/tools/misc/gbdfed/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.linquize ];
     platforms = lib.platforms.all;
+    mainProgram = "gbdfed";
   };
 }
diff --git a/pkgs/tools/misc/geteltorito/default.nix b/pkgs/tools/misc/geteltorito/default.nix
index be2de1167e3c7..5fb2209ee8c17 100644
--- a/pkgs/tools/misc/geteltorito/default.nix
+++ b/pkgs/tools/misc/geteltorito/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     homepage = "https://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/";
     maintainers = [ maintainers.Profpatsch ];
     license = licenses.gpl2;
+    mainProgram = "geteltorito";
   };
 
 }
diff --git a/pkgs/tools/misc/getopt/default.nix b/pkgs/tools/misc/getopt/default.nix
index 2090fcbd7aacf..6b6cbf66b13fb 100644
--- a/pkgs/tools/misc/getopt/default.nix
+++ b/pkgs/tools/misc/getopt/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.unix;
     homepage = "http://frodo.looijaard.name/project/getopt";
     description = "Parses command-line arguments from shell scripts";
+    mainProgram = "getopt";
   };
 }
diff --git a/pkgs/tools/misc/gh-actions-cache/default.nix b/pkgs/tools/misc/gh-actions-cache/default.nix
index 46fe8cb704d13..2575beabf82a2 100644
--- a/pkgs/tools/misc/gh-actions-cache/default.nix
+++ b/pkgs/tools/misc/gh-actions-cache/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/actions/gh-actions-cache/releases/tag/${src.rev}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-actions-cache";
   };
 }
diff --git a/pkgs/tools/misc/gh-cal/default.nix b/pkgs/tools/misc/gh-cal/default.nix
index 3e38cdf9d752a..98334e0afd55e 100644
--- a/pkgs/tools/misc/gh-cal/default.nix
+++ b/pkgs/tools/misc/gh-cal/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mrshmllow/gh-cal";
     license = licenses.mit;
     maintainers = with maintainers; [ loicreynier ];
+    mainProgram = "gh-cal";
   };
 }
diff --git a/pkgs/tools/misc/gh-dash/default.nix b/pkgs/tools/misc/gh-dash/default.nix
index 1fc865feef822..f2d7195bd3c13 100644
--- a/pkgs/tools/misc/gh-dash/default.nix
+++ b/pkgs/tools/misc/gh-dash/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://github.com/dlvhdr/gh-dash";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-dash";
   };
 }
diff --git a/pkgs/tools/misc/gh-eco/default.nix b/pkgs/tools/misc/gh-eco/default.nix
index 98f84659a40e7..329ef60c1b4e1 100644
--- a/pkgs/tools/misc/gh-eco/default.nix
+++ b/pkgs/tools/misc/gh-eco/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
     description = "gh extension to explore the ecosystem";
     license = licenses.mit;
     maintainers = with maintainers; [ helium ];
+    mainProgram = "gh-eco";
   };
 }
 
diff --git a/pkgs/tools/misc/gh-markdown-preview/default.nix b/pkgs/tools/misc/gh-markdown-preview/default.nix
index e4fe21fc09184..68f041dbbf2d4 100644
--- a/pkgs/tools/misc/gh-markdown-preview/default.nix
+++ b/pkgs/tools/misc/gh-markdown-preview/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     changelog = "https://github.com/yusukebe/gh-markdown-preview/releases/tag/${src.rev}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ amesgen ];
+    mainProgram = "gh-markdown-preview";
   };
 }
diff --git a/pkgs/tools/misc/gh-ost/default.nix b/pkgs/tools/misc/gh-ost/default.nix
index a43c6bb80f0b9..91798cfae8c9c 100644
--- a/pkgs/tools/misc/gh-ost/default.nix
+++ b/pkgs/tools/misc/gh-ost/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     description = "Triggerless online schema migration solution for MySQL";
     homepage = "https://github.com/github/gh-ost";
     license = licenses.mit;
+    mainProgram = "gh-ost";
   };
 }
diff --git a/pkgs/tools/misc/ghostie/default.nix b/pkgs/tools/misc/ghostie/default.nix
index 2bda5af2af306..0a4e1cb695e0d 100644
--- a/pkgs/tools/misc/ghostie/default.nix
+++ b/pkgs/tools/misc/ghostie/default.nix
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
     broken = stdenv.isx86_64 && stdenv.isDarwin;
+    mainProgram = "ghostie";
   };
 }
diff --git a/pkgs/tools/misc/gibo/default.nix b/pkgs/tools/misc/gibo/default.nix
index 6ee4698d750c4..edd166f00f565 100644
--- a/pkgs/tools/misc/gibo/default.nix
+++ b/pkgs/tools/misc/gibo/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.publicDomain;
     description = "A shell script for easily accessing gitignore boilerplates";
     platforms = lib.platforms.unix;
+    mainProgram = "gibo";
   };
 }
diff --git a/pkgs/tools/misc/gif-for-cli/default.nix b/pkgs/tools/misc/gif-for-cli/default.nix
index 61690b5f41a90..3a2ad84a44300 100644
--- a/pkgs/tools/misc/gif-for-cli/default.nix
+++ b/pkgs/tools/misc/gif-for-cli/default.nix
@@ -51,5 +51,6 @@ python3Packages.buildPythonApplication {
     homepage = "https://github.com/google/gif-for-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ Scriptkiddi ];
+    mainProgram = "gif-for-cli";
   };
 }
diff --git a/pkgs/tools/misc/gigalixir/default.nix b/pkgs/tools/misc/gigalixir/default.nix
index 916193f61ec00..0ba75bbc82b9a 100644
--- a/pkgs/tools/misc/gigalixir/default.nix
+++ b/pkgs/tools/misc/gigalixir/default.nix
@@ -60,5 +60,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/gigalixir/gigalixir-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "gigalixir";
   };
 }
diff --git a/pkgs/tools/misc/github-backup/default.nix b/pkgs/tools/misc/github-backup/default.nix
index a753eaf937425..ce16e2b788c13 100644
--- a/pkgs/tools/misc/github-backup/default.nix
+++ b/pkgs/tools/misc/github-backup/default.nix
@@ -28,5 +28,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/josegonzalez/python-github-backup/blob/${version}/CHANGES.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "github-backup";
   };
 }
diff --git a/pkgs/tools/misc/github-copilot-cli/default.nix b/pkgs/tools/misc/github-copilot-cli/default.nix
index a6c5e7477d496..445b288190583 100644
--- a/pkgs/tools/misc/github-copilot-cli/default.nix
+++ b/pkgs/tools/misc/github-copilot-cli/default.nix
@@ -23,6 +23,7 @@ buildNpmPackage rec {
     license = licenses.unfree; # upstream has no license
     maintainers = [ maintainers.malo ];
     platforms = platforms.all;
+    mainProgram = "github-copilot-cli";
   };
 }
 
diff --git a/pkgs/tools/misc/glasgow/default.nix b/pkgs/tools/misc/glasgow/default.nix
index 470f4016e5dd4..77f3eb01d96ad 100644
--- a/pkgs/tools/misc/glasgow/default.nix
+++ b/pkgs/tools/misc/glasgow/default.nix
@@ -77,5 +77,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/GlasgowEmbedded/Glasgow";
     license = licenses.bsd0;
     maintainers = with maintainers; [ emily thoughtpolice ];
+    mainProgram = "glasgow";
   };
 }
diff --git a/pkgs/tools/misc/go-ios/default.nix b/pkgs/tools/misc/go-ios/default.nix
index 3c8c3fe65b4a6..84b24e75e4787 100644
--- a/pkgs/tools/misc/go-ios/default.nix
+++ b/pkgs/tools/misc/go-ios/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/danielpaulus/go-ios";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
+    mainProgram = "ios";
   };
 }
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index b147935c4483f..f355d30290677 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ederoyd46 ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "goaccess";
   };
 }
diff --git a/pkgs/tools/misc/godu/default.nix b/pkgs/tools/misc/godu/default.nix
index f4e1fc1c4fbee..7bd29ed43661e 100644
--- a/pkgs/tools/misc/godu/default.nix
+++ b/pkgs/tools/misc/godu/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/viktomas/godu";
     license = licenses.mit;
     maintainers = with maintainers; [ rople380 ];
+    mainProgram = "godu";
   };
 }
diff --git a/pkgs/tools/misc/gomi/default.nix b/pkgs/tools/misc/gomi/default.nix
index 4f8a4875b3e5d..76ef724332e5f 100644
--- a/pkgs/tools/misc/gomi/default.nix
+++ b/pkgs/tools/misc/gomi/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/b4b4r07/gomi";
     license = licenses.mit;
     maintainers = with maintainers; [ ozkutuk ];
+    mainProgram = "gomi";
   };
 }
diff --git a/pkgs/tools/misc/goose/default.nix b/pkgs/tools/misc/goose/default.nix
index 8e163a3fb42b5..13de61b48e9d2 100644
--- a/pkgs/tools/misc/goose/default.nix
+++ b/pkgs/tools/misc/goose/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     homepage = "https://pressly.github.io/goose/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ yuka ];
+    mainProgram = "goose";
   };
 }
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index d5ab9a94b84bf..a3833e1a4f83d 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -57,5 +57,6 @@ buildGoModule rec {
       caarlos0
     ];
     license = licenses.mit;
+    mainProgram = "goreleaser";
   };
 }
diff --git a/pkgs/tools/misc/gotify-desktop/default.nix b/pkgs/tools/misc/gotify-desktop/default.nix
index c3c532ca85f7a..64d82def48a78 100644
--- a/pkgs/tools/misc/gotify-desktop/default.nix
+++ b/pkgs/tools/misc/gotify-desktop/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bryanasdev000 genofire ];
     broken = stdenv.isDarwin;
+    mainProgram = "gotify-desktop";
   };
 }
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index 278dced6b6440..1c16795d40bdd 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -57,5 +57,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gparted.org";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "gparted";
   };
 }
diff --git a/pkgs/tools/misc/gpick/default.nix b/pkgs/tools/misc/gpick/default.nix
index c7579802008b1..0d421212a3d44 100644
--- a/pkgs/tools/misc/gpick/default.nix
+++ b/pkgs/tools/misc/gpick/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.vanilla ];
     platforms = platforms.linux;
+    mainProgram = "gpick";
   };
 }
diff --git a/pkgs/tools/misc/grafterm/default.nix b/pkgs/tools/misc/grafterm/default.nix
index f21a8ba76fc5d..a15ab6e5ed0ff 100644
--- a/pkgs/tools/misc/grafterm/default.nix
+++ b/pkgs/tools/misc/grafterm/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/slok/grafterm";
     license = licenses.asl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "grafterm";
   };
 }
diff --git a/pkgs/tools/misc/grass-sass/default.nix b/pkgs/tools/misc/grass-sass/default.nix
index 5a9193873f1df..83cb03f90c1cf 100644
--- a/pkgs/tools/misc/grass-sass/default.nix
+++ b/pkgs/tools/misc/grass-sass/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/connorskees/grass/blob/master/CHANGELOG.md#${replaceStrings [ "." ] [ "" ] version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "grass";
   };
 }
diff --git a/pkgs/tools/misc/grit/default.nix b/pkgs/tools/misc/grit/default.nix
index 0b31627ece276..448224c9e9ad7 100644
--- a/pkgs/tools/misc/grit/default.nix
+++ b/pkgs/tools/misc/grit/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/climech/grit";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "grit";
   };
 }
diff --git a/pkgs/tools/misc/grizzly/default.nix b/pkgs/tools/misc/grizzly/default.nix
index a9b7bde2e7bd4..fa96cf1b1c059 100644
--- a/pkgs/tools/misc/grizzly/default.nix
+++ b/pkgs/tools/misc/grizzly/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ nrhtr ];
     platforms = platforms.unix;
+    mainProgram = "grr";
   };
 }
diff --git a/pkgs/tools/misc/gti/default.nix b/pkgs/tools/misc/gti/default.nix
index 0246421e7fdc7..b60abc97e92c7 100644
--- a/pkgs/tools/misc/gti/default.nix
+++ b/pkgs/tools/misc/gti/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     description = "Humorous typo-based git runner; drives a car over the terminal";
     maintainers = with maintainers; [ fadenb ];
     platforms = platforms.unix;
+    mainProgram = "gti";
   };
 }
diff --git a/pkgs/tools/misc/gwe/default.nix b/pkgs/tools/misc/gwe/default.nix
index 4a4b02b537061..e1576c3f9dc54 100644
--- a/pkgs/tools/misc/gwe/default.nix
+++ b/pkgs/tools/misc/gwe/default.nix
@@ -84,5 +84,6 @@ in stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl3Only;
     maintainers = [ maintainers.ivar ];
+    mainProgram = "gwe";
   };
 }
diff --git a/pkgs/tools/misc/hackertyper/default.nix b/pkgs/tools/misc/hackertyper/default.nix
index d72dd1798d5a1..da9af1eca922f 100644
--- a/pkgs/tools/misc/hackertyper/default.nix
+++ b/pkgs/tools/misc/hackertyper/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/Hurricane996/Hackertyper";
     license = licenses.gpl3;
     maintainers = [ maintainers.marius851000 ];
+    mainProgram = "hackertyper";
   };
 }
diff --git a/pkgs/tools/misc/hacksaw/default.nix b/pkgs/tools/misc/hacksaw/default.nix
index 6eecee46a380c..5532fa181f642 100644
--- a/pkgs/tools/misc/hacksaw/default.nix
+++ b/pkgs/tools/misc/hacksaw/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ TethysSvensson ];
     platforms = platforms.linux;
+    mainProgram = "hacksaw";
   };
 }
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
index bb7bf24cb659d..0ad8c5907a700 100644
--- a/pkgs/tools/misc/hakuneko/default.nix
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -93,5 +93,6 @@ stdenv.mkDerivation rec {
       "x86_64-linux"
       "i686-linux"
     ];
+    mainProgram = "hakuneko";
   };
 }
diff --git a/pkgs/tools/misc/halp/default.nix b/pkgs/tools/misc/halp/default.nix
index 89867fe7a9410..e88e23f7cfe7c 100644
--- a/pkgs/tools/misc/halp/default.nix
+++ b/pkgs/tools/misc/halp/default.nix
@@ -75,5 +75,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/orhun/halp/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "halp";
   };
 }
diff --git a/pkgs/tools/misc/handlr-regex/default.nix b/pkgs/tools/misc/handlr-regex/default.nix
index 15b993564ee42..7b6b886524cff 100644
--- a/pkgs/tools/misc/handlr-regex/default.nix
+++ b/pkgs/tools/misc/handlr-regex/default.nix
@@ -34,5 +34,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Anomalocaridid/handlr-regex";
     license = licenses.mit;
     maintainers = with maintainers; [ anomalocaris ];
+    mainProgram = "handlr";
   };
 }
diff --git a/pkgs/tools/misc/handlr/default.nix b/pkgs/tools/misc/handlr/default.nix
index 19f02cdd1b192..1022763b7540f 100644
--- a/pkgs/tools/misc/handlr/default.nix
+++ b/pkgs/tools/misc/handlr/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/chmln/handlr";
     license = licenses.mit;
     maintainers = with maintainers; [ mredaelli artturin ];
+    mainProgram = "handlr";
   };
 }
diff --git a/pkgs/tools/misc/hashpump/default.nix b/pkgs/tools/misc/hashpump/default.nix
index bc1f019ab72c2..11b0650d849d7 100644
--- a/pkgs/tools/misc/hashpump/default.nix
+++ b/pkgs/tools/misc/hashpump/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ t4ccer ];
     platforms = lib.platforms.linux;
+    mainProgram = "hashpump";
   };
 })
diff --git a/pkgs/tools/misc/haste-client/default.nix b/pkgs/tools/misc/haste-client/default.nix
index 905d4bedf5460..eb4b6f868294f 100644
--- a/pkgs/tools/misc/haste-client/default.nix
+++ b/pkgs/tools/misc/haste-client/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.mit;
     maintainers = with maintainers; [ shamilton ];
     platforms   = platforms.unix;
+    mainProgram = "haste";
   };
 }
diff --git a/pkgs/tools/misc/hdaps-gl/default.nix b/pkgs/tools/misc/hdaps-gl/default.nix
index 8ea863f464179..1999d9ad0d56f 100644
--- a/pkgs/tools/misc/hdaps-gl/default.nix
+++ b/pkgs/tools/misc/hdaps-gl/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.symphorien ];
+    mainProgram = "hdaps-gl";
   };
 }
diff --git a/pkgs/tools/misc/hddtemp/default.nix b/pkgs/tools/misc/hddtemp/default.nix
index 3939d60144d9e..3bdd7e84f3ab2 100644
--- a/pkgs/tools/misc/hddtemp/default.nix
+++ b/pkgs/tools/misc/hddtemp/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
+    mainProgram = "hddtemp";
   };
 }
diff --git a/pkgs/tools/misc/hdfview/default.nix b/pkgs/tools/misc/hdfview/default.nix
index 127d76ad560fa..b74e64386eb06 100644
--- a/pkgs/tools/misc/hdfview/default.nix
+++ b/pkgs/tools/misc/hdfview/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     homepage = "https://portal.hdfgroup.org/display/HDFVIEW/HDFView";
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
     maintainers = with lib.maintainers; [ jiegec ];
+    mainProgram = "HDFView";
   };
 }
diff --git a/pkgs/tools/misc/hebcal/default.nix b/pkgs/tools/misc/hebcal/default.nix
index 050cc63f6a5d5..80d52592c742a 100644
--- a/pkgs/tools/misc/hebcal/default.nix
+++ b/pkgs/tools/misc/hebcal/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.hhm ];
     platforms = platforms.all;
+    mainProgram = "hebcal";
   };
 }
diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
index 810413a7b09a2..422363ef418ab 100644
--- a/pkgs/tools/misc/heimdall/default.nix
+++ b/pkgs/tools/misc/heimdall/default.nix
@@ -50,5 +50,6 @@ mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "heimdall";
   };
 }
diff --git a/pkgs/tools/misc/hexd/default.nix b/pkgs/tools/misc/hexd/default.nix
index 510de6a8ee361..140db34350837 100644
--- a/pkgs/tools/misc/hexd/default.nix
+++ b/pkgs/tools/misc/hexd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.FireyFly ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "hexd";
   };
 }
diff --git a/pkgs/tools/misc/hexdiff/default.nix b/pkgs/tools/misc/hexdiff/default.nix
index 8205cfdd0ab4e..937a07bee78bc 100644
--- a/pkgs/tools/misc/hexdiff/default.nix
+++ b/pkgs/tools/misc/hexdiff/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ rogarb ];
     platforms = lib.platforms.linux;
+    mainProgram = "hexdiff";
   };
 }
diff --git a/pkgs/tools/misc/hexyl/default.nix b/pkgs/tools/misc/hexyl/default.nix
index 29a7b32ce3364..d502e84e56073 100644
--- a/pkgs/tools/misc/hexyl/default.nix
+++ b/pkgs/tools/misc/hexyl/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/hexyl/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir figsoda SuperSandro2000 ];
+    mainProgram = "hexyl";
   };
 }
diff --git a/pkgs/tools/misc/hhpc/default.nix b/pkgs/tools/misc/hhpc/default.nix
index 5f02121e59f54..71c39c68accec 100644
--- a/pkgs/tools/misc/hhpc/default.nix
+++ b/pkgs/tools/misc/hhpc/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nico202 ];
     platforms = platforms.unix;
     license = lib.licenses.bsd3;
+    mainProgram = "hhpc";
   };
 }
diff --git a/pkgs/tools/misc/hid-listen/default.nix b/pkgs/tools/misc/hid-listen/default.nix
index 1f69a3fe749bf..62c2d7beb2ff5 100644
--- a/pkgs/tools/misc/hid-listen/default.nix
+++ b/pkgs/tools/misc/hid-listen/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ tomsmeets ];
     platforms = platforms.linux;
+    mainProgram = "hid_listen";
   };
 }
diff --git a/pkgs/tools/misc/hidrd/default.nix b/pkgs/tools/misc/hidrd/default.nix
index 0c58a5e42f982..5ce3e969f2764 100644
--- a/pkgs/tools/misc/hidrd/default.nix
+++ b/pkgs/tools/misc/hidrd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ pacien ];
     platforms = platforms.all;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/hidrd.x86_64-darwin
+    mainProgram = "hidrd-convert";
   };
 }
diff --git a/pkgs/tools/misc/homesick/default.nix b/pkgs/tools/misc/homesick/default.nix
index 5cd11bc48d1f4..663990ffac805 100644
--- a/pkgs/tools/misc/homesick/default.nix
+++ b/pkgs/tools/misc/homesick/default.nix
@@ -24,5 +24,6 @@ bundlerEnv {
     license = licenses.mit;
     maintainers = with maintainers; [ aaronschif nicknovitski ];
     platforms = platforms.unix;
+    mainProgram = "homesick";
   };
 }
diff --git a/pkgs/tools/misc/hpcg/default.nix b/pkgs/tools/misc/hpcg/default.nix
index d6896527ad2a9..77621bd6f158e 100644
--- a/pkgs/tools/misc/hpcg/default.nix
+++ b/pkgs/tools/misc/hpcg/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.bsd3;
     maintainers = [ maintainers.markuskowa ];
+    mainProgram = "xhpcg";
   };
 }
 
diff --git a/pkgs/tools/misc/hpl/default.nix b/pkgs/tools/misc/hpl/default.nix
index c9a81ebb8a1bc..0521afc4ef26d 100644
--- a/pkgs/tools/misc/hpl/default.nix
+++ b/pkgs/tools/misc/hpl/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.bsdOriginal;
     maintainers = [ maintainers.markuskowa ];
+    mainProgram = "xhpl";
   };
 }
diff --git a/pkgs/tools/misc/html-proofer/default.nix b/pkgs/tools/misc/html-proofer/default.nix
index 73025a212b2a3..cc4f6f69f2633 100644
--- a/pkgs/tools/misc/html-proofer/default.nix
+++ b/pkgs/tools/misc/html-proofer/default.nix
@@ -16,5 +16,6 @@ bundlerEnv rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms   = platforms.unix;
+    mainProgram = "htmlproofer";
   };
 }
diff --git a/pkgs/tools/misc/hueadm/default.nix b/pkgs/tools/misc/hueadm/default.nix
index 393f4baa955b7..7eeb7b2eb7900 100644
--- a/pkgs/tools/misc/hueadm/default.nix
+++ b/pkgs/tools/misc/hueadm/default.nix
@@ -23,5 +23,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/bahamas10/hueadm";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ infinisil ];
+    mainProgram = "hueadm";
   };
 }
diff --git a/pkgs/tools/misc/hunt/default.nix b/pkgs/tools/misc/hunt/default.nix
index da466e7b98a76..38fbf9bc828d9 100644
--- a/pkgs/tools/misc/hunt/default.nix
+++ b/pkgs/tools/misc/hunt/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/LyonSyonII/hunt";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "hunt";
   };
 }
diff --git a/pkgs/tools/misc/hwatch/default.nix b/pkgs/tools/misc/hwatch/default.nix
index 6e3ad36af1634..2eb8be5d2f93e 100644
--- a/pkgs/tools/misc/hwatch/default.nix
+++ b/pkgs/tools/misc/hwatch/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ hamburger1984 ];
+    mainProgram = "hwatch";
   };
 }
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
index 420d1ae04edac..16de5fa76f3d2 100644
--- a/pkgs/tools/misc/hyperfine/default.nix
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/hyperfine/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda thoughtpolice ];
+    mainProgram = "hyperfine";
   };
 }
diff --git a/pkgs/tools/misc/i3nator/default.nix b/pkgs/tools/misc/i3nator/default.nix
index 99f0edeeafd73..4c62e4ca80507 100644
--- a/pkgs/tools/misc/i3nator/default.nix
+++ b/pkgs/tools/misc/i3nator/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/pitkley/i3nator";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ mpoquet ];
+    mainProgram = "i3nator";
   };
 }
diff --git a/pkgs/tools/misc/iay/default.nix b/pkgs/tools/misc/iay/default.nix
index d48e48cc83b50..1ef3d332e75d2 100644
--- a/pkgs/tools/misc/iay/default.nix
+++ b/pkgs/tools/misc/iay/default.nix
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/aaqaishtyaq/iay";
     license = licenses.mit;
     maintainers = with maintainers; [ aaqaishtyaq omasanori ];
+    mainProgram = "iay";
   };
 }
diff --git a/pkgs/tools/misc/ibus-theme-tools/default.nix b/pkgs/tools/misc/ibus-theme-tools/default.nix
index ee8a8719d1397..05c56edd36978 100644
--- a/pkgs/tools/misc/ibus-theme-tools/default.nix
+++ b/pkgs/tools/misc/ibus-theme-tools/default.nix
@@ -25,5 +25,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hollowman6 ];
     homepage = "https://github.com/openSUSE/IBus-Theme-Tools";
+    mainProgram = "ibus-theme-tools";
   };
 }
diff --git a/pkgs/tools/misc/ical2orgpy/default.nix b/pkgs/tools/misc/ical2orgpy/default.nix
index e9397e14430f7..ac5607b4a819f 100644
--- a/pkgs/tools/misc/ical2orgpy/default.nix
+++ b/pkgs/tools/misc/ical2orgpy/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/ical2org-py/ical2org.py";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ StillerHarpo ];
+    mainProgram = "ical2orgpy";
   };
 
 }
diff --git a/pkgs/tools/misc/ictree/default.nix b/pkgs/tools/misc/ictree/default.nix
index 16093dbc4d55f..c8ffdc090c20c 100644
--- a/pkgs/tools/misc/ictree/default.nix
+++ b/pkgs/tools/misc/ictree/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/NikitaIvanovV/ictree";
     platforms = platforms.unix;
     maintainers = with maintainers; [ foo-dogsquared ];
+    mainProgram = "ictree";
   };
 }
diff --git a/pkgs/tools/misc/ideviceinstaller/default.nix b/pkgs/tools/misc/ideviceinstaller/default.nix
index 84f1d440c586e..63bb1e7cb0fc3 100644
--- a/pkgs/tools/misc/ideviceinstaller/default.nix
+++ b/pkgs/tools/misc/ideviceinstaller/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ aristid infinisil ];
+    mainProgram = "ideviceinstaller";
   };
 }
diff --git a/pkgs/tools/misc/idevicerestore/default.nix b/pkgs/tools/misc/idevicerestore/default.nix
index 55b2918aa9bac..55fa9fcda8ba6 100644
--- a/pkgs/tools/misc/idevicerestore/default.nix
+++ b/pkgs/tools/misc/idevicerestore/default.nix
@@ -61,5 +61,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ nh2 ];
+    mainProgram = "idevicerestore";
   };
 }
diff --git a/pkgs/tools/misc/ikill/default.nix b/pkgs/tools/misc/ikill/default.nix
index 8ca69f8b44109..b5c18e5dfd975 100644
--- a/pkgs/tools/misc/ikill/default.nix
+++ b/pkgs/tools/misc/ikill/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ zendo ];
     license = [ licenses.mit ];
     platforms = platforms.linux;
+    mainProgram = "ikill";
   };
 }
diff --git a/pkgs/tools/misc/ili2c/default.nix b/pkgs/tools/misc/ili2c/default.nix
index 8e748efe7b4eb..f34c73d3b0f7a 100644
--- a/pkgs/tools/misc/ili2c/default.nix
+++ b/pkgs/tools/misc/ili2c/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.das-g ];
     platforms = platforms.linux;
+    mainProgram = "ili2c";
   };
 }
diff --git a/pkgs/tools/misc/infracost/default.nix b/pkgs/tools/misc/infracost/default.nix
index 7fc02624db6a7..6b0f4edd5a778 100644
--- a/pkgs/tools/misc/infracost/default.nix
+++ b/pkgs/tools/misc/infracost/default.nix
@@ -63,5 +63,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ davegallant jk kashw2 ];
+    mainProgram = "infracost";
   };
 }
diff --git a/pkgs/tools/misc/ink/default.nix b/pkgs/tools/misc/ink/default.nix
index 87173c9537913..30df6e9691fad 100644
--- a/pkgs/tools/misc/ink/default.nix
+++ b/pkgs/tools/misc/ink/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux ++ platforms.freebsd;
     maintainers = with maintainers; [ samb96 ];
+    mainProgram = "ink";
   };
 }
diff --git a/pkgs/tools/misc/inklingreader/default.nix b/pkgs/tools/misc/inklingreader/default.nix
index 8710da482a655..efe1eeb34aebc 100644
--- a/pkgs/tools/misc/inklingreader/default.nix
+++ b/pkgs/tools/misc/inklingreader/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ totoroot ];
     platforms = lib.platforms.linux;
+    mainProgram = "inklingreader";
   };
 }
diff --git a/pkgs/tools/misc/inspec/default.nix b/pkgs/tools/misc/inspec/default.nix
index f9108c7af6bd2..759b1fcaed874 100644
--- a/pkgs/tools/misc/inspec/default.nix
+++ b/pkgs/tools/misc/inspec/default.nix
@@ -15,5 +15,6 @@ bundlerApp {
     homepage = "https://inspec.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "inspec";
   };
 }
diff --git a/pkgs/tools/misc/instaloader/default.nix b/pkgs/tools/misc/instaloader/default.nix
index 7f9a33927db95..634693f6144be 100644
--- a/pkgs/tools/misc/instaloader/default.nix
+++ b/pkgs/tools/misc/instaloader/default.nix
@@ -32,5 +32,6 @@ buildPythonPackage rec {
     description = "Download pictures (or videos) along with their captions and other metadata from Instagram";
     maintainers = with maintainers; [ creator54 ];
     license = licenses.mit;
+    mainProgram = "instaloader";
   };
 }
diff --git a/pkgs/tools/misc/invoice/default.nix b/pkgs/tools/misc/invoice/default.nix
index cffdec4063e38..ea7ce5c2205a7 100644
--- a/pkgs/tools/misc/invoice/default.nix
+++ b/pkgs/tools/misc/invoice/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/maaslalani/invoice";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "invoice";
   };
 }
diff --git a/pkgs/tools/misc/iotools/default.nix b/pkgs/tools/misc/iotools/default.nix
index 12411aac6c6f5..17330d9c19cb7 100644
--- a/pkgs/tools/misc/iotools/default.nix
+++ b/pkgs/tools/misc/iotools/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ felixsinger ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "iotools";
   };
 }
diff --git a/pkgs/tools/misc/ipad_charge/default.nix b/pkgs/tools/misc/ipad_charge/default.nix
index d92961be9c5ad..fdbab82aabcdc 100644
--- a/pkgs/tools/misc/ipad_charge/default.nix
+++ b/pkgs/tools/misc/ipad_charge/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "ipad_charge";
   };
 }
diff --git a/pkgs/tools/misc/ipbt/default.nix b/pkgs/tools/misc/ipbt/default.nix
index 25dad59c9fef9..3b9b6d1496ee3 100644
--- a/pkgs/tools/misc/ipbt/default.nix
+++ b/pkgs/tools/misc/ipbt/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.tckmn ];
     platforms = platforms.unix;
+    mainProgram = "ipbt";
   };
 }
diff --git a/pkgs/tools/misc/ised/default.nix b/pkgs/tools/misc/ised/default.nix
index 9032a2d245146..9f6b716b42930 100644
--- a/pkgs/tools/misc/ised/default.nix
+++ b/pkgs/tools/misc/ised/default.nix
@@ -13,5 +13,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ raskin ];
     platforms = with lib.platforms; linux;
     license = lib.licenses.gpl3Plus;
+    mainProgram = "ised";
   };
 }
diff --git a/pkgs/tools/misc/isoimagewriter/default.nix b/pkgs/tools/misc/isoimagewriter/default.nix
index e7ce4fd79acec..28c0ddd5f889a 100644
--- a/pkgs/tools/misc/isoimagewriter/default.nix
+++ b/pkgs/tools/misc/isoimagewriter/default.nix
@@ -26,5 +26,6 @@ mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ k900 ];
+    mainProgram = "isoimagewriter";
   };
 }
diff --git a/pkgs/tools/misc/ix/default.nix b/pkgs/tools/misc/ix/default.nix
index e3fc85406e8ea..52781f8a08bb3 100644
--- a/pkgs/tools/misc/ix/default.nix
+++ b/pkgs/tools/misc/ix/default.nix
@@ -32,5 +32,6 @@ resholve.mkDerivation {
     description = "Command line pastebin";
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.all;
+    mainProgram = "ix";
   };
 }
diff --git a/pkgs/tools/misc/jdiskreport/default.nix b/pkgs/tools/misc/jdiskreport/default.nix
index 57441e645df26..6490d68ce0b77 100644
--- a/pkgs/tools/misc/jdiskreport/default.nix
+++ b/pkgs/tools/misc/jdiskreport/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfreeRedistributable; #TODO freedist, libs under BSD-3
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ kylesferrazza ];
+    mainProgram = "jdiskreport";
   };
 }
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index 72970d2dc9b45..cb81ef9a9983f 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -62,5 +62,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jbruchon/jdupes";
     license = licenses.mit;
     maintainers = with maintainers; [ romildo ];
+    mainProgram = "jdupes";
   };
 }
diff --git a/pkgs/tools/misc/journaldriver/default.nix b/pkgs/tools/misc/journaldriver/default.nix
index bf835e8bcff66..a5174c4b309e2 100644
--- a/pkgs/tools/misc/journaldriver/default.nix
+++ b/pkgs/tools/misc/journaldriver/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.tazjin ];
     platforms = platforms.linux;
+    mainProgram = "journaldriver";
   };
 }
diff --git a/pkgs/tools/misc/jsonwatch/default.nix b/pkgs/tools/misc/jsonwatch/default.nix
index 11e2e2d0e8d10..2f0e3b89149cc 100644
--- a/pkgs/tools/misc/jsonwatch/default.nix
+++ b/pkgs/tools/misc/jsonwatch/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ fab ];
     # never built on aarch64-darwin since first introduction in nixpkgs
     broken = stdenv.isDarwin && stdenv.isAarch64;
+    mainProgram = "jsonwatch";
   };
 }
diff --git a/pkgs/tools/misc/jstest-gtk/default.nix b/pkgs/tools/misc/jstest-gtk/default.nix
index 6824753c73ce5..1b201396b7ad7 100644
--- a/pkgs/tools/misc/jstest-gtk/default.nix
+++ b/pkgs/tools/misc/jstest-gtk/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wucke13 ];
     platforms = platforms.linux;
+    mainProgram = "jstest-gtk";
   };
 }
diff --git a/pkgs/tools/misc/jugglinglab/default.nix b/pkgs/tools/misc/jugglinglab/default.nix
index ccacd89a85b0b..9d552072f7dff 100644
--- a/pkgs/tools/misc/jugglinglab/default.nix
+++ b/pkgs/tools/misc/jugglinglab/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
       license = licenses.gpl2;
       maintainers = with maintainers; [ wnklmnn ];
       platforms = platforms.all;
+      mainProgram = "jugglinglab";
   };
 }
diff --git a/pkgs/tools/misc/kak-lsp/default.nix b/pkgs/tools/misc/kak-lsp/default.nix
index baa2bb81791b3..f99789dfc1c10 100644
--- a/pkgs/tools/misc/kak-lsp/default.nix
+++ b/pkgs/tools/misc/kak-lsp/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/kak-lsp/kak-lsp";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = [ maintainers.spacekookie ];
+    mainProgram = "kak-lsp";
   };
 }
diff --git a/pkgs/tools/misc/kalker/default.nix b/pkgs/tools/misc/kalker/default.nix
index b076ab351d733..2df69dd8f252e 100644
--- a/pkgs/tools/misc/kalker/default.nix
+++ b/pkgs/tools/misc/kalker/default.nix
@@ -44,5 +44,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda lovesegfault ];
+    mainProgram = "kalker";
   };
 }
diff --git a/pkgs/tools/misc/kargo/default.nix b/pkgs/tools/misc/kargo/default.nix
index 91fcbf43ed886..2097d47aa1ba2 100644
--- a/pkgs/tools/misc/kargo/default.nix
+++ b/pkgs/tools/misc/kargo/default.nix
@@ -34,5 +34,6 @@ buildPythonApplication rec {
     platforms = platforms.all;
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "kargo";
   };
 }
diff --git a/pkgs/tools/misc/kb/default.nix b/pkgs/tools/misc/kb/default.nix
index 76db4d7deca4d..85a72adebcddc 100644
--- a/pkgs/tools/misc/kb/default.nix
+++ b/pkgs/tools/misc/kb/default.nix
@@ -54,5 +54,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/gnebbia/kb/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wesleyjrz ];
+    mainProgram = "kb";
   };
 }
diff --git a/pkgs/tools/misc/kcollectd/default.nix b/pkgs/tools/misc/kcollectd/default.nix
index e38cb6f5a7911..a5c1039274a4d 100644
--- a/pkgs/tools/misc/kcollectd/default.nix
+++ b/pkgs/tools/misc/kcollectd/default.nix
@@ -52,5 +52,6 @@ mkDerivation rec {
     maintainers = [ maintainers.symphorien ];
     license = [ lib.licenses.gpl3Plus ];
     platforms = lib.platforms.linux;
+    mainProgram = "kcollectd";
   };
 }
diff --git a/pkgs/tools/misc/keychain/default.nix b/pkgs/tools/misc/keychain/default.nix
index dacffc30a2d4b..edb0bc34e776b 100644
--- a/pkgs/tools/misc/keychain/default.nix
+++ b/pkgs/tools/misc/keychain/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sigma ];
+    mainProgram = "keychain";
   };
 }
diff --git a/pkgs/tools/misc/keymapviz/default.nix b/pkgs/tools/misc/keymapviz/default.nix
index b02bb0a00fefb..6ed68a43b31f2 100644
--- a/pkgs/tools/misc/keymapviz/default.nix
+++ b/pkgs/tools/misc/keymapviz/default.nix
@@ -18,5 +18,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/yskoht/keymapviz";
     license = licenses.mit;
     maintainers = with maintainers; [ lom ];
+    mainProgram = "keymapviz";
   };
 }
diff --git a/pkgs/tools/misc/kicli/default.nix b/pkgs/tools/misc/kicli/default.nix
index 76516f4e4ac31..61eb8fe28ae60 100644
--- a/pkgs/tools/misc/kicli/default.nix
+++ b/pkgs/tools/misc/kicli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ poelzi ];
     platforms = platforms.all;
+    mainProgram = "kicli";
   };
 }
diff --git a/pkgs/tools/misc/killport/default.nix b/pkgs/tools/misc/killport/default.nix
index 714beb78dccd4..fa906506fff1e 100644
--- a/pkgs/tools/misc/killport/default.nix
+++ b/pkgs/tools/misc/killport/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jkfran/killport";
     license = licenses.mit;
     maintainers = with maintainers; [ sno2wman ];
+    mainProgram = "killport";
   };
 }
diff --git a/pkgs/tools/misc/kitty-img/default.nix b/pkgs/tools/misc/kitty-img/default.nix
index 75a2b81d7d752..c47c4e6fc80de 100644
--- a/pkgs/tools/misc/kitty-img/default.nix
+++ b/pkgs/tools/misc/kitty-img/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://git.sr.ht/~zethra/kitty-img/refs/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gaykitty ];
+    mainProgram = "kitty-img";
   };
 }
diff --git a/pkgs/tools/misc/krapslog/default.nix b/pkgs/tools/misc/krapslog/default.nix
index 6ac7233d9d1f6..909d047f834af 100644
--- a/pkgs/tools/misc/krapslog/default.nix
+++ b/pkgs/tools/misc/krapslog/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/acj/krapslog-rs";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ yanganto ];
+    mainProgram = "krapslog";
   };
 }
diff --git a/pkgs/tools/misc/kronometer/default.nix b/pkgs/tools/misc/kronometer/default.nix
index 828f0d80c11c4..06fafedf42ef4 100644
--- a/pkgs/tools/misc/kronometer/default.nix
+++ b/pkgs/tools/misc/kronometer/default.nix
@@ -18,6 +18,7 @@ mkDerivation rec {
     description = "A stopwatch application";
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "kronometer";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [ kconfig kcrash kinit ];
diff --git a/pkgs/tools/misc/ksnip/default.nix b/pkgs/tools/misc/ksnip/default.nix
index bae675b49599a..60ba06a299305 100644
--- a/pkgs/tools/misc/ksnip/default.nix
+++ b/pkgs/tools/misc/ksnip/default.nix
@@ -73,5 +73,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ x3ro ];
     platforms = platforms.linux;
+    mainProgram = "ksnip";
   };
 }
diff --git a/pkgs/tools/misc/kt/default.nix b/pkgs/tools/misc/kt/default.nix
index af837ee3cebb0..2e0bfbc1b1021 100644
--- a/pkgs/tools/misc/kt/default.nix
+++ b/pkgs/tools/misc/kt/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ utdemir ];
     platforms = with platforms; unix;
     license = licenses.mit;
+    mainProgram = "kt";
   };
 }
diff --git a/pkgs/tools/misc/lavat/default.nix b/pkgs/tools/misc/lavat/default.nix
index f63bfdffa3357..f582157777b7c 100644
--- a/pkgs/tools/misc/lavat/default.nix
+++ b/pkgs/tools/misc/lavat/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     homepage = "https://github.com/AngelJumbo/lavat";
     platforms = platforms.all;
+    mainProgram = "lavat";
   };
 }
diff --git a/pkgs/tools/misc/lazycli/default.nix b/pkgs/tools/misc/lazycli/default.nix
index d3ef8192b38b5..70b5f345690ee 100644
--- a/pkgs/tools/misc/lazycli/default.nix
+++ b/pkgs/tools/misc/lazycli/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jesseduffield/lazycli";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lazycli";
   };
 }
diff --git a/pkgs/tools/misc/lazydocker/default.nix b/pkgs/tools/misc/lazydocker/default.nix
index 353402658db92..59a6ad16ce9d5 100644
--- a/pkgs/tools/misc/lazydocker/default.nix
+++ b/pkgs/tools/misc/lazydocker/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     homepage = "https://github.com/jesseduffield/lazydocker";
     license = licenses.mit;
     maintainers = with maintainers; [ das-g Br1ght0ne ];
+    mainProgram = "lazydocker";
   };
 }
diff --git a/pkgs/tools/misc/ldapvi/default.nix b/pkgs/tools/misc/ldapvi/default.nix
index 2b9ba694d3f62..4be3b9e9024c3 100644
--- a/pkgs/tools/misc/ldapvi/default.nix
+++ b/pkgs/tools/misc/ldapvi/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
     platforms = lib.platforms.linux;
+    mainProgram = "ldapvi";
   };
 }
diff --git a/pkgs/tools/misc/ldmtool/default.nix b/pkgs/tools/misc/ldmtool/default.nix
index 51e3a77d8d68d..6a1527ea8fe2e 100644
--- a/pkgs/tools/misc/ldmtool/default.nix
+++ b/pkgs/tools/misc/ldmtool/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ jensbin ];
     license = licenses.gpl3;
     platforms = platforms.linux;
+    mainProgram = "ldmtool";
   };
 }
diff --git a/pkgs/tools/misc/leanify/default.nix b/pkgs/tools/misc/leanify/default.nix
index bcb936694fd74..8a6cfbe338272 100644
--- a/pkgs/tools/misc/leanify/default.nix
+++ b/pkgs/tools/misc/leanify/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.mynacol ];
     platforms = platforms.all;
+    mainProgram = "leanify";
   };
 }
diff --git a/pkgs/tools/misc/ledit/default.nix b/pkgs/tools/misc/ledit/default.nix
index 01810ceaf2f4c..e6470ea3fb8c2 100644
--- a/pkgs/tools/misc/ledit/default.nix
+++ b/pkgs/tools/misc/ledit/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation {
     description = "A line editor, allowing to use shell commands with control characters like in emacs";
     license = licenses.bsd3;
     maintainers = [ maintainers.delta ];
+    mainProgram = "ledit";
   };
 }
diff --git a/pkgs/tools/misc/lemmeknow/default.nix b/pkgs/tools/misc/lemmeknow/default.nix
index f18b741d11497..aa5c3786831a8 100644
--- a/pkgs/tools/misc/lemmeknow/default.nix
+++ b/pkgs/tools/misc/lemmeknow/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/swanandx/lemmeknow/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda Br1ght0ne ];
+    mainProgram = "lemmeknow";
   };
 }
diff --git a/pkgs/tools/misc/lemmy-help/default.nix b/pkgs/tools/misc/lemmy-help/default.nix
index 7cb5e2ddfd234..8c0f7110226e5 100644
--- a/pkgs/tools/misc/lemmy-help/default.nix
+++ b/pkgs/tools/misc/lemmy-help/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/numToStr/lemmy-help/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lemmy-help";
   };
 }
diff --git a/pkgs/tools/misc/lerpn/default.nix b/pkgs/tools/misc/lerpn/default.nix
index 24ada72baa555..8e35a5b0b1079 100644
--- a/pkgs/tools/misc/lerpn/default.nix
+++ b/pkgs/tools/misc/lerpn/default.nix
@@ -29,5 +29,6 @@ python3.pkgs.buildPythonApplication {
     description = "Curses RPN calculator written in straight Python";
     maintainers = with maintainers; [ ckie ];
     license = licenses.gpl3Plus;
+    mainProgram = "lerpn";
   };
 }
diff --git a/pkgs/tools/misc/libgen-cli/default.nix b/pkgs/tools/misc/libgen-cli/default.nix
index eb01d43344752..5ef65e1370361 100644
--- a/pkgs/tools/misc/libgen-cli/default.nix
+++ b/pkgs/tools/misc/libgen-cli/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ zaninime ];
+    mainProgram = "libgen-cli";
   };
 }
diff --git a/pkgs/tools/misc/librespeed-cli/default.nix b/pkgs/tools/misc/librespeed-cli/default.nix
index 175deef985e30..8751d9ab43d4d 100644
--- a/pkgs/tools/misc/librespeed-cli/default.nix
+++ b/pkgs/tools/misc/librespeed-cli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/librespeed/speedtest-cli";
     license = with licenses; [ lgpl3Only ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "speedtest-cli";
   };
 }
diff --git a/pkgs/tools/misc/lice/default.nix b/pkgs/tools/misc/lice/default.nix
index 59b2cef38ad0e..f873907c51efd 100644
--- a/pkgs/tools/misc/lice/default.nix
+++ b/pkgs/tools/misc/lice/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ swflint ];
     platforms = platforms.unix;
+    mainProgram = "lice";
   };
 
 }
diff --git a/pkgs/tools/misc/license-generator/default.nix b/pkgs/tools/misc/license-generator/default.nix
index 5662b356f34eb..2aa2235e7c3cc 100644
--- a/pkgs/tools/misc/license-generator/default.nix
+++ b/pkgs/tools/misc/license-generator/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/azu/license-generator";
     license = licenses.mit;
     maintainers = with maintainers; [ loicreynier ];
+    mainProgram = "license-generator";
   };
 }
diff --git a/pkgs/tools/misc/lighthouse-steamvr/default.nix b/pkgs/tools/misc/lighthouse-steamvr/default.nix
index 5328c14cdbfe5..4ddd33ff18722 100644
--- a/pkgs/tools/misc/lighthouse-steamvr/default.nix
+++ b/pkgs/tools/misc/lighthouse-steamvr/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ShayBox/Lighthouse";
     license = licenses.mit;
     maintainers = with maintainers; [ expipiplus1 bddvlpr ];
+    mainProgram = "lighthouse";
   };
 }
diff --git a/pkgs/tools/misc/limitcpu/default.nix b/pkgs/tools/misc/limitcpu/default.nix
index e9649b4be6594..830eed9d94ae3 100644
--- a/pkgs/tools/misc/limitcpu/default.nix
+++ b/pkgs/tools/misc/limitcpu/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux ++ freebsd;
     license = licenses.gpl2;
     maintainers = [maintainers.rycee];
+    mainProgram = "cpulimit";
   };
 }
diff --git a/pkgs/tools/misc/lineselect/default.nix b/pkgs/tools/misc/lineselect/default.nix
index ff3aeedcf93d9..a99908b2e70ef 100644
--- a/pkgs/tools/misc/lineselect/default.nix
+++ b/pkgs/tools/misc/lineselect/default.nix
@@ -33,5 +33,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/chfritz/lineselect";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lineselect";
   };
 }
diff --git a/pkgs/tools/misc/lipl/default.nix b/pkgs/tools/misc/lipl/default.nix
index 2ce54451bb8db..1f6b8437af301 100644
--- a/pkgs/tools/misc/lipl/default.nix
+++ b/pkgs/tools/misc/lipl/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/yxdunc/lipl";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lipl";
   };
 }
diff --git a/pkgs/tools/misc/livedl/default.nix b/pkgs/tools/misc/livedl/default.nix
index f5c68be68d604..6db5006959339 100644
--- a/pkgs/tools/misc/livedl/default.nix
+++ b/pkgs/tools/misc/livedl/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ wakira ];
     platforms = platforms.linux ++ platforms.darwin;
     broken = stdenv.isDarwin; # build fails with go > 1.17
+    mainProgram = "livedl";
   };
 }
diff --git a/pkgs/tools/misc/lnav/default.nix b/pkgs/tools/misc/lnav/default.nix
index 5f116711aa800..ffaea930b5d33 100644
--- a/pkgs/tools/misc/lnav/default.nix
+++ b/pkgs/tools/misc/lnav/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ dochang ];
     platforms = platforms.unix;
+    mainProgram = "lnav";
   };
 
 }
diff --git a/pkgs/tools/misc/lnch/default.nix b/pkgs/tools/misc/lnch/default.nix
index 70d52d2ea8bd5..30759303efbd6 100644
--- a/pkgs/tools/misc/lnch/default.nix
+++ b/pkgs/tools/misc/lnch/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/oem/lnch";
     description = "Launches a process and moves it out of the process group";
     license = licenses.mit;
+    mainProgram = "lnch";
   };
 }
diff --git a/pkgs/tools/misc/loadlibrary/default.nix b/pkgs/tools/misc/loadlibrary/default.nix
index a299a85b6b822..f919facf21b42 100644
--- a/pkgs/tools/misc/loadlibrary/default.nix
+++ b/pkgs/tools/misc/loadlibrary/default.nix
@@ -27,5 +27,6 @@ stdenv_32bit.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.eleanor ];
     license = licenses.gpl2;
+    mainProgram = "mpclient";
   };
 }
diff --git a/pkgs/tools/misc/locate-dominating-file/default.nix b/pkgs/tools/misc/locate-dominating-file/default.nix
index 7e0d0664b563e..6d599440a8e3a 100644
--- a/pkgs/tools/misc/locate-dominating-file/default.nix
+++ b/pkgs/tools/misc/locate-dominating-file/default.nix
@@ -63,5 +63,6 @@ resholve.mkDerivation {
     license = licenses.mit;
     maintainers = [ maintainers.roman ];
     platforms = platforms.all;
+    mainProgram = "locate-dominating-file";
   };
 }
diff --git a/pkgs/tools/misc/logtop/default.nix b/pkgs/tools/misc/logtop/default.nix
index 0aa99fd18aa75..ff0b3cdac0003 100644
--- a/pkgs/tools/misc/logtop/default.nix
+++ b/pkgs/tools/misc/logtop/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/JulienPalard/logtop";
     platforms = platforms.unix;
     maintainers = [ maintainers.starcraft66 ];
+    mainProgram = "logtop";
   };
 }
diff --git a/pkgs/tools/misc/lolcat/default.nix b/pkgs/tools/misc/lolcat/default.nix
index f62be23108eb6..a10c81416053d 100644
--- a/pkgs/tools/misc/lolcat/default.nix
+++ b/pkgs/tools/misc/lolcat/default.nix
@@ -12,5 +12,6 @@ bundlerApp {
     homepage    = "https://github.com/busyloop/lolcat";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ StillerHarpo manveru nicknovitski ];
+    mainProgram = "lolcat";
   };
 }
diff --git a/pkgs/tools/misc/lorri/default.nix b/pkgs/tools/misc/lorri/default.nix
index aabc9d0e773fa..a2cd0ef600d15 100644
--- a/pkgs/tools/misc/lorri/default.nix
+++ b/pkgs/tools/misc/lorri/default.nix
@@ -68,5 +68,6 @@ in (rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/target/lorri";
     license = licenses.asl20;
     maintainers = with maintainers; [ grahamc Profpatsch ];
+    mainProgram = "lorri";
   };
 })
diff --git a/pkgs/tools/misc/lottieconverter/default.nix b/pkgs/tools/misc/lottieconverter/default.nix
index e7ee6e9b74f2e..557ac293aaa26 100644
--- a/pkgs/tools/misc/lottieconverter/default.nix
+++ b/pkgs/tools/misc/lottieconverter/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = with maintainers; [ CRTified nickcao ];
+    mainProgram = "lottieconverter";
   };
 })
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index 83d7580a7eed7..99dee32424fa9 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -48,5 +48,6 @@ rustPlatform.buildRustPackage rec {
     description = "The next gen ls command";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam zowoq SuperSandro2000 ];
+    mainProgram = "lsd";
   };
 }
diff --git a/pkgs/tools/misc/ltunify/default.nix b/pkgs/tools/misc/ltunify/default.nix
index df425162d8479..b85e3da4a5c0d 100644
--- a/pkgs/tools/misc/ltunify/default.nix
+++ b/pkgs/tools/misc/ltunify/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
+    mainProgram = "ltunify";
   };
 }
diff --git a/pkgs/tools/misc/lwc/default.nix b/pkgs/tools/misc/lwc/default.nix
index f4c2e57eef488..77e6d5033f31e 100644
--- a/pkgs/tools/misc/lwc/default.nix
+++ b/pkgs/tools/misc/lwc/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/timdp/lwc";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "lwc";
   };
 }
diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix
index 0bde6b5baf547..3da4d9b07fbb3 100644
--- a/pkgs/tools/misc/macchina/default.nix
+++ b/pkgs/tools/misc/macchina/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Macchina-CLI/macchina/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ _414owen figsoda ];
+    mainProgram = "macchina";
   };
 }
diff --git a/pkgs/tools/misc/mailman-rss/default.nix b/pkgs/tools/misc/mailman-rss/default.nix
index 93a3d1e16ac20..d71ee8795528c 100644
--- a/pkgs/tools/misc/mailman-rss/default.nix
+++ b/pkgs/tools/misc/mailman-rss/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/kyamagu/mailman-rss";
     license = licenses.mit;
     maintainers = with maintainers; [ samueldr ];
+    mainProgram = "mailman-rss";
   };
 }
diff --git a/pkgs/tools/misc/makebootfat/default.nix b/pkgs/tools/misc/makebootfat/default.nix
index d55b5727d00cb..b2e93bb140ad6 100644
--- a/pkgs/tools/misc/makebootfat/default.nix
+++ b/pkgs/tools/misc/makebootfat/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.ehmry ];
     platforms = platforms.linux;
+    mainProgram = "makebootfat";
   };
 }
diff --git a/pkgs/tools/misc/mandown/default.nix b/pkgs/tools/misc/mandown/default.nix
index 4851c764d0eb0..308605e1172fe 100644
--- a/pkgs/tools/misc/mandown/default.nix
+++ b/pkgs/tools/misc/mandown/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/kornelski/mandown";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ ];
+    mainProgram = "mandown";
   };
 }
diff --git a/pkgs/tools/misc/manga-cli/default.nix b/pkgs/tools/misc/manga-cli/default.nix
index 3f57b529e51ad..65d45cf60e3c0 100644
--- a/pkgs/tools/misc/manga-cli/default.nix
+++ b/pkgs/tools/misc/manga-cli/default.nix
@@ -35,5 +35,6 @@ stdenvNoCC.mkDerivation {
     description = "Bash script for reading mangas via the terminal by scraping manganato";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ baitinq ];
+    mainProgram = "manga-cli";
   };
 }
diff --git a/pkgs/tools/misc/mapcidr/default.nix b/pkgs/tools/misc/mapcidr/default.nix
index 2cb179fac94dd..3ae7eb7e40274 100644
--- a/pkgs/tools/misc/mapcidr/default.nix
+++ b/pkgs/tools/misc/mapcidr/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     changelog = "https://github.com/projectdiscovery/mapcidr/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ hanemile ];
+    mainProgram = "mapcidr";
   };
 }
diff --git a/pkgs/tools/misc/markdown-anki-decks/default.nix b/pkgs/tools/misc/markdown-anki-decks/default.nix
index 17e3bf860fcab..082bdf5a5f98a 100644
--- a/pkgs/tools/misc/markdown-anki-decks/default.nix
+++ b/pkgs/tools/misc/markdown-anki-decks/default.nix
@@ -43,5 +43,6 @@ python3.pkgs.buildPythonApplication rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "mdankideck";
   };
 }
diff --git a/pkgs/tools/misc/marlin-calc/default.nix b/pkgs/tools/misc/marlin-calc/default.nix
index 38a4f4ffb3589..dc8ff42210099 100644
--- a/pkgs/tools/misc/marlin-calc/default.nix
+++ b/pkgs/tools/misc/marlin-calc/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.unix;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/marlin-calc.x86_64-darwin
+    mainProgram = "marlin-calc";
   };
 }
diff --git a/pkgs/tools/misc/massren/default.nix b/pkgs/tools/misc/massren/default.nix
index 885ab1b0176a5..4ca386c1374a7 100644
--- a/pkgs/tools/misc/massren/default.nix
+++ b/pkgs/tools/misc/massren/default.nix
@@ -40,5 +40,6 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/laurent22/massren";
     maintainers = with maintainers; [ andrew-d ];
+    mainProgram = "massren";
   };
 }
diff --git a/pkgs/tools/misc/mastotool/default.nix b/pkgs/tools/misc/mastotool/default.nix
index 3fb0c0034c351..a75f97c4a6ece 100644
--- a/pkgs/tools/misc/mastotool/default.nix
+++ b/pkgs/tools/misc/mastotool/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     changelog = "https://github.com/muesli/mastotool/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "mastotool";
   };
 }
diff --git a/pkgs/tools/misc/mathpix-snipping-tool/default.nix b/pkgs/tools/misc/mathpix-snipping-tool/default.nix
index f6015f3928d6c..c5b5745ceb33b 100644
--- a/pkgs/tools/misc/mathpix-snipping-tool/default.nix
+++ b/pkgs/tools/misc/mathpix-snipping-tool/default.nix
@@ -27,5 +27,6 @@ in appimageTools.wrapType2 {
     license = licenses.unfree;
     maintainers = [ maintainers.hiro98 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "mathpix-snipping-tool";
   };
 }
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index 3e23d042f916a..ec4157fb37cad 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tokudan ];
     platforms = platforms.linux; # Maybe other non-darwin Unix
+    mainProgram = "mbuffer";
   };
 }
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index 179dbe1dec3c6..127dd142a9f1a 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/cantino/mcfly/raw/v${version}/CHANGELOG.txt";
     license = licenses.mit;
     maintainers = [ maintainers.melkor333 ];
+    mainProgram = "mcfly";
   };
 }
diff --git a/pkgs/tools/misc/mdr/default.nix b/pkgs/tools/misc/mdr/default.nix
index 13af7192cf502..b33c51c99ca04 100644
--- a/pkgs/tools/misc/mdr/default.nix
+++ b/pkgs/tools/misc/mdr/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/MichaelMure/mdr";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "mdr";
   };
 }
diff --git a/pkgs/tools/misc/mdslides/default.nix b/pkgs/tools/misc/mdslides/default.nix
index d9265cd7863bf..f329d02237a0f 100644
--- a/pkgs/tools/misc/mdslides/default.nix
+++ b/pkgs/tools/misc/mdslides/default.nix
@@ -18,5 +18,6 @@ python3Packages.buildPythonApplication rec {
     homepage    = "https://github.com/dadoomer/markdown-slides";
     license     = licenses.mit;
     maintainers = [ maintainers.qjoly ];
+    mainProgram = "mdslides";
   };
 }
diff --git a/pkgs/tools/misc/me_cleaner/default.nix b/pkgs/tools/misc/me_cleaner/default.nix
index 4872c349b20da..ec742b11c98ef 100644
--- a/pkgs/tools/misc/me_cleaner/default.nix
+++ b/pkgs/tools/misc/me_cleaner/default.nix
@@ -20,5 +20,6 @@ python3.pkgs.buildPythonPackage rec {
     '';
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "me_cleaner.py";
   };
 }
diff --git a/pkgs/tools/misc/megacli/default.nix b/pkgs/tools/misc/megacli/default.nix
index e2eef587f27c5..b198b030f3ea3 100644
--- a/pkgs/tools/misc/megacli/default.nix
+++ b/pkgs/tools/misc/megacli/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
+    mainProgram = "MegaCli64";
   };
 }
diff --git a/pkgs/tools/misc/melody/default.nix b/pkgs/tools/misc/melody/default.nix
index 7f3f7f29f2145..b4284a63eec15 100644
--- a/pkgs/tools/misc/melody/default.nix
+++ b/pkgs/tools/misc/melody/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/yoav-lavi/melody";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "melody";
   };
 }
diff --git a/pkgs/tools/misc/mermaid-filter/default.nix b/pkgs/tools/misc/mermaid-filter/default.nix
index fd9d537dec4eb..60d013deb5d64 100644
--- a/pkgs/tools/misc/mermaid-filter/default.nix
+++ b/pkgs/tools/misc/mermaid-filter/default.nix
@@ -35,5 +35,6 @@ buildNpmPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ ners ];
     platforms = chromium.meta.platforms;
+    mainProgram = "mermaid-filter";
   };
 }
diff --git a/pkgs/tools/misc/mimeo/default.nix b/pkgs/tools/misc/mimeo/default.nix
index 6c221ac75798b..49a86807017f2 100644
--- a/pkgs/tools/misc/mimeo/default.nix
+++ b/pkgs/tools/misc/mimeo/default.nix
@@ -35,5 +35,6 @@ in python3Packages.buildPythonApplication {
     license = [ licenses.gpl2Only ];
     maintainers = [ maintainers.rycee ];
     platforms = platforms.unix;
+    mainProgram = "mimeo";
   };
 }
diff --git a/pkgs/tools/misc/minipro/default.nix b/pkgs/tools/misc/minipro/default.nix
index 305f2a8857908..870c4706f8820 100644
--- a/pkgs/tools/misc/minipro/default.nix
+++ b/pkgs/tools/misc/minipro/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     description = "An open source program for controlling the MiniPRO TL866xx series of chip programmers";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.bmwalters ];
+    mainProgram = "minipro";
   };
 }
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index 141d32ec80ab9..6d0d918b01990 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -56,5 +56,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/svenstaro/miniserve/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "miniserve";
   };
 }
diff --git a/pkgs/tools/misc/ministat/default.nix b/pkgs/tools/misc/ministat/default.nix
index 0cd3ff3a5c1f9..d0f88e5d1b1cb 100644
--- a/pkgs/tools/misc/ministat/default.nix
+++ b/pkgs/tools/misc/ministat/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.beerware;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.all;
+    mainProgram = "ministat";
   };
 }
diff --git a/pkgs/tools/misc/mktorrent/default.nix b/pkgs/tools/misc/mktorrent/default.nix
index 36aee2034c87b..74f449969a661 100644
--- a/pkgs/tools/misc/mktorrent/default.nix
+++ b/pkgs/tools/misc/mktorrent/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ Profpatsch winter ];
     platforms = platforms.all;
+    mainProgram = "mktorrent";
   };
 }
diff --git a/pkgs/tools/misc/mloader/default.nix b/pkgs/tools/misc/mloader/default.nix
index 9021724f8e0a0..9790b169651d7 100644
--- a/pkgs/tools/misc/mloader/default.nix
+++ b/pkgs/tools/misc/mloader/default.nix
@@ -31,5 +31,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/hurlenko/mloader";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "mloader";
   };
 }
diff --git a/pkgs/tools/misc/mmake/default.nix b/pkgs/tools/misc/mmake/default.nix
index acf571f7c5ace..32f089f1a7714 100644
--- a/pkgs/tools/misc/mmake/default.nix
+++ b/pkgs/tools/misc/mmake/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = [ maintainers.gabesoft ];
+    mainProgram = "mmake";
   };
 }
diff --git a/pkgs/tools/misc/mmctl/default.nix b/pkgs/tools/misc/mmctl/default.nix
index 7084ef0acb118..61e6712a112fc 100644
--- a/pkgs/tools/misc/mmctl/default.nix
+++ b/pkgs/tools/misc/mmctl/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/mattermost/mmctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ ppom ];
+    mainProgram = "mmctl";
   };
 }
diff --git a/pkgs/tools/misc/mnc/default.nix b/pkgs/tools/misc/mnc/default.nix
index d84ff6643aec5..b4b033c94f65f 100644
--- a/pkgs/tools/misc/mnc/default.nix
+++ b/pkgs/tools/misc/mnc/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ wentam ];
+    mainProgram = "mnc";
   };
 }
diff --git a/pkgs/tools/misc/mods/default.nix b/pkgs/tools/misc/mods/default.nix
index ecb306d4aef67..979843915bff8 100644
--- a/pkgs/tools/misc/mods/default.nix
+++ b/pkgs/tools/misc/mods/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/charmbracelet/mods";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "mods";
   };
 }
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index da800e0a836b5..cc5858c16fb78 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -134,5 +134,6 @@ in stdenv.mkDerivation {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.sspl;
     platforms = [ "x86_64-linux" ];
+    mainProgram = "mongodb-compass";
   };
 }
diff --git a/pkgs/tools/misc/mons/default.nix b/pkgs/tools/misc/mons/default.nix
index e9bd96b41b5e8..d386c901e7c07 100644
--- a/pkgs/tools/misc/mons/default.nix
+++ b/pkgs/tools/misc/mons/default.nix
@@ -91,5 +91,6 @@ resholve.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ thiagokokada ];
     platforms = platforms.unix;
+    mainProgram = "mons";
   };
 }
diff --git a/pkgs/tools/misc/moon-phases/default.nix b/pkgs/tools/misc/moon-phases/default.nix
index c1b58c7cce1ae..f4d5a850efc9c 100644
--- a/pkgs/tools/misc/moon-phases/default.nix
+++ b/pkgs/tools/misc/moon-phases/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mirrorwitch/moon-phases";
     license = licenses.acsl14;
     maintainers = with maintainers; [ mirrorwitch ];
+    mainProgram = "moon-phases";
   };
 }
diff --git a/pkgs/tools/misc/moserial/default.nix b/pkgs/tools/misc/moserial/default.nix
index 278182ae5f06e..8ac7091e003c2 100644
--- a/pkgs/tools/misc/moserial/default.nix
+++ b/pkgs/tools/misc/moserial/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ linsui ];
     platforms = platforms.linux;
+    mainProgram = "moserial";
   };
 }
diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix
index 2073e066ae73e..2ec394cd250d1 100644
--- a/pkgs/tools/misc/most/default.nix
+++ b/pkgs/tools/misc/most/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.jedsoft.org/most/index.html";
     license = licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "most";
   };
 }
diff --git a/pkgs/tools/misc/mpdscribble/default.nix b/pkgs/tools/misc/mpdscribble/default.nix
index 46bf31ed667ed..335dedf12fe21 100644
--- a/pkgs/tools/misc/mpdscribble/default.nix
+++ b/pkgs/tools/misc/mpdscribble/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.sohalt ];
     platforms = platforms.unix;
+    mainProgram = "mpdscribble";
   };
 }
diff --git a/pkgs/tools/misc/mpremote/default.nix b/pkgs/tools/misc/mpremote/default.nix
index aa7b847dfb5a9..04b7abb353a2f 100644
--- a/pkgs/tools/misc/mpremote/default.nix
+++ b/pkgs/tools/misc/mpremote/default.nix
@@ -39,5 +39,6 @@ buildPythonApplication rec {
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ _999eagle ];
+    mainProgram = "mpremote";
   };
 }
diff --git a/pkgs/tools/misc/mprime/default.nix b/pkgs/tools/misc/mprime/default.nix
index 159159ce902aa..e55f8ca50fe0b 100644
--- a/pkgs/tools/misc/mprime/default.nix
+++ b/pkgs/tools/misc/mprime/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     # Untested on linux-32 and osx. Works in theory.
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
+    mainProgram = "mprime";
   };
 }
diff --git a/pkgs/tools/misc/mprocs/default.nix b/pkgs/tools/misc/mprocs/default.nix
index 4f47476f5f51c..c42c17bd53c9a 100644
--- a/pkgs/tools/misc/mprocs/default.nix
+++ b/pkgs/tools/misc/mprocs/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/pvolok/mprocs";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage thehedgeh0g ];
+    mainProgram = "mprocs";
   };
 }
diff --git a/pkgs/tools/misc/ms-sys/default.nix b/pkgs/tools/misc/ms-sys/default.nix
index c0f807318bbb0..5d736952d2328 100644
--- a/pkgs/tools/misc/ms-sys/default.nix
+++ b/pkgs/tools/misc/ms-sys/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://ms-sys.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux;
+    mainProgram = "ms-sys";
   };
 }
diff --git a/pkgs/tools/misc/mslink/default.nix b/pkgs/tools/misc/mslink/default.nix
index 6db1ae3275c57..82c60ab926f0c 100644
--- a/pkgs/tools/misc/mslink/default.nix
+++ b/pkgs/tools/misc/mslink/default.nix
@@ -29,5 +29,6 @@ gccStdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mkg20001 ];
     platforms = platforms.unix;
+    mainProgram = "mslink";
   };
 }
diff --git a/pkgs/tools/misc/mtm/default.nix b/pkgs/tools/misc/mtm/default.nix
index c142c1f290369..ffd7eefce8ae7 100644
--- a/pkgs/tools/misc/mtm/default.nix
+++ b/pkgs/tools/misc/mtm/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "mtm";
   };
 }
diff --git a/pkgs/tools/misc/multitail/default.nix b/pkgs/tools/misc/multitail/default.nix
index 647991b412a23..3732d64dd9290 100644
--- a/pkgs/tools/misc/multitail/default.nix
+++ b/pkgs/tools/misc/multitail/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ matthiasbeyer ];
     platforms = lib.platforms.unix;
     license = lib.licenses.asl20;
+    mainProgram = "multitail";
   };
 }
diff --git a/pkgs/tools/misc/multitime/default.nix b/pkgs/tools/misc/multitime/default.nix
index 015f50fa57fa7..e6f6280abab1a 100644
--- a/pkgs/tools/misc/multitime/default.nix
+++ b/pkgs/tools/misc/multitime/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     homepage = "https://tratt.net/laurie/src/multitime/";
     platforms = lib.platforms.unix;
+    mainProgram = "multitime";
   };
 }
diff --git a/pkgs/tools/misc/mutagen-compose/default.nix b/pkgs/tools/misc/mutagen-compose/default.nix
index 5b379b2773f42..a98f8c770bb14 100644
--- a/pkgs/tools/misc/mutagen-compose/default.nix
+++ b/pkgs/tools/misc/mutagen-compose/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     changelog = "https://github.com/mutagen-io/mutagen-compose/releases/tag/v${version}";
     maintainers = [ maintainers.matthewpi ];
     license = licenses.mit;
+    mainProgram = "mutagen-compose";
   };
 }
diff --git a/pkgs/tools/misc/mvebu64boot/default.nix b/pkgs/tools/misc/mvebu64boot/default.nix
index c2bb63186c3f0..0c682cebd5e66 100644
--- a/pkgs/tools/misc/mvebu64boot/default.nix
+++ b/pkgs/tools/misc/mvebu64boot/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lukegb ];
     platforms = platforms.all;
+    mainProgram = "mvebu64boot";
   };
 }
diff --git a/pkgs/tools/misc/mysqltuner/default.nix b/pkgs/tools/misc/mysqltuner/default.nix
index 61dba7569867d..f13b455e523bf 100644
--- a/pkgs/tools/misc/mysqltuner/default.nix
+++ b/pkgs/tools/misc/mysqltuner/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/major/MySQLTuner-perl";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ peterhoeg shamilton ];
+    mainProgram = "mysqltuner";
   };
 }
diff --git a/pkgs/tools/misc/natls/default.nix b/pkgs/tools/misc/natls/default.nix
index 368291f60d9a7..205905224f838 100644
--- a/pkgs/tools/misc/natls/default.nix
+++ b/pkgs/tools/misc/natls/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/willdoescode/nat";
     license = licenses.mit;
     maintainers = with maintainers; [ msfjarvis ];
+    mainProgram = "natls";
   };
 }
diff --git a/pkgs/tools/misc/nb/default.nix b/pkgs/tools/misc/nb/default.nix
index 79796255a8431..56513d35c7791 100644
--- a/pkgs/tools/misc/nb/default.nix
+++ b/pkgs/tools/misc/nb/default.nix
@@ -63,5 +63,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.toonn ];
     platforms = platforms.all;
+    mainProgram = "nb";
   };
 }
diff --git a/pkgs/tools/misc/nbench/default.nix b/pkgs/tools/misc/nbench/default.nix
index 0ce1d66cf2142..f1af32cc0e3f5 100644
--- a/pkgs/tools/misc/nbench/default.nix
+++ b/pkgs/tools/misc/nbench/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     description = "A synthetic computing benchmark program";
     platforms = platforms.unix;
     maintainers = with lib.maintainers; [ bennofs ];
+    mainProgram = "nbench";
   };
 }
diff --git a/pkgs/tools/misc/nbqa/default.nix b/pkgs/tools/misc/nbqa/default.nix
index cc988a02bc060..dec7eb1aa1136 100644
--- a/pkgs/tools/misc/nbqa/default.nix
+++ b/pkgs/tools/misc/nbqa/default.nix
@@ -92,5 +92,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Run ruff, isort, pyupgrade, mypy, pylint, flake8, black, blacken-docs, and more on Jupyter Notebooks";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "nbqa";
   };
 }
diff --git a/pkgs/tools/misc/nginx-config-formatter/default.nix b/pkgs/tools/misc/nginx-config-formatter/default.nix
index 9d5f9c445b49d..edfe912f39835 100644
--- a/pkgs/tools/misc/nginx-config-formatter/default.nix
+++ b/pkgs/tools/misc/nginx-config-formatter/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ Baughn ];
     license = licenses.asl20;
     homepage = "https://github.com/slomkowski/nginx-config-formatter";
+    mainProgram = "nginxfmt";
   };
 }
diff --git a/pkgs/tools/misc/nitch/default.nix b/pkgs/tools/misc/nitch/default.nix
index a050b4133e306..a15542b5ade1a 100644
--- a/pkgs/tools/misc/nitch/default.nix
+++ b/pkgs/tools/misc/nitch/default.nix
@@ -27,5 +27,6 @@ nimPackages.buildNimPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ michaelBelsanti ];
+    mainProgram = "nitch";
   };
 }
diff --git a/pkgs/tools/misc/nomino/default.nix b/pkgs/tools/misc/nomino/default.nix
index 2ff9aac62fb59..e4b7acfa8883e 100644
--- a/pkgs/tools/misc/nomino/default.nix
+++ b/pkgs/tools/misc/nomino/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/yaa110/nomino/releases/tag/${src.rev}";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "nomino";
   };
 }
diff --git a/pkgs/tools/misc/noteshrink/default.nix b/pkgs/tools/misc/noteshrink/default.nix
index 67c49c3ad0d5c..4c76c332645fa 100644
--- a/pkgs/tools/misc/noteshrink/default.nix
+++ b/pkgs/tools/misc/noteshrink/default.nix
@@ -20,5 +20,6 @@ buildPythonApplication rec {
     homepage    = "https://mzucker.github.io/2016/09/20/noteshrink.html";
     license     = licenses.mit;
     maintainers = with maintainers; [ rnhmjoj ];
+    mainProgram = "noteshrink";
   };
 }
diff --git a/pkgs/tools/misc/noti/default.nix b/pkgs/tools/misc/noti/default.nix
index 40c060b631551..82d3dd4c2ef42 100644
--- a/pkgs/tools/misc/noti/default.nix
+++ b/pkgs/tools/misc/noti/default.nix
@@ -48,5 +48,6 @@ buildGoModule rec {
     homepage = "https://github.com/variadico/noti";
     license = licenses.mit;
     maintainers = with maintainers; [ stites marsam ];
+    mainProgram = "noti";
   };
 }
diff --git a/pkgs/tools/misc/notify/default.nix b/pkgs/tools/misc/notify/default.nix
index 09f1d238fbb1b..be7c6daf8e471 100644
--- a/pkgs/tools/misc/notify/default.nix
+++ b/pkgs/tools/misc/notify/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     homepage = "https://github.com/projectdiscovery/notify";
     license = licenses.mit;
     maintainers = with maintainers; [ hanemile ];
+    mainProgram = "notify";
   };
 }
diff --git a/pkgs/tools/misc/ntfy/default.nix b/pkgs/tools/misc/ntfy/default.nix
index 8e00ef627691e..cb81d49e29d13 100644
--- a/pkgs/tools/misc/ntfy/default.nix
+++ b/pkgs/tools/misc/ntfy/default.nix
@@ -98,5 +98,6 @@ in python.pkgs.buildPythonApplication rec {
     homepage = "http://ntfy.rtfd.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kamilchm ];
+    mainProgram = "ntfy";
   };
 }
diff --git a/pkgs/tools/misc/nux/default.nix b/pkgs/tools/misc/nux/default.nix
index a852f830937ba..89aea5e9dd9d9 100644
--- a/pkgs/tools/misc/nux/default.nix
+++ b/pkgs/tools/misc/nux/default.nix
@@ -34,5 +34,6 @@ rustPlatform.buildRustPackage {
     description = "A wrapper over the nix cli";
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "nux";
   };
 }
diff --git a/pkgs/tools/misc/nvfancontrol/default.nix b/pkgs/tools/misc/nvfancontrol/default.nix
index 2bfdb9896e4a9..1b2bebfce8955 100644
--- a/pkgs/tools/misc/nvfancontrol/default.nix
+++ b/pkgs/tools/misc/nvfancontrol/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ devins2518 ];
+    mainProgram = "nvfancontrol";
   };
 }
diff --git a/pkgs/tools/misc/nvimpager/default.nix b/pkgs/tools/misc/nvimpager/default.nix
index 1aee06ddf5646..f2679259fa1f6 100644
--- a/pkgs/tools/misc/nvimpager/default.nix
+++ b/pkgs/tools/misc/nvimpager/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = [ maintainers.lucc ];
+    mainProgram = "nvimpager";
   };
 }
diff --git a/pkgs/tools/misc/nyancat/default.nix b/pkgs/tools/misc/nyancat/default.nix
index 3aca7cc1729cc..89acccd66fc1b 100644
--- a/pkgs/tools/misc/nyancat/default.nix
+++ b/pkgs/tools/misc/nyancat/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.ncsa;
     maintainers = with maintainers; [ midchildan ];
     platforms = platforms.unix;
+    mainProgram = "nyancat";
   };
 }
diff --git a/pkgs/tools/misc/ocs-url/default.nix b/pkgs/tools/misc/ocs-url/default.nix
index 564c7b81c742f..52c65d4b5b26a 100644
--- a/pkgs/tools/misc/ocs-url/default.nix
+++ b/pkgs/tools/misc/ocs-url/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SohamG ];
     platforms = platforms.linux;
+    mainProgram = "ocs-url";
   };
 }
diff --git a/pkgs/tools/misc/octofetch/default.nix b/pkgs/tools/misc/octofetch/default.nix
index 634120d539cc7..4c4083d9555d1 100644
--- a/pkgs/tools/misc/octofetch/default.nix
+++ b/pkgs/tools/misc/octofetch/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     description = "Github user information on terminal";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
+    mainProgram = "octofetch";
   };
 }
diff --git a/pkgs/tools/misc/octosql/default.nix b/pkgs/tools/misc/octosql/default.nix
index 6f928fd61f34a..a42f80d95ff95 100644
--- a/pkgs/tools/misc/octosql/default.nix
+++ b/pkgs/tools/misc/octosql/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/cube2222/octosql";
     license = licenses.mpl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "octosql";
   };
 }
diff --git a/pkgs/tools/misc/odyssey/default.nix b/pkgs/tools/misc/odyssey/default.nix
index 086c1eea58a85..2f3ccb0e154b7 100644
--- a/pkgs/tools/misc/odyssey/default.nix
+++ b/pkgs/tools/misc/odyssey/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "odyssey";
   };
 }
diff --git a/pkgs/tools/misc/ondir/default.nix b/pkgs/tools/misc/ondir/default.nix
index 2e8605c33abc3..1b32f474fc04e 100644
--- a/pkgs/tools/misc/ondir/default.nix
+++ b/pkgs/tools/misc/ondir/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/alecthomas/ondir/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.michaelCTS ];
+    mainProgram = "ondir";
   };
 }
diff --git a/pkgs/tools/misc/onefetch/default.nix b/pkgs/tools/misc/onefetch/default.nix
index 9a1391b4614c7..3dbd384884e07 100644
--- a/pkgs/tools/misc/onefetch/default.nix
+++ b/pkgs/tools/misc/onefetch/default.nix
@@ -60,5 +60,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/o2sh/onefetch/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne figsoda kloenk ];
+    mainProgram = "onefetch";
   };
 }
diff --git a/pkgs/tools/misc/open-pdf-sign/default.nix b/pkgs/tools/misc/open-pdf-sign/default.nix
index 4a70bc2131ddd..282ad778db5f5 100644
--- a/pkgs/tools/misc/open-pdf-sign/default.nix
+++ b/pkgs/tools/misc/open-pdf-sign/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with lib.maintainers; [ drupol ];
     platforms = lib.platforms.unix;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    mainProgram = "open-pdf-sign";
   };
 })
diff --git a/pkgs/tools/misc/opencorsairlink/default.nix b/pkgs/tools/misc/opencorsairlink/default.nix
index ed11232065e9c..40b747f203052 100644
--- a/pkgs/tools/misc/opencorsairlink/default.nix
+++ b/pkgs/tools/misc/opencorsairlink/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ lib.maintainers.expipiplus1 ];
+    mainProgram = "OpenCorsairLink.elf";
   };
 }
diff --git a/pkgs/tools/misc/opentsdb/default.nix b/pkgs/tools/misc/opentsdb/default.nix
index 3662c9793c430..abce03cae02fa 100644
--- a/pkgs/tools/misc/opentsdb/default.nix
+++ b/pkgs/tools/misc/opentsdb/default.nix
@@ -347,5 +347,6 @@ in stdenv.mkDerivation rec {
       binaryBytecode  # maven dependencies
     ];
     maintainers = [ ];
+    mainProgram = "tsdb";
   };
 }
diff --git a/pkgs/tools/misc/org-stats/default.nix b/pkgs/tools/misc/org-stats/default.nix
index 7c79f526fb8a6..ead4f9e18d333 100644
--- a/pkgs/tools/misc/org-stats/default.nix
+++ b/pkgs/tools/misc/org-stats/default.nix
@@ -58,5 +58,6 @@ buildGoModule rec {
     changelog = "https://github.com/caarlos0/org-stats/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "org-stats";
   };
 }
diff --git a/pkgs/tools/misc/otel-cli/default.nix b/pkgs/tools/misc/otel-cli/default.nix
index 635e8ee10185f..de35952f184a1 100644
--- a/pkgs/tools/misc/otel-cli/default.nix
+++ b/pkgs/tools/misc/otel-cli/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/equinix-labs/otel-cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ emattiza urandom ];
+    mainProgram = "otel-cli";
   };
 }
diff --git a/pkgs/tools/misc/owofetch/default.nix b/pkgs/tools/misc/owofetch/default.nix
index 4b312f0cea45b..b623721ec9b2f 100644
--- a/pkgs/tools/misc/owofetch/default.nix
+++ b/pkgs/tools/misc/owofetch/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Only;
     platforms = platforms.x86_64;
     maintainers = with maintainers; [ nullishamy ];
+    mainProgram = "owofetch";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-acro/default.nix b/pkgs/tools/misc/pandoc-acro/default.nix
index d60bd10bcf69e..36bd518f5b2b9 100644
--- a/pkgs/tools/misc/pandoc-acro/default.nix
+++ b/pkgs/tools/misc/pandoc-acro/default.nix
@@ -59,5 +59,6 @@ buildPythonApplication {
     description = "Pandoc filter which manages acronyms in Pandoc flavored Markdown sources";
     license = licenses.bsd2;
     maintainers = with maintainers; [ tfc ];
+    mainProgram = "pandoc-acro";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-drawio-filter/default.nix b/pkgs/tools/misc/pandoc-drawio-filter/default.nix
index a5e8c919ce7b0..9a5ff8949ba64 100644
--- a/pkgs/tools/misc/pandoc-drawio-filter/default.nix
+++ b/pkgs/tools/misc/pandoc-drawio-filter/default.nix
@@ -48,6 +48,7 @@ let
       description = "Pandoc filter which converts draw.io diagrams to PDF";
       license = licenses.mit;
       maintainers = with maintainers; [ tfc ];
+      mainProgram = "pandoc-drawio";
     };
   };
 
diff --git a/pkgs/tools/misc/pandoc-eqnos/default.nix b/pkgs/tools/misc/pandoc-eqnos/default.nix
index d808060fc23a6..5ee4e9587d61a 100644
--- a/pkgs/tools/misc/pandoc-eqnos/default.nix
+++ b/pkgs/tools/misc/pandoc-eqnos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-eqnos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-eqnos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-fignos/default.nix b/pkgs/tools/misc/pandoc-fignos/default.nix
index 7ed7a8e710a70..eb8d0154ffcec 100644
--- a/pkgs/tools/misc/pandoc-fignos/default.nix
+++ b/pkgs/tools/misc/pandoc-fignos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-fignos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-fignos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-imagine/default.nix b/pkgs/tools/misc/pandoc-imagine/default.nix
index 67e27da960fc5..ae94c31153661 100644
--- a/pkgs/tools/misc/pandoc-imagine/default.nix
+++ b/pkgs/tools/misc/pandoc-imagine/default.nix
@@ -24,5 +24,6 @@ buildPythonApplication rec {
     '';
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "pandoc-imagine";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-include/default.nix b/pkgs/tools/misc/pandoc-include/default.nix
index 684af986b017c..a5c9ea00bfdf7 100644
--- a/pkgs/tools/misc/pandoc-include/default.nix
+++ b/pkgs/tools/misc/pandoc-include/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/DCsunset/pandoc-include";
     license = licenses.mit;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-include";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-katex/default.nix b/pkgs/tools/misc/pandoc-katex/default.nix
index fdcfef878449e..d2b9f03e51a47 100644
--- a/pkgs/tools/misc/pandoc-katex/default.nix
+++ b/pkgs/tools/misc/pandoc-katex/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/xu-cheng/pandoc-katex";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ minijackson pacien ];
+    mainProgram = "pandoc-katex";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-plantuml-filter/default.nix b/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
index cdf0ab862df49..d8c1bb2ea8a38 100644
--- a/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
+++ b/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
@@ -22,5 +22,6 @@ buildPythonApplication rec {
     description = "Pandoc filter which converts PlantUML code blocks to PlantUML images";
     license = licenses.mit;
     maintainers = with maintainers; [ cmcdragonkai ];
+    mainProgram = "pandoc-plantuml";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-secnos/default.nix b/pkgs/tools/misc/pandoc-secnos/default.nix
index 507d7df400e3f..0880214e218e3 100644
--- a/pkgs/tools/misc/pandoc-secnos/default.nix
+++ b/pkgs/tools/misc/pandoc-secnos/default.nix
@@ -35,5 +35,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-secnos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-secnos";
   };
 }
diff --git a/pkgs/tools/misc/pandoc-tablenos/default.nix b/pkgs/tools/misc/pandoc-tablenos/default.nix
index e1fb785a7a9fc..6ee5ef65861e8 100644
--- a/pkgs/tools/misc/pandoc-tablenos/default.nix
+++ b/pkgs/tools/misc/pandoc-tablenos/default.nix
@@ -31,5 +31,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tomduck/pandoc-tablenos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
+    mainProgram = "pandoc-tablenos";
   };
 }
diff --git a/pkgs/tools/misc/panicparse/default.nix b/pkgs/tools/misc/panicparse/default.nix
index 2736758343631..6cf97eca5a971 100644
--- a/pkgs/tools/misc/panicparse/default.nix
+++ b/pkgs/tools/misc/panicparse/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/maruel/panicparse";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "panicparse";
   };
 }
diff --git a/pkgs/tools/misc/panoply/default.nix b/pkgs/tools/misc/panoply/default.nix
index 801b3737f9b9a..5a333a38a4bcb 100644
--- a/pkgs/tools/misc/panoply/default.nix
+++ b/pkgs/tools/misc/panoply/default.nix
@@ -33,5 +33,6 @@ stdenvNoCC.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.markuskowa ];
     license = licenses.unfree;  # Package does not state a license
+    mainProgram = "panoply";
   };
 }
diff --git a/pkgs/tools/misc/paperlike-go/default.nix b/pkgs/tools/misc/paperlike-go/default.nix
index 63390f427d403..6ed29433a35d6 100644
--- a/pkgs/tools/misc/paperlike-go/default.nix
+++ b/pkgs/tools/misc/paperlike-go/default.nix
@@ -24,5 +24,6 @@ buildGoModule {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.adisbladis ];
     platforms = lib.platforms.linux;
+    mainProgram = "paperlike-cli";
   };
 }
diff --git a/pkgs/tools/misc/paps/default.nix b/pkgs/tools/misc/paps/default.nix
index 75cd8f3535cb2..ab9c9e433c68f 100644
--- a/pkgs/tools/misc/paps/default.nix
+++ b/pkgs/tools/misc/paps/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "paps";
   };
 }
diff --git a/pkgs/tools/misc/parcellite/default.nix b/pkgs/tools/misc/parcellite/default.nix
index 04fe534984ed4..d39115fcecc9a 100644
--- a/pkgs/tools/misc/parcellite/default.nix
+++ b/pkgs/tools/misc/parcellite/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rickyrockrat/parcellite";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "parcellite";
   };
 }
diff --git a/pkgs/tools/misc/parquet-tools/default.nix b/pkgs/tools/misc/parquet-tools/default.nix
index 36a80202447f5..bd35304f3cf1d 100644
--- a/pkgs/tools/misc/parquet-tools/default.nix
+++ b/pkgs/tools/misc/parquet-tools/default.nix
@@ -70,5 +70,6 @@ buildPythonApplication rec {
     changelog = "https://github.com/ktrueda/parquet-tools/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
+    mainProgram = "parquet-tools";
   };
 }
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index 6fdc0e32bea61..8dde1e68bd297 100644
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ b/pkgs/tools/misc/partition-manager/default.nix
@@ -99,5 +99,6 @@ mkDerivation rec {
     license = with licenses; [ cc-by-40 cc0 gpl3Plus lgpl3Plus mit ];
     homepage = "https://www.kde.org/applications/system/kdepartitionmanager/";
     maintainers = with maintainers; [ peterhoeg oxalica ];
+    mainProgram = "partitionmanager";
   };
 }
diff --git a/pkgs/tools/misc/past-time/default.nix b/pkgs/tools/misc/past-time/default.nix
index 4e551a041bdd8..cb36808ea3662 100644
--- a/pkgs/tools/misc/past-time/default.nix
+++ b/pkgs/tools/misc/past-time/default.nix
@@ -35,5 +35,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/fabaff/past-time/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "past-time";
   };
 }
diff --git a/pkgs/tools/misc/pastebinit/default.nix b/pkgs/tools/misc/pastebinit/default.nix
index 079e6704c6875..461e9c9c87fce 100644
--- a/pkgs/tools/misc/pastebinit/default.nix
+++ b/pkgs/tools/misc/pastebinit/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raboof ];
     license = licenses.gpl2;
     platforms = platforms.linux ++ lib.platforms.darwin;
+    mainProgram = "pastebinit";
   };
 }
diff --git a/pkgs/tools/misc/pazi/default.nix b/pkgs/tools/misc/pazi/default.nix
index 661029cb61c45..c4c1ea18b549b 100644
--- a/pkgs/tools/misc/pazi/default.nix
+++ b/pkgs/tools/misc/pazi/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/euank/pazi";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "pazi";
   };
 }
diff --git a/pkgs/tools/misc/pb_cli/default.nix b/pkgs/tools/misc/pb_cli/default.nix
index 48b819d5bfdd6..b884b28658385 100644
--- a/pkgs/tools/misc/pb_cli/default.nix
+++ b/pkgs/tools/misc/pb_cli/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/ptpb/pb_cli";
     maintainers = [ maintainers.ar1a ];
     license = licenses.gpl3Plus;
+    mainProgram = "pb";
   };
 }
diff --git a/pkgs/tools/misc/pcp/default.nix b/pkgs/tools/misc/pcp/default.nix
index eb73e128533e8..e9d245c8129d8 100644
--- a/pkgs/tools/misc/pcp/default.nix
+++ b/pkgs/tools/misc/pcp/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ matthewcroughan ];
     platforms = platforms.linux;
+    mainProgram = "pcp";
   };
 }
diff --git a/pkgs/tools/misc/pdd/default.nix b/pkgs/tools/misc/pdd/default.nix
index db80139098bf1..2e34e94ad0139 100644
--- a/pkgs/tools/misc/pdd/default.nix
+++ b/pkgs/tools/misc/pdd/default.nix
@@ -30,5 +30,6 @@ buildPythonApplication rec {
     '';
     maintainers = [ maintainers.infinisil ];
     license = licenses.gpl3;
+    mainProgram = "pdd";
   };
 }
diff --git a/pkgs/tools/misc/pdf-parser/default.nix b/pkgs/tools/misc/pdf-parser/default.nix
index 90c128f8ac35e..593960c4d2cf8 100644
--- a/pkgs/tools/misc/pdf-parser/default.nix
+++ b/pkgs/tools/misc/pdf-parser/default.nix
@@ -30,5 +30,6 @@ python3Packages.buildPythonApplication {
     license = licenses.publicDomain;
     maintainers = [ maintainers.lightdiscord ];
     platforms = platforms.all;
+    mainProgram = "pdf-parser.py";
   };
 }
diff --git a/pkgs/tools/misc/peep/default.nix b/pkgs/tools/misc/peep/default.nix
index 1ecad087ccfbe..301b04cbb816f 100644
--- a/pkgs/tools/misc/peep/default.nix
+++ b/pkgs/tools/misc/peep/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/ryochack/peep/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "peep";
   };
 }
diff --git a/pkgs/tools/misc/pferd/default.nix b/pkgs/tools/misc/pferd/default.nix
index 46b525cd578bc..af343a19d9697 100644
--- a/pkgs/tools/misc/pferd/default.nix
+++ b/pkgs/tools/misc/pferd/default.nix
@@ -32,5 +32,6 @@ python3Packages.buildPythonApplication rec {
     description = "Tool for downloading course-related files from ILIAS";
     license = licenses.mit;
     maintainers = with maintainers; [ _0xbe7a ];
+    mainProgram = "pferd";
   };
 }
diff --git a/pkgs/tools/misc/pfetch-rs/default.nix b/pkgs/tools/misc/pfetch-rs/default.nix
index 6291d24e23364..88f832db82a9b 100644
--- a/pkgs/tools/misc/pfetch-rs/default.nix
+++ b/pkgs/tools/misc/pfetch-rs/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Gobidev/pfetch-rs/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ gobidev ];
+    mainProgram = "pfetch";
   };
 }
diff --git a/pkgs/tools/misc/pfetch/default.nix b/pkgs/tools/misc/pfetch/default.nix
index bbecf4656e749..5f9e8bf7676a6 100644
--- a/pkgs/tools/misc/pfetch/default.nix
+++ b/pkgs/tools/misc/pfetch/default.nix
@@ -23,5 +23,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ equirosa ];
+    mainProgram = "pfetch";
   };
 }
diff --git a/pkgs/tools/misc/pfsshell/default.nix b/pkgs/tools/misc/pfsshell/default.nix
index 10cde1385bb21..24eb379adf5cd 100644
--- a/pkgs/tools/misc/pfsshell/default.nix
+++ b/pkgs/tools/misc/pfsshell/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
       afl20    # APA, PFS, and iomanX libraries which are compiled together with this package
     ];
     maintainers = with maintainers; [ makefu ];
+    mainProgram = "pfsshell";
   };
 }
diff --git a/pkgs/tools/misc/pg_flame/default.nix b/pkgs/tools/misc/pg_flame/default.nix
index f35706bfc674d..da9cc6c77d591 100644
--- a/pkgs/tools/misc/pg_flame/default.nix
+++ b/pkgs/tools/misc/pg_flame/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/mgartner/pg_flame";
     license = licenses.asl20;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "pg_flame";
   };
 }
diff --git a/pkgs/tools/misc/pg_top/default.nix b/pkgs/tools/misc/pg_top/default.nix
index 9521136977f31..0999c9456d536 100644
--- a/pkgs/tools/misc/pg_top/default.nix
+++ b/pkgs/tools/misc/pg_top/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "http://ptop.projects.postgresql.org/";
     platforms = platforms.linux;
     license = licenses.free; # see commands.c
+    mainProgram = "pg_top";
   };
 }
diff --git a/pkgs/tools/misc/pgbadger/default.nix b/pkgs/tools/misc/pgbadger/default.nix
index b335f644312ab..4054e6b20e94d 100644
--- a/pkgs/tools/misc/pgbadger/default.nix
+++ b/pkgs/tools/misc/pgbadger/default.nix
@@ -36,5 +36,6 @@ buildPerlPackage rec {
     changelog = "https://github.com/darold/pgbadger/raw/v${version}/ChangeLog";
     license = lib.licenses.postgresql;
     maintainers = lib.teams.determinatesystems.members;
+    mainProgram = "pgbadger";
   };
 }
diff --git a/pkgs/tools/misc/pgcenter/default.nix b/pkgs/tools/misc/pgcenter/default.nix
index 507beb4989523..ba962a3936656 100644
--- a/pkgs/tools/misc/pgcenter/default.nix
+++ b/pkgs/tools/misc/pgcenter/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "Command-line admin tool for observing and troubleshooting PostgreSQL";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "pgcenter";
   };
 }
diff --git a/pkgs/tools/misc/pgmetrics/default.nix b/pkgs/tools/misc/pgmetrics/default.nix
index 7a24a87ca767c..0df0070e18b97 100644
--- a/pkgs/tools/misc/pgmetrics/default.nix
+++ b/pkgs/tools/misc/pgmetrics/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "Collect and display information and stats from a running PostgreSQL server";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "pgmetrics";
   };
 }
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index 1456cb4b142f2..cb4762c412f18 100644
--- a/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ davidak ];
     license = licenses.gpl3;
     platforms = with platforms; unix;
+    mainProgram = "phoronix-test-suite";
   };
 }
diff --git a/pkgs/tools/misc/pick/default.nix b/pkgs/tools/misc/pick/default.nix
index 9a6c6881f7df5..cee77d3a15880 100644
--- a/pkgs/tools/misc/pick/default.nix
+++ b/pkgs/tools/misc/pick/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "pick";
   };
 
 }
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
index 9685c80f06e55..d8422e3679fd2 100644
--- a/pkgs/tools/misc/picocom/default.nix
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/npat-efault/picocom/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    mainProgram = "picocom";
   };
 }
diff --git a/pkgs/tools/misc/pipectl/default.nix b/pkgs/tools/misc/pipectl/default.nix
index 9ce250bef78e6..f3e80655279f7 100644
--- a/pkgs/tools/misc/pipectl/default.nix
+++ b/pkgs/tools/misc/pipectl/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     description = "a simple named pipe management utility";
     maintainers = with maintainers; [ synthetica ];
+    mainProgram = "pipectl";
   };
 }
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index e6ec23266d2c1..90c1e8d1e86aa 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -63,5 +63,6 @@ in stdenv.mkDerivation rec {
     description = "A wrapper for using Windows plugins in Linux browsers";
     maintainers = with lib.maintainers; [ ];
     platforms = [ "x86_64-linux" "i686-linux" ];
+    mainProgram = "pipelight-plugin";
   };
 }
diff --git a/pkgs/tools/misc/pipreqs/default.nix b/pkgs/tools/misc/pipreqs/default.nix
index 2689581b6c062..49062b3a5cb85 100644
--- a/pkgs/tools/misc/pipreqs/default.nix
+++ b/pkgs/tools/misc/pipreqs/default.nix
@@ -21,5 +21,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/bndr/pipreqs";
     license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
+    mainProgram = "pipreqs";
   };
 }
diff --git a/pkgs/tools/misc/pistol/default.nix b/pkgs/tools/misc/pistol/default.nix
index 22ddde837612c..79826e6f79249 100644
--- a/pkgs/tools/misc/pistol/default.nix
+++ b/pkgs/tools/misc/pistol/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     homepage = "https://github.com/doronbehar/pistol";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "pistol";
   };
 }
diff --git a/pkgs/tools/misc/piston-cli/default.nix b/pkgs/tools/misc/piston-cli/default.nix
index 8c78f3f7b30bc..44ec8eabc149b 100644
--- a/pkgs/tools/misc/piston-cli/default.nix
+++ b/pkgs/tools/misc/piston-cli/default.nix
@@ -33,5 +33,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/Shivansh-007/piston-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 ];
+    mainProgram = "piston";
   };
 }
diff --git a/pkgs/tools/misc/pixd/default.nix b/pkgs/tools/misc/pixd/default.nix
index 2e8f552e1a818..84ad2c92e2074 100644
--- a/pkgs/tools/misc/pixd/default.nix
+++ b/pkgs/tools/misc/pixd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.FireyFly ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "pixd";
   };
 }
diff --git a/pkgs/tools/misc/pk2cmd/default.nix b/pkgs/tools/misc/pk2cmd/default.nix
index b6678f52d7482..9b04a668dadbe 100644
--- a/pkgs/tools/misc/pk2cmd/default.nix
+++ b/pkgs/tools/misc/pk2cmd/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.microchip.com/pickit2";
     license = lib.licenses.unfree; #MicroChip-PK2
     description = "Microchip PIC programming software for the PICKit2 programmer";
+    mainProgram = "pk2cmd";
   };
 }
diff --git a/pkgs/tools/misc/pkgdiff/default.nix b/pkgs/tools/misc/pkgdiff/default.nix
index 2f68e9505edb2..45ec2df2beaf5 100644
--- a/pkgs/tools/misc/pkgdiff/default.nix
+++ b/pkgs/tools/misc/pkgdiff/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ sweber ];
     platforms = platforms.unix;
+    mainProgram = "pkgdiff";
   };
 }
diff --git a/pkgs/tools/misc/pkgtop/default.nix b/pkgs/tools/misc/pkgtop/default.nix
index 464e22724c771..acb56dd47d4b0 100644
--- a/pkgs/tools/misc/pkgtop/default.nix
+++ b/pkgs/tools/misc/pkgtop/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     changelog = "https://github.com/orhun/pkgtop/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "pkgtop";
   };
 }
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index eb6cfb7ebcbe1..411b76d0205ae 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bjornfor Mogria ];
     platforms = platforms.unix;
+    mainProgram = "plantuml";
   };
 }
diff --git a/pkgs/tools/misc/pmbootstrap/default.nix b/pkgs/tools/misc/pmbootstrap/default.nix
index 763485d75585f..43a803dfa3e5f 100644
--- a/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/pkgs/tools/misc/pmbootstrap/default.nix
@@ -102,5 +102,6 @@ buildPythonApplication rec {
     homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "pmbootstrap";
   };
 }
diff --git a/pkgs/tools/misc/pod2mdoc/default.nix b/pkgs/tools/misc/pod2mdoc/default.nix
index 4e919e2848926..eba487a57fb7d 100644
--- a/pkgs/tools/misc/pod2mdoc/default.nix
+++ b/pkgs/tools/misc/pod2mdoc/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "pod2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/poop/default.nix b/pkgs/tools/misc/poop/default.nix
index fe595f76ffaa4..d3b444d9472f9 100644
--- a/pkgs/tools/misc/poop/default.nix
+++ b/pkgs/tools/misc/poop/default.nix
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
     platforms = platforms.linux;
+    mainProgram = "poop";
   };
 }
diff --git a/pkgs/tools/misc/portal/default.nix b/pkgs/tools/misc/portal/default.nix
index 978d3632da1f7..3577f0f0b31a5 100644
--- a/pkgs/tools/misc/portal/default.nix
+++ b/pkgs/tools/misc/portal/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/SpatiumPortae/portal/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ tennox ];
+    mainProgram = "portal";
   };
 }
diff --git a/pkgs/tools/misc/pouf/default.nix b/pkgs/tools/misc/pouf/default.nix
index 9206e16463edf..8029d77fcbc8e 100644
--- a/pkgs/tools/misc/pouf/default.nix
+++ b/pkgs/tools/misc/pouf/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/mothsart/pouf/releases/tag/${version}";
     maintainers = with maintainers; [ mothsart ];
     license = with licenses; [ mit ];
+    mainProgram = "pouf";
   };
 }
diff --git a/pkgs/tools/misc/poweralertd/default.nix b/pkgs/tools/misc/poweralertd/default.nix
index 58d54f5707bad..677d85e18f090 100644
--- a/pkgs/tools/misc/poweralertd/default.nix
+++ b/pkgs/tools/misc/poweralertd/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ thibautmarty ];
+    mainProgram = "poweralertd";
   };
 }
diff --git a/pkgs/tools/misc/powerline-rs/default.nix b/pkgs/tools/misc/powerline-rs/default.nix
index 7222ac9be7d8c..5edde7b3653f9 100644
--- a/pkgs/tools/misc/powerline-rs/default.nix
+++ b/pkgs/tools/misc/powerline-rs/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "powerline-rs";
   };
 }
diff --git a/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix b/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
index ebe41abb8e333..3b0fcacd4892e 100644
--- a/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
+++ b/pkgs/tools/misc/pre-commit-hook-ensure-sops/default.nix
@@ -46,5 +46,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/yuvipanda/pre-commit-hook-ensure-sops";
     maintainers = with maintainers; [ nialov ];
     license = licenses.bsd3;
+    mainProgram = "pre-commit-hook-ensure-sops";
   };
 }
diff --git a/pkgs/tools/misc/pre-commit/default.nix b/pkgs/tools/misc/pre-commit/default.nix
index ded7b3290d3c4..78042489ff9d4 100644
--- a/pkgs/tools/misc/pre-commit/default.nix
+++ b/pkgs/tools/misc/pre-commit/default.nix
@@ -181,5 +181,6 @@ buildPythonApplication rec {
     homepage = "https://pre-commit.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ borisbabic ];
+    mainProgram = "pre-commit";
   };
 }
diff --git a/pkgs/tools/misc/precice-config-visualizer/default.nix b/pkgs/tools/misc/precice-config-visualizer/default.nix
index be6e7f0a9bb61..9b6d40a0c7338 100644
--- a/pkgs/tools/misc/precice-config-visualizer/default.nix
+++ b/pkgs/tools/misc/precice-config-visualizer/default.nix
@@ -23,5 +23,6 @@ python3Packages.buildPythonApplication rec {
     description = "Small python tool for visualizing the preCICE xml configuration ";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Scriptkiddi ];
+    mainProgram = "precice-config-visualizer";
   };
 }
diff --git a/pkgs/tools/misc/present-cli/default.nix b/pkgs/tools/misc/present-cli/default.nix
index 99427833ddff3..7c1c87647a190 100644
--- a/pkgs/tools/misc/present-cli/default.nix
+++ b/pkgs/tools/misc/present-cli/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/terror/present/";
     license = licenses.cc0;
     maintainers = with maintainers; [ cameronfyfe ];
+    mainProgram = "present";
   };
 }
diff --git a/pkgs/tools/misc/pridecat/default.nix b/pkgs/tools/misc/pridecat/default.nix
index d7bf2b86d6da6..4d4ed57fc2352 100644
--- a/pkgs/tools/misc/pridecat/default.nix
+++ b/pkgs/tools/misc/pridecat/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/lunasorcery/pridecat";
     license = licenses.cc-by-nc-sa-40;
     maintainers = with maintainers; [ lunarequest ];
+    mainProgram = "pridecat";
   };
 }
diff --git a/pkgs/tools/misc/pridefetch/default.nix b/pkgs/tools/misc/pridefetch/default.nix
index 22e5c7a0afb20..dedd3b336d78a 100644
--- a/pkgs/tools/misc/pridefetch/default.nix
+++ b/pkgs/tools/misc/pridefetch/default.nix
@@ -64,5 +64,6 @@ stdenv.mkDerivation {
       maintainers.minion3665
     ];
     platforms = platforms.all;
+    mainProgram = "pridefetch";
   };
 }
diff --git a/pkgs/tools/misc/procyon/default.nix b/pkgs/tools/misc/procyon/default.nix
index e5ef58e3a3e19..7026ce6febfbb 100644
--- a/pkgs/tools/misc/procyon/default.nix
+++ b/pkgs/tools/misc/procyon/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mstrobel/procyon/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "procyon";
   };
 }
diff --git a/pkgs/tools/misc/profetch/default.nix b/pkgs/tools/misc/profetch/default.nix
index c113f48fd13dd..fc5f3cea4a0f6 100644
--- a/pkgs/tools/misc/profetch/default.nix
+++ b/pkgs/tools/misc/profetch/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.vel ];
+    mainProgram = "profetch";
   };
 }
diff --git a/pkgs/tools/misc/progress/default.nix b/pkgs/tools/misc/progress/default.nix
index 2a8dc99260179..063d4d122acb4 100644
--- a/pkgs/tools/misc/progress/default.nix
+++ b/pkgs/tools/misc/progress/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "progress";
   };
 }
diff --git a/pkgs/tools/misc/promexplorer/default.nix b/pkgs/tools/misc/promexplorer/default.nix
index efdbbe4e6da58..3f02597bbcfff 100644
--- a/pkgs/tools/misc/promexplorer/default.nix
+++ b/pkgs/tools/misc/promexplorer/default.nix
@@ -18,5 +18,6 @@ nimPackages.buildNimPackage rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ marcusramberg ];
+    mainProgram = "promexplorer";
   };
 }
diff --git a/pkgs/tools/misc/promql-cli/default.nix b/pkgs/tools/misc/promql-cli/default.nix
index a65dfb87ea0a8..d5188e83f2935 100644
--- a/pkgs/tools/misc/promql-cli/default.nix
+++ b/pkgs/tools/misc/promql-cli/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/nalbury/promql-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "promql";
   };
 }
diff --git a/pkgs/tools/misc/proximity-sort/default.nix b/pkgs/tools/misc/proximity-sort/default.nix
index 8ad6e5c1c176e..3b0f1ca5be3d5 100644
--- a/pkgs/tools/misc/proximity-sort/default.nix
+++ b/pkgs/tools/misc/proximity-sort/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jonhoo/proximity-sort";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "proximity-sort";
   };
 }
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index e0da056c48c7b..2449fd30171d8 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = [ maintainers.jlesquembre ];
+    mainProgram = "pspg";
   };
 }
diff --git a/pkgs/tools/misc/psql2csv/default.nix b/pkgs/tools/misc/psql2csv/default.nix
index 21b58583bcca4..729582f2e404a 100644
--- a/pkgs/tools/misc/psql2csv/default.nix
+++ b/pkgs/tools/misc/psql2csv/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     inherit (postgresql.meta) platforms;
+    mainProgram = "psql2csv";
   };
 }
diff --git a/pkgs/tools/misc/psrecord/default.nix b/pkgs/tools/misc/psrecord/default.nix
index 2f2b14e4875a3..04b1970fe02b0 100644
--- a/pkgs/tools/misc/psrecord/default.nix
+++ b/pkgs/tools/misc/psrecord/default.nix
@@ -27,5 +27,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/astrofrog/psrecord";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    mainProgram = "psrecord";
   };
 }
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index 6fa9c477af09b..2c8f0d5521ba3 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.artistic2;
     maintainers = with lib.maintainers; [ matthiasbeyer ];
     platforms = lib.platforms.all;
+    mainProgram = "pv";
   };
 }
diff --git a/pkgs/tools/misc/pws/default.nix b/pkgs/tools/misc/pws/default.nix
index 783bb9b5a384f..97f4585686778 100644
--- a/pkgs/tools/misc/pws/default.nix
+++ b/pkgs/tools/misc/pws/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ swistak35 nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "pws";
   };
 }
diff --git a/pkgs/tools/misc/q-text-as-data/default.nix b/pkgs/tools/misc/q-text-as-data/default.nix
index 69d11ab34589f..5a63752b82383 100644
--- a/pkgs/tools/misc/q-text-as-data/default.nix
+++ b/pkgs/tools/misc/q-text-as-data/default.nix
@@ -37,5 +37,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.taneb ];
     platforms = platforms.all;
+    mainProgram = "q";
   };
 }
diff --git a/pkgs/tools/misc/qdl/default.nix b/pkgs/tools/misc/qdl/default.nix
index 5fdf78acefcde..02435272535fd 100644
--- a/pkgs/tools/misc/qdl/default.nix
+++ b/pkgs/tools/misc/qdl/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     maintainers = with maintainers; [ muscaln ];
     platforms = platforms.linux;
+    mainProgram = "qdl";
   };
 }
diff --git a/pkgs/tools/misc/qjoypad/default.nix b/pkgs/tools/misc/qjoypad/default.nix
index 6770ec133d3ca..a602e7b7fad62 100644
--- a/pkgs/tools/misc/qjoypad/default.nix
+++ b/pkgs/tools/misc/qjoypad/default.nix
@@ -35,5 +35,6 @@ mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with maintainers; [ astsmtl ];
     platforms = with platforms; linux;
+    mainProgram = "qjoypad";
   };
 }
diff --git a/pkgs/tools/misc/qmk/default.nix b/pkgs/tools/misc/qmk/default.nix
index ce0a11c10c83a..42361d5e63cc4 100644
--- a/pkgs/tools/misc/qmk/default.nix
+++ b/pkgs/tools/misc/qmk/default.nix
@@ -71,5 +71,6 @@ python3.pkgs.buildPythonApplication rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple babariviere ekleog ];
+    mainProgram = "qmk";
   };
 }
diff --git a/pkgs/tools/misc/qmk_hid/default.nix b/pkgs/tools/misc/qmk_hid/default.nix
index 54f4f15f8e66b..f5d1b61868a3a 100644
--- a/pkgs/tools/misc/qmk_hid/default.nix
+++ b/pkgs/tools/misc/qmk_hid/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/FrameworkComputer/qmk_hid";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ janik ];
+    mainProgram = "qmk_hid";
   };
 }
diff --git a/pkgs/tools/misc/qt5ct/default.nix b/pkgs/tools/misc/qt5ct/default.nix
index d031168a6935f..d9ee0358a76aa 100644
--- a/pkgs/tools/misc/qt5ct/default.nix
+++ b/pkgs/tools/misc/qt5ct/default.nix
@@ -27,5 +27,6 @@ mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ ralith ];
+    mainProgram = "qt5ct";
   };
 }
diff --git a/pkgs/tools/misc/qt6ct/default.nix b/pkgs/tools/misc/qt6ct/default.nix
index c011ae1b78aa0..248bc3a48e4cc 100644
--- a/pkgs/tools/misc/qt6ct/default.nix
+++ b/pkgs/tools/misc/qt6ct/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ Flakebi Scrumplex ];
+    mainProgram = "qt6ct";
   };
 })
diff --git a/pkgs/tools/misc/quich/default.nix b/pkgs/tools/misc/quich/default.nix
index 1b54eb01112c0..effd7993b8037 100644
--- a/pkgs/tools/misc/quich/default.nix
+++ b/pkgs/tools/misc/quich/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.xdhampus ];
     platforms = platforms.all;
+    mainProgram = "quich";
   };
 }
diff --git a/pkgs/tools/misc/radeon-profile/default.nix b/pkgs/tools/misc/radeon-profile/default.nix
index acadda5c549b3..8c42cccfcdf0d 100644
--- a/pkgs/tools/misc/radeon-profile/default.nix
+++ b/pkgs/tools/misc/radeon-profile/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
     homepage    = "https://github.com/marazmista/radeon-profile";
     license     = licenses.gpl2Plus;
     platforms   = platforms.linux;
+    mainProgram = "radeon-profile";
   };
 
 }
diff --git a/pkgs/tools/misc/ramfetch/default.nix b/pkgs/tools/misc/ramfetch/default.nix
index a60315eaa58c1..136c335982771 100644
--- a/pkgs/tools/misc/ramfetch/default.nix
+++ b/pkgs/tools/misc/ramfetch/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.markbeep ];
+    mainProgram = "ramfetch";
   };
 }
diff --git a/pkgs/tools/misc/rargs/default.nix b/pkgs/tools/misc/rargs/default.nix
index ed15e81709d9b..54c7e393d2d26 100644
--- a/pkgs/tools/misc/rargs/default.nix
+++ b/pkgs/tools/misc/rargs/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/lolabout/rargs";
     license     = with licenses; [ mit ];
     maintainers = with maintainers; [ pblkt ];
+    mainProgram = "rargs";
   };
 }
diff --git a/pkgs/tools/misc/rates/default.nix b/pkgs/tools/misc/rates/default.nix
index 5d8b648469100..3989074d2461c 100644
--- a/pkgs/tools/misc/rates/default.nix
+++ b/pkgs/tools/misc/rates/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lunush/rates";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "rates";
   };
 }
diff --git a/pkgs/tools/misc/rauc/default.nix b/pkgs/tools/misc/rauc/default.nix
index 2bd41d21a5220..2fe8160bf718a 100644
--- a/pkgs/tools/misc/rauc/default.nix
+++ b/pkgs/tools/misc/rauc/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux;
+    mainProgram = "rauc";
   };
 }
diff --git a/pkgs/tools/misc/rename/default.nix b/pkgs/tools/misc/rename/default.nix
index a8b5f4a54ace9..d7eed90d06397 100644
--- a/pkgs/tools/misc/rename/default.nix
+++ b/pkgs/tools/misc/rename/default.nix
@@ -15,5 +15,6 @@ perlPackages.buildPerlPackage rec {
     homepage = "https://github.com/pstray/rename";
     maintainers = with maintainers; [ mkg cyplo ];
     license = with licenses; [ gpl1Plus ];
+    mainProgram = "rename";
   };
 }
diff --git a/pkgs/tools/misc/rfc/default.nix b/pkgs/tools/misc/rfc/default.nix
index e58c35fef3bdc..60d77bfbaca21 100644
--- a/pkgs/tools/misc/rfc/default.nix
+++ b/pkgs/tools/misc/rfc/default.nix
@@ -44,5 +44,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.all;
+    mainProgram = "rfc";
   };
 }
diff --git a/pkgs/tools/misc/rig/default.nix b/pkgs/tools/misc/rig/default.nix
index f21873df15e10..b9a3e0951e3c7 100644
--- a/pkgs/tools/misc/rig/default.nix
+++ b/pkgs/tools/misc/rig/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ tomberek ];
     platforms = with lib.platforms; all;
+    mainProgram = "rig";
   };
 }
diff --git a/pkgs/tools/misc/ripdrag/default.nix b/pkgs/tools/misc/ripdrag/default.nix
index b2288810d30e1..a3c27a48e9814 100644
--- a/pkgs/tools/misc/ripdrag/default.nix
+++ b/pkgs/tools/misc/ripdrag/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/nik012003/ripdrag/releases/tag/${src.rev}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "ripdrag";
   };
 }
diff --git a/pkgs/tools/misc/ristate/default.nix b/pkgs/tools/misc/ristate/default.nix
index 7c8dbb52181df..3c4baea4d3c1e 100644
--- a/pkgs/tools/misc/ristate/default.nix
+++ b/pkgs/tools/misc/ristate/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/snakedye/ristate";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "ristate";
   };
 }
diff --git a/pkgs/tools/misc/rlwrap/default.nix b/pkgs/tools/misc/rlwrap/default.nix
index 2d48edf2dfd24..f1c2d6a58971e 100644
--- a/pkgs/tools/misc/rlwrap/default.nix
+++ b/pkgs/tools/misc/rlwrap/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jlesquembre ];
+    mainProgram = "rlwrap";
   };
 }
diff --git a/pkgs/tools/misc/rmate-sh/default.nix b/pkgs/tools/misc/rmate-sh/default.nix
index 7fb51344edd1b..bc93c6e437fe2 100644
--- a/pkgs/tools/misc/rmate-sh/default.nix
+++ b/pkgs/tools/misc/rmate-sh/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl3;
     maintainers = with maintainers; [ pbsds ];
+    mainProgram = "rmate";
   };
 }
diff --git a/pkgs/tools/misc/rmlint/default.nix b/pkgs/tools/misc/rmlint/default.nix
index ec59a661ffcf0..502761dc94261 100644
--- a/pkgs/tools/misc/rmlint/default.nix
+++ b/pkgs/tools/misc/rmlint/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3;
     maintainers = with maintainers; [ aaschmid koral ];
+    mainProgram = "rmlint";
   };
 }
diff --git a/pkgs/tools/misc/rmw/default.nix b/pkgs/tools/misc/rmw/default.nix
index 46f5d9ae50ce9..a6bbb40840297 100644
--- a/pkgs/tools/misc/rmw/default.nix
+++ b/pkgs/tools/misc/rmw/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/theimpossibleastronaut/rmw/blob/${src.rev}/ChangeLog";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "rmw";
   };
 }
diff --git a/pkgs/tools/misc/roundup/default.nix b/pkgs/tools/misc/roundup/default.nix
index fd2272e6cd560..efe220fd5f9b5 100644
--- a/pkgs/tools/misc/roundup/default.nix
+++ b/pkgs/tools/misc/roundup/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.all;
+    mainProgram = "roundup";
   };
 }
diff --git a/pkgs/tools/misc/rpcsvc-proto/default.nix b/pkgs/tools/misc/rpcsvc-proto/default.nix
index b84bbb7d9d511..2de8bdefc880d 100644
--- a/pkgs/tools/misc/rpcsvc-proto/default.nix
+++ b/pkgs/tools/misc/rpcsvc-proto/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
+    mainProgram = "rpcgen";
   };
 }
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index b84bc955c46af..de0fcdbe6142f 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -120,5 +120,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ copumpkin ];
     platforms = platforms.linux;
+    mainProgram = "rpm-ostree";
   };
 }
diff --git a/pkgs/tools/misc/rtz/default.nix b/pkgs/tools/misc/rtz/default.nix
index 7ae6525e5b649..ba66935d0a951 100644
--- a/pkgs/tools/misc/rtz/default.nix
+++ b/pkgs/tools/misc/rtz/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/twitchax/rtz/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "rtz";
   };
 }
diff --git a/pkgs/tools/misc/rust-motd/default.nix b/pkgs/tools/misc/rust-motd/default.nix
index 7d2125a1e1ee5..26b582e5e9448 100644
--- a/pkgs/tools/misc/rust-motd/default.nix
+++ b/pkgs/tools/misc/rust-motd/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/rust-motd/rust-motd/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "rust-motd";
   };
 }
diff --git a/pkgs/tools/misc/rw/default.nix b/pkgs/tools/misc/rw/default.nix
index 5299d2491465b..e77009f7969f0 100644
--- a/pkgs/tools/misc/rw/default.nix
+++ b/pkgs/tools/misc/rw/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.isc;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "rw";
   };
 }
diff --git a/pkgs/tools/misc/sagoin/default.nix b/pkgs/tools/misc/sagoin/default.nix
index 7e6d3e26bd039..b3fdd6e99405d 100644
--- a/pkgs/tools/misc/sagoin/default.nix
+++ b/pkgs/tools/misc/sagoin/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/figsoda/sagoin/blob/v${version}/CHANGELOG.md";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "sagoin";
   };
 }
diff --git a/pkgs/tools/misc/sanctity/default.nix b/pkgs/tools/misc/sanctity/default.nix
index cdfc1b89e634e..7c892bb16894b 100644
--- a/pkgs/tools/misc/sanctity/default.nix
+++ b/pkgs/tools/misc/sanctity/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://codeberg.org/annaaurora/sanctity";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "sanctity";
   };
 }
diff --git a/pkgs/tools/misc/savepagenow/default.nix b/pkgs/tools/misc/savepagenow/default.nix
index d9166d07b74c7..da29fa3b05a9c 100644
--- a/pkgs/tools/misc/savepagenow/default.nix
+++ b/pkgs/tools/misc/savepagenow/default.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/pastpages/savepagenow";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "savepagenow";
   };
 }
diff --git a/pkgs/tools/misc/scdl/default.nix b/pkgs/tools/misc/scdl/default.nix
index c49e819d91bf2..611326d554030 100644
--- a/pkgs/tools/misc/scdl/default.nix
+++ b/pkgs/tools/misc/scdl/default.nix
@@ -30,5 +30,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/flyingrub/scdl";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "scdl";
   };
 }
diff --git a/pkgs/tools/misc/scfbuild/default.nix b/pkgs/tools/misc/scfbuild/default.nix
index 78434414b1a4d..e881a288f9599 100644
--- a/pkgs/tools/misc/scfbuild/default.nix
+++ b/pkgs/tools/misc/scfbuild/default.nix
@@ -30,5 +30,6 @@ buildPythonApplication {
     homepage = "https://github.com/13rac1/scfbuild";
     license = licenses.gpl3;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "scfbuild";
   };
 }
diff --git a/pkgs/tools/misc/screenfetch/default.nix b/pkgs/tools/misc/screenfetch/default.nix
index 83edfec258123..e3ad0e5c51c80 100644
--- a/pkgs/tools/misc/screenfetch/default.nix
+++ b/pkgs/tools/misc/screenfetch/default.nix
@@ -58,5 +58,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/KittyKatt/screenFetch";
     maintainers = with maintainers; [ relrod ];
     platforms = platforms.all;
+    mainProgram = "screenfetch";
   };
 }
diff --git a/pkgs/tools/misc/scrub/default.nix b/pkgs/tools/misc/scrub/default.nix
index f3a1ae619305c..2fc2b43ea29c2 100644
--- a/pkgs/tools/misc/scrub/default.nix
+++ b/pkgs/tools/misc/scrub/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ j0hax ];
     platforms = platforms.unix;
+    mainProgram = "scrub";
   };
 }
diff --git a/pkgs/tools/misc/sd-mux-ctrl/default.nix b/pkgs/tools/misc/sd-mux-ctrl/default.nix
index d42909a5c7777..4f832a35eb30e 100644
--- a/pkgs/tools/misc/sd-mux-ctrl/default.nix
+++ b/pkgs/tools/misc/sd-mux-ctrl/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers =  with maintainers; [ sarcasticadmin ];
     platforms = platforms.unix;
+    mainProgram = "sd-mux-ctrl";
   };
 }
diff --git a/pkgs/tools/misc/sdate/default.nix b/pkgs/tools/misc/sdate/default.nix
index abc046bb6d024..71ab04c807d8a 100644
--- a/pkgs/tools/misc/sdate/default.nix
+++ b/pkgs/tools/misc/sdate/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ edef ];
     platforms = platforms.all;
+    mainProgram = "sdate";
   };
 }
diff --git a/pkgs/tools/misc/see/default.nix b/pkgs/tools/misc/see/default.nix
index 60f55e8144c5e..025d22facd2ac 100644
--- a/pkgs/tools/misc/see/default.nix
+++ b/pkgs/tools/misc/see/default.nix
@@ -27,5 +27,6 @@ python3.pkgs.buildPythonApplication {
     homepage = "https://github.com/Textualize/textualize-see";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ anselmschueler ];
+    mainProgram = "see";
   };
 }
diff --git a/pkgs/tools/misc/semiphemeral/default.nix b/pkgs/tools/misc/semiphemeral/default.nix
index 67a5fb0149b69..7ccdd663082f2 100644
--- a/pkgs/tools/misc/semiphemeral/default.nix
+++ b/pkgs/tools/misc/semiphemeral/default.nix
@@ -23,5 +23,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/micahflee/semiphemeral";
     license = licenses.mit;
     maintainers = with maintainers; [ amanjeev ];
+    mainProgram = "semiphemeral";
   };
 }
diff --git a/pkgs/tools/misc/serverspec/default.nix b/pkgs/tools/misc/serverspec/default.nix
index 162b9d90cc03b..28196efc18a34 100644
--- a/pkgs/tools/misc/serverspec/default.nix
+++ b/pkgs/tools/misc/serverspec/default.nix
@@ -15,5 +15,6 @@ bundlerApp {
     homepage = "https://serverspec.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ dylanmtaylor ];
+    mainProgram = "serverspec-init";
   };
 }
diff --git a/pkgs/tools/misc/setconf/default.nix b/pkgs/tools/misc/setconf/default.nix
index fdb80bfb25ba8..8384617e5e5d0 100644
--- a/pkgs/tools/misc/setconf/default.nix
+++ b/pkgs/tools/misc/setconf/default.nix
@@ -20,5 +20,6 @@ buildPythonApplication rec {
     description = "A small utility for changing settings in configuration textfiles";
     changelog = "https://github.com/xyproto/setconf/releases/tag/${version}";
     maintainers = [ lib.maintainers.AndersonTorres ];
+    mainProgram = "setconf";
   };
 }
diff --git a/pkgs/tools/misc/sfz/default.nix b/pkgs/tools/misc/sfz/default.nix
index 0114858c99d91..41841d2ef2b92 100644
--- a/pkgs/tools/misc/sfz/default.nix
+++ b/pkgs/tools/misc/sfz/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/weihanglo/sfz";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "sfz";
   };
 }
diff --git a/pkgs/tools/misc/shadowenv/default.nix b/pkgs/tools/misc/shadowenv/default.nix
index 12723000cef78..06b7cb4e82c29 100644
--- a/pkgs/tools/misc/shadowenv/default.nix
+++ b/pkgs/tools/misc/shadowenv/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     description = "reversible directory-local environment variable manipulations";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "shadowenv";
   };
 }
diff --git a/pkgs/tools/misc/shallot/default.nix b/pkgs/tools/misc/shallot/default.nix
index 46c5714ce9667..4fbd07f38e329 100644
--- a/pkgs/tools/misc/shallot/default.nix
+++ b/pkgs/tools/misc/shallot/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     homepage = "https://github.com/katmagic/Shallot";
     platforms = lib.platforms.linux;
+    mainProgram = "shallot";
   };
 }
diff --git a/pkgs/tools/misc/sharedown/default.nix b/pkgs/tools/misc/sharedown/default.nix
index 0f93551965e23..5d1d31b35ac18 100644
--- a/pkgs/tools/misc/sharedown/default.nix
+++ b/pkgs/tools/misc/sharedown/default.nix
@@ -114,5 +114,6 @@ stdenvNoCC.mkDerivation rec {
     maintainers = with maintainers; [
     ];
     platforms = platforms.unix;
+    mainProgram = "Sharedown";
   };
 }
diff --git a/pkgs/tools/misc/sheldon/default.nix b/pkgs/tools/misc/sheldon/default.nix
index 73e9cb57d366e..ddff13c9bcfd4 100644
--- a/pkgs/tools/misc/sheldon/default.nix
+++ b/pkgs/tools/misc/sheldon/default.nix
@@ -62,5 +62,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ seqizz ];
     platforms = platforms.linux;
+    mainProgram = "sheldon";
   };
 }
diff --git a/pkgs/tools/misc/shell-hist/default.nix b/pkgs/tools/misc/shell-hist/default.nix
index 48e8667cc7e87..438b687c73f1b 100644
--- a/pkgs/tools/misc/shell-hist/default.nix
+++ b/pkgs/tools/misc/shell-hist/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/jamesmunns/shell-hist";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.spacekookie ];
+    mainProgram = "shell-hist";
   };
 }
diff --git a/pkgs/tools/misc/shelldap/default.nix b/pkgs/tools/misc/shelldap/default.nix
index b383c9692a9ca..045c5732c3e09 100644
--- a/pkgs/tools/misc/shelldap/default.nix
+++ b/pkgs/tools/misc/shelldap/default.nix
@@ -48,5 +48,6 @@ perlPackages.buildPerlPackage rec {
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ clerie tobiasBora ];
     platforms = platforms.unix;
+    mainProgram = "shelldap";
   };
 }
diff --git a/pkgs/tools/misc/shellspec/default.nix b/pkgs/tools/misc/shellspec/default.nix
index 480ada8d57166..b355f0fc02328 100644
--- a/pkgs/tools/misc/shellspec/default.nix
+++ b/pkgs/tools/misc/shellspec/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
     platforms = platforms.unix;
+    mainProgram = "shellspec";
   };
 }
diff --git a/pkgs/tools/misc/shunit2/default.nix b/pkgs/tools/misc/shunit2/default.nix
index 1120c756895b3..017d19264798e 100644
--- a/pkgs/tools/misc/shunit2/default.nix
+++ b/pkgs/tools/misc/shunit2/default.nix
@@ -86,5 +86,6 @@ resholve.mkDerivation rec {
     maintainers = with maintainers; [ abathur utdemir ];
     license = licenses.asl20;
     platforms = platforms.unix;
+    mainProgram = "shunit2";
   };
 }
diff --git a/pkgs/tools/misc/silicon/default.nix b/pkgs/tools/misc/silicon/default.nix
index ddc1ad6d639af..1da4d20c673fa 100644
--- a/pkgs/tools/misc/silicon/default.nix
+++ b/pkgs/tools/misc/silicon/default.nix
@@ -60,5 +60,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Aloxaf/silicon";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ evanjs _0x4A6F ];
+    mainProgram = "silicon";
   };
 }
diff --git a/pkgs/tools/misc/sixpair/default.nix b/pkgs/tools/misc/sixpair/default.nix
index 71a0af158246d..fa444a86a0ace 100644
--- a/pkgs/tools/misc/sixpair/default.nix
+++ b/pkgs/tools/misc/sixpair/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.tomsmeets ];
     platforms = lib.platforms.linux;
+    mainProgram = "sixpair";
   };
 }
diff --git a/pkgs/tools/misc/sl/default.nix b/pkgs/tools/misc/sl/default.nix
index dc55a8e783b94..bcb8de78c6130 100644
--- a/pkgs/tools/misc/sl/default.nix
+++ b/pkgs/tools/misc/sl/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     };
     maintainers = with maintainers; [ eyjhb ];
     platforms = platforms.unix;
+    mainProgram = "sl";
   };
 }
diff --git a/pkgs/tools/misc/slop/default.nix b/pkgs/tools/misc/slop/default.nix
index 05b008997b7fd..b3903bd951536 100644
--- a/pkgs/tools/misc/slop/default.nix
+++ b/pkgs/tools/misc/slop/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
+    mainProgram = "slop";
   };
 }
diff --git a/pkgs/tools/misc/sloth/default.nix b/pkgs/tools/misc/sloth/default.nix
index c0621419fd37f..2386b5a54a86e 100644
--- a/pkgs/tools/misc/sloth/default.nix
+++ b/pkgs/tools/misc/sloth/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ nrhtr ];
     platforms = lib.platforms.unix;
+    mainProgram = "sloth";
   };
 }
diff --git a/pkgs/tools/misc/slsnif/default.nix b/pkgs/tools/misc/slsnif/default.nix
index fd2b4c53d60a8..04bc462350f15 100644
--- a/pkgs/tools/misc/slsnif/default.nix
+++ b/pkgs/tools/misc/slsnif/default.nix
@@ -14,5 +14,6 @@ stdenv.mkDerivation rec {
     homepage = "http://slsnif.sourceforge.net/";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
+    mainProgram = "slsnif";
   };
 }
diff --git a/pkgs/tools/misc/smc/default.nix b/pkgs/tools/misc/smc/default.nix
index f3db213c84fe3..99ed8de45e451 100644
--- a/pkgs/tools/misc/smc/default.nix
+++ b/pkgs/tools/misc/smc/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl11;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "smc";
   };
 }
diff --git a/pkgs/tools/misc/smenu/default.nix b/pkgs/tools/misc/smenu/default.nix
index 9768b33c5ce9f..d2d893936f50c 100644
--- a/pkgs/tools/misc/smenu/default.nix
+++ b/pkgs/tools/misc/smenu/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ matthiasbeyer ];
     platforms = platforms.unix;
+    mainProgram = "smenu";
   };
 }
diff --git a/pkgs/tools/misc/smug/default.nix b/pkgs/tools/misc/smug/default.nix
index c620ba67b0cff..e528b21287593 100644
--- a/pkgs/tools/misc/smug/default.nix
+++ b/pkgs/tools/misc/smug/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     description = "Smug - tmux session manager";
     license = licenses.mit;
     maintainers = with maintainers; [ juboba ];
+    mainProgram = "smug";
   };
 }
diff --git a/pkgs/tools/misc/snore/default.nix b/pkgs/tools/misc/snore/default.nix
index a5351794acf7c..a3b9d67bba461 100644
--- a/pkgs/tools/misc/snore/default.nix
+++ b/pkgs/tools/misc/snore/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.unix;
+    mainProgram = "snore";
   };
 }
diff --git a/pkgs/tools/misc/sonota/default.nix b/pkgs/tools/misc/sonota/default.nix
index d111e0b2b7176..5f341bbc98ee9 100644
--- a/pkgs/tools/misc/sonota/default.nix
+++ b/pkgs/tools/misc/sonota/default.nix
@@ -50,5 +50,6 @@ in buildPythonApplication rec {
     homepage = src.meta.homepage;
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "sonota";
   };
 }
diff --git a/pkgs/tools/misc/spacer/default.nix b/pkgs/tools/misc/spacer/default.nix
index 0101b581f6a7c..5bf584c07a144 100644
--- a/pkgs/tools/misc/spacer/default.nix
+++ b/pkgs/tools/misc/spacer/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/samwho/spacer/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "spacer";
   };
 }
diff --git a/pkgs/tools/misc/sqlite3-to-mysql/default.nix b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
index 412d29c3307c6..68ee19e6c6820 100644
--- a/pkgs/tools/misc/sqlite3-to-mysql/default.nix
+++ b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
@@ -59,5 +59,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/techouse/sqlite3-to-mysql";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
+    mainProgram = "sqlite3mysql";
   };
 }
diff --git a/pkgs/tools/misc/srisum/default.nix b/pkgs/tools/misc/srisum/default.nix
index 04fe962f97ade..8412e48d7907c 100644
--- a/pkgs/tools/misc/srisum/default.nix
+++ b/pkgs/tools/misc/srisum/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ pjjw ];
     platforms = platforms.all;
+    mainProgram = "srisum";
   };
 }
diff --git a/pkgs/tools/misc/star-history/default.nix b/pkgs/tools/misc/star-history/default.nix
index caa584a020645..113280617cb01 100644
--- a/pkgs/tools/misc/star-history/default.nix
+++ b/pkgs/tools/misc/star-history/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dtolnay/star-history";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "star-history";
   };
 }
diff --git a/pkgs/tools/misc/starfetch/default.nix b/pkgs/tools/misc/starfetch/default.nix
index ba6309c97ecbd..962409d21763e 100644
--- a/pkgs/tools/misc/starfetch/default.nix
+++ b/pkgs/tools/misc/starfetch/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ annaaurora ];
+    mainProgram = "starfetch";
   };
 }
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
index 388a407a52b75..058c2118db54a 100644
--- a/pkgs/tools/misc/staruml/default.nix
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -75,5 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.unfree;
     maintainers = with maintainers; [ kashw2 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "staruml";
   };
 })
diff --git a/pkgs/tools/misc/statserial/default.nix b/pkgs/tools/misc/statserial/default.nix
index 8b5ae4cdc86e9..526729dcd31cf 100644
--- a/pkgs/tools/misc/statserial/default.nix
+++ b/pkgs/tools/misc/statserial/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.unix;
     maintainers = with maintainers; [ rps ];
+    mainProgram = "statserial";
   };
 }
diff --git a/pkgs/tools/misc/subberthehut/default.nix b/pkgs/tools/misc/subberthehut/default.nix
index b9698e1e53642..913bc49a5116d 100644
--- a/pkgs/tools/misc/subberthehut/default.nix
+++ b/pkgs/tools/misc/subberthehut/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jqueiroz ];
+    mainProgram = "subberthehut";
   };
 }
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 5f7b29ded042a..c9e4664c63719 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -68,5 +68,6 @@ stdenv.mkDerivation rec {
     description = "Command-line tool to download videos from svtplay.se and other sites";
     license = licenses.mit;
     platforms = lib.platforms.unix;
+    mainProgram = "svtplay-dl";
   };
 }
diff --git a/pkgs/tools/misc/svu/default.nix b/pkgs/tools/misc/svu/default.nix
index a3dddeba0e691..352f4d0ab721e 100644
--- a/pkgs/tools/misc/svu/default.nix
+++ b/pkgs/tools/misc/svu/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/caarlos0/svu";
     maintainers = with maintainers; [ caarlos0 ];
     license = licenses.mit;
+    mainProgram = "svu";
   };
 }
diff --git a/pkgs/tools/misc/swaglyrics/default.nix b/pkgs/tools/misc/swaglyrics/default.nix
index 730290f8cf389..4b9095ff59d74 100644
--- a/pkgs/tools/misc/swaglyrics/default.nix
+++ b/pkgs/tools/misc/swaglyrics/default.nix
@@ -62,5 +62,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/SwagLyrics/SwagLyrics-For-Spotify";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "swaglyrics";
   };
 }
diff --git a/pkgs/tools/misc/systrayhelper/default.nix b/pkgs/tools/misc/systrayhelper/default.nix
index cc000d62d08af..1635054b56c66 100644
--- a/pkgs/tools/misc/systrayhelper/default.nix
+++ b/pkgs/tools/misc/systrayhelper/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     license = licenses.mit;
     # It depends on the inputs, i guess? not sure about solaris, for instance. go supports it though
     # I hope nix can figure this out?! ¯\\_(ツ)_/¯
+    mainProgram = "systrayhelper";
   };
 }
diff --git a/pkgs/tools/misc/sysz/default.nix b/pkgs/tools/misc/sysz/default.nix
index bf45983c106a8..37b34aec2d273 100644
--- a/pkgs/tools/misc/sysz/default.nix
+++ b/pkgs/tools/misc/sysz/default.nix
@@ -29,5 +29,6 @@ stdenvNoCC.mkDerivation rec {
     maintainers = with maintainers; [ hleboulanger ];
     platforms = platforms.unix;
     changelog = "https://github.com/joehillen/sysz/blob/${version}/CHANGELOG.md";
+    mainProgram = "sysz";
   };
 }
diff --git a/pkgs/tools/misc/szyszka/default.nix b/pkgs/tools/misc/szyszka/default.nix
index 58d839acf0785..335bc81febe0c 100644
--- a/pkgs/tools/misc/szyszka/default.nix
+++ b/pkgs/tools/misc/szyszka/default.nix
@@ -43,5 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/qarmin/szyszka";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
+    mainProgram = "szyszka";
   };
 }
diff --git a/pkgs/tools/misc/t/default.nix b/pkgs/tools/misc/t/default.nix
index dd0eda67ce55a..4d0c961847cee 100644
--- a/pkgs/tools/misc/t/default.nix
+++ b/pkgs/tools/misc/t/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.asl20;
     maintainers = with maintainers; [ offline manveru nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "t";
   };
 }
diff --git a/pkgs/tools/misc/tagref/default.nix b/pkgs/tools/misc/tagref/default.nix
index 67745de84f2aa..df393571d3807 100644
--- a/pkgs/tools/misc/tagref/default.nix
+++ b/pkgs/tools/misc/tagref/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = [ maintainers.yusdacra ];
     platforms = platforms.unix;
+    mainProgram = "tagref";
   };
 }
diff --git a/pkgs/tools/misc/tailer/default.nix b/pkgs/tools/misc/tailer/default.nix
index f3c4d3545252c..96631875f5a49 100644
--- a/pkgs/tools/misc/tailer/default.nix
+++ b/pkgs/tools/misc/tailer/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     homepage = "https://github.com/hionay/tailer";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "tailer";
   };
 }
diff --git a/pkgs/tools/misc/tbls/default.nix b/pkgs/tools/misc/tbls/default.nix
index f9f334fb1036d..02e666457981d 100644
--- a/pkgs/tools/misc/tbls/default.nix
+++ b/pkgs/tools/misc/tbls/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
     changelog = "https://github.com/k1LoW/tbls/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
+    mainProgram = "tbls";
   };
 }
diff --git a/pkgs/tools/misc/tcat/default.nix b/pkgs/tools/misc/tcat/default.nix
index 1f6c45f32dc1c..5afa7e83affaa 100644
--- a/pkgs/tools/misc/tcat/default.nix
+++ b/pkgs/tools/misc/tcat/default.nix
@@ -17,5 +17,6 @@ buildGoModule rec {
     homepage = "https://github.com/rsc/tcat";
     maintainers = with maintainers; [ mmlb ];
     license = licenses.bsd3;
+    mainProgram = "tcat";
   };
 }
diff --git a/pkgs/tools/misc/td/default.nix b/pkgs/tools/misc/td/default.nix
index bca5bd601d416..ebfe642a27d27 100644
--- a/pkgs/tools/misc/td/default.nix
+++ b/pkgs/tools/misc/td/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = licenses.asl20;
     maintainers =  with maintainers; [ groodt nicknovitski ];
     platforms   = platforms.unix;
+    mainProgram = "td";
   };
 }
diff --git a/pkgs/tools/misc/tdfgo/default.nix b/pkgs/tools/misc/tdfgo/default.nix
index 91a0345c99f80..bd9603b5fa98f 100644
--- a/pkgs/tools/misc/tdfgo/default.nix
+++ b/pkgs/tools/misc/tdfgo/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     license = licenses.cc0;
     platforms = platforms.linux;
     maintainers = with maintainers; [ crinklywrappr ];
+    mainProgram = "tdfgo";
   };
 }
diff --git a/pkgs/tools/misc/tea/default.nix b/pkgs/tools/misc/tea/default.nix
index 13bd0f8f2b3f8..8e985c9ec13dc 100644
--- a/pkgs/tools/misc/tea/default.nix
+++ b/pkgs/tools/misc/tea/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage    = "https://gitea.com/gitea/tea";
     license     = licenses.mit;
     maintainers = with maintainers; [ j4m3s techknowlogick ];
+    mainProgram = "tea";
   };
 }
diff --git a/pkgs/tools/misc/teamocil/default.nix b/pkgs/tools/misc/teamocil/default.nix
index 5218453d15e3b..4344668809cef 100644
--- a/pkgs/tools/misc/teamocil/default.nix
+++ b/pkgs/tools/misc/teamocil/default.nix
@@ -16,5 +16,6 @@ bundlerEnv {
       zachcoyle
       nicknovitski
     ];
+    mainProgram = "teamocil";
   };
 }
diff --git a/pkgs/tools/misc/tensorman/default.nix b/pkgs/tools/misc/tensorman/default.nix
index c5742b21afa40..b6f11d190c105 100644
--- a/pkgs/tools/misc/tensorman/default.nix
+++ b/pkgs/tools/misc/tensorman/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/pop-os/tensorman";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ thefenriswolf ];
+    mainProgram = "tensorman";
   };
 }
diff --git a/pkgs/tools/misc/tere/default.nix b/pkgs/tools/misc/tere/default.nix
index a2a4a506bc0d0..70bd03ccaa49b 100644
--- a/pkgs/tools/misc/tere/default.nix
+++ b/pkgs/tools/misc/tere/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mgunyho/tere";
     license = licenses.eupl12;
     maintainers = with maintainers; [ ProducerMatt ];
+    mainProgram = "tere";
   };
 }
diff --git a/pkgs/tools/misc/termplay/default.nix b/pkgs/tools/misc/termplay/default.nix
index 2d493b857fc1c..aa35e24da0172 100644
--- a/pkgs/tools/misc/termplay/default.nix
+++ b/pkgs/tools/misc/termplay/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "termplay";
   };
 }
diff --git a/pkgs/tools/misc/termtosvg/default.nix b/pkgs/tools/misc/termtosvg/default.nix
index 0f9816fe10e5b..86217693a58fd 100644
--- a/pkgs/tools/misc/termtosvg/default.nix
+++ b/pkgs/tools/misc/termtosvg/default.nix
@@ -16,5 +16,6 @@ python3Packages.buildPythonApplication rec {
     description = "Record terminal sessions as SVG animations";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    mainProgram = "termtosvg";
   };
 }
diff --git a/pkgs/tools/misc/tewisay/default.nix b/pkgs/tools/misc/tewisay/default.nix
index 35b66a0936839..f4ae05711285f 100644
--- a/pkgs/tools/misc/tewisay/default.nix
+++ b/pkgs/tools/misc/tewisay/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     description = "Cowsay replacement with unicode and partial ansi escape support";
     license = with licenses; [ cc0 ];
     maintainers = with maintainers; [ Madouura ];
+    mainProgram = "tewisay";
   };
 }
diff --git a/pkgs/tools/misc/texi2mdoc/default.nix b/pkgs/tools/misc/texi2mdoc/default.nix
index 2b73c4f34dbbc..94219a0042509 100644
--- a/pkgs/tools/misc/texi2mdoc/default.nix
+++ b/pkgs/tools/misc/texi2mdoc/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "texi2mdoc";
   };
 }
diff --git a/pkgs/tools/misc/tfk8s/default.nix b/pkgs/tools/misc/tfk8s/default.nix
index a694360db373f..52795b7540025 100644
--- a/pkgs/tools/misc/tfk8s/default.nix
+++ b/pkgs/tools/misc/tfk8s/default.nix
@@ -44,5 +44,6 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/jrhouston/tfk8s/";
     maintainers = with maintainers; [ bryanasdev000 ];
+    mainProgram = "tfk8s";
   };
 }
diff --git a/pkgs/tools/misc/tgpt/default.nix b/pkgs/tools/misc/tgpt/default.nix
index 6436e0be2050e..cf100e5d33fda 100644
--- a/pkgs/tools/misc/tgpt/default.nix
+++ b/pkgs/tools/misc/tgpt/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/aandrew-me/tgpt/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "tgpt";
   };
 }
diff --git a/pkgs/tools/misc/time-decode/default.nix b/pkgs/tools/misc/time-decode/default.nix
index 5d6f3ed8a958a..edd0eba43a246 100644
--- a/pkgs/tools/misc/time-decode/default.nix
+++ b/pkgs/tools/misc/time-decode/default.nix
@@ -33,5 +33,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/digitalsleuth/time_decode/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "time-decode";
   };
 }
diff --git a/pkgs/tools/misc/timelimit/default.nix b/pkgs/tools/misc/timelimit/default.nix
index 01de2c01c8782..534cd320bf1a3 100644
--- a/pkgs/tools/misc/timelimit/default.nix
+++ b/pkgs/tools/misc/timelimit/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "timelimit";
   };
 }
diff --git a/pkgs/tools/misc/timer/default.nix b/pkgs/tools/misc/timer/default.nix
index 962ad1a6dd695..908127575e7a4 100644
--- a/pkgs/tools/misc/timer/default.nix
+++ b/pkgs/tools/misc/timer/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/caarlos0/timer";
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq caarlos0 ];
+    mainProgram = "timer";
   };
 }
diff --git a/pkgs/tools/misc/timetagger_cli/default.nix b/pkgs/tools/misc/timetagger_cli/default.nix
index 38b0cc88bb1ee..f6204e2d8fe12 100644
--- a/pkgs/tools/misc/timetagger_cli/default.nix
+++ b/pkgs/tools/misc/timetagger_cli/default.nix
@@ -28,6 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/almarklein/timetagger_cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "timetagger";
   };
 }
 
diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix
index a8ccd27a89da0..65d154476f02c 100644
--- a/pkgs/tools/misc/timidity/default.nix
+++ b/pkgs/tools/misc/timidity/default.nix
@@ -92,5 +92,6 @@ stdenv.mkDerivation rec {
     description = "A software MIDI renderer";
     maintainers = [ maintainers.marcweber ];
     platforms = platforms.unix;
+    mainProgram = "timidity";
   };
 }
diff --git a/pkgs/tools/misc/tio/default.nix b/pkgs/tools/misc/tio/default.nix
index c179614cfae50..88e121368e669 100644
--- a/pkgs/tools/misc/tio/default.nix
+++ b/pkgs/tools/misc/tio/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
+    mainProgram = "tio";
   };
 }
diff --git a/pkgs/tools/misc/tldr/default.nix b/pkgs/tools/misc/tldr/default.nix
index 01d50e5f7cf87..3d9655f114dcb 100644
--- a/pkgs/tools/misc/tldr/default.nix
+++ b/pkgs/tools/misc/tldr/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ taeer carlosdagos kbdharun];
     platforms = platforms.all;
+    mainProgram = "tldr";
   };
 }
diff --git a/pkgs/tools/misc/tmate/default.nix b/pkgs/tools/misc/tmate/default.nix
index 1956f25fb97f7..9e1cbdee12774 100644
--- a/pkgs/tools/misc/tmate/default.nix
+++ b/pkgs/tools/misc/tmate/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation {
     license     = licenses.mit;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ ck3d ];
+    mainProgram = "tmate";
   };
 }
diff --git a/pkgs/tools/misc/tmpwatch/default.nix b/pkgs/tools/misc/tmpwatch/default.nix
index 9d9bb853f2f99..873b7c0f6f0a2 100644
--- a/pkgs/tools/misc/tmpwatch/default.nix
+++ b/pkgs/tools/misc/tmpwatch/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ vlstill ];
     platforms = platforms.unix;
+    mainProgram = "tmpwatch";
   };
 }
diff --git a/pkgs/tools/misc/tmux-cssh/default.nix b/pkgs/tools/misc/tmux-cssh/default.nix
index c69853635e909..7da4293dc0c81 100644
--- a/pkgs/tools/misc/tmux-cssh/default.nix
+++ b/pkgs/tools/misc/tmux-cssh/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation {
 
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ zimbatm ];
+    mainProgram = "tmux-cssh";
   };
 }
diff --git a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
index e384f0f72d7bb..1e197ef162eab 100644
--- a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
+++ b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ thomasjm ];
     platforms = platforms.all;
+    mainProgram = "tmux-mem-cpu-load";
   };
 }
diff --git a/pkgs/tools/misc/tmux-sessionizer/default.nix b/pkgs/tools/misc/tmux-sessionizer/default.nix
index 0c0075b2a6b5f..e0e8dd9efb4b2 100644
--- a/pkgs/tools/misc/tmux-sessionizer/default.nix
+++ b/pkgs/tools/misc/tmux-sessionizer/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jrmoulton/tmux-sessionizer";
     license = licenses.mit;
     maintainers = with maintainers; [ vinnymeller ];
+    mainProgram = "tms";
   };
 }
diff --git a/pkgs/tools/misc/tmuxinator/default.nix b/pkgs/tools/misc/tmuxinator/default.nix
index 239f3cc2e7eb4..379430761399f 100644
--- a/pkgs/tools/misc/tmuxinator/default.nix
+++ b/pkgs/tools/misc/tmuxinator/default.nix
@@ -49,5 +49,6 @@ buildRubyGem rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ auntie ericsagnes ];
     platforms   = platforms.unix;
+    mainProgram = "tmuxinator";
   };
 }
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index cd80aa3495cbe..8babec3122680 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -38,5 +38,6 @@ python3Packages.buildPythonApplication rec {
     changelog = "https://github.com/tmux-python/tmuxp/raw/v${version}/CHANGES";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "tmuxp";
   };
 }
diff --git a/pkgs/tools/misc/toastify/default.nix b/pkgs/tools/misc/toastify/default.nix
index 6b853bc0b2991..2de5877c0f057 100644
--- a/pkgs/tools/misc/toastify/default.nix
+++ b/pkgs/tools/misc/toastify/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/hoodie/toastify/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ colemickens ];
+    mainProgram = "toastify";
   };
 }
diff --git a/pkgs/tools/misc/toilet/default.nix b/pkgs/tools/misc/toilet/default.nix
index d67383e4d5212..8fdeb8b40739c 100644
--- a/pkgs/tools/misc/toilet/default.nix
+++ b/pkgs/tools/misc/toilet/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.wtfpl;
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.all;
+    mainProgram = "toilet";
   };
 }
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index 757cb69cbb0bd..24ed027b841ae 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -52,5 +52,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/topgrade-rs/topgrade/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SuperSandro2000 xyenon ];
+    mainProgram = "topgrade";
   };
 }
diff --git a/pkgs/tools/misc/topicctl/default.nix b/pkgs/tools/misc/topicctl/default.nix
index b0496914b354e..ca5f4fa89d889 100644
--- a/pkgs/tools/misc/topicctl/default.nix
+++ b/pkgs/tools/misc/topicctl/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     license = licenses.mit;
     maintainers = with maintainers; [ eskytthe srhb ];
+    mainProgram = "topicctl";
   };
 }
diff --git a/pkgs/tools/misc/torrenttools/default.nix b/pkgs/tools/misc/torrenttools/default.nix
index f8da452c52f7d..0fa5dbffafbbb 100644
--- a/pkgs/tools/misc/torrenttools/default.nix
+++ b/pkgs/tools/misc/torrenttools/default.nix
@@ -95,5 +95,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
     platforms = platforms.unix;
+    mainProgram = "torrenttools";
   };
 }
diff --git a/pkgs/tools/misc/traefik-certs-dumper/default.nix b/pkgs/tools/misc/traefik-certs-dumper/default.nix
index 410f85de4d12b..18ed06c630ede 100644
--- a/pkgs/tools/misc/traefik-certs-dumper/default.nix
+++ b/pkgs/tools/misc/traefik-certs-dumper/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/ldez/traefik-certs-dumper";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
+    mainProgram = "traefik-certs-dumper";
   };
 }
diff --git a/pkgs/tools/misc/triehash/default.nix b/pkgs/tools/misc/triehash/default.nix
index b916214fab520..9e70db4114a55 100644
--- a/pkgs/tools/misc/triehash/default.nix
+++ b/pkgs/tools/misc/triehash/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = with licenses; mit;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = perlPackages.perl.meta.platforms;
+    mainProgram = "triehash";
   };
 }
diff --git a/pkgs/tools/misc/ttchat/default.nix b/pkgs/tools/misc/ttchat/default.nix
index 46d366dee379d..5aad1527df42d 100644
--- a/pkgs/tools/misc/ttchat/default.nix
+++ b/pkgs/tools/misc/ttchat/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/atye/ttchat";
     license = licenses.asl20;
     maintainers = with maintainers; [ wolfangaukang ];
+    mainProgram = "ttchat";
   };
 }
diff --git a/pkgs/tools/misc/ttmkfdir/default.nix b/pkgs/tools/misc/ttmkfdir/default.nix
index 47ff95c14f5f7..6edf9cc4ef986 100644
--- a/pkgs/tools/misc/ttmkfdir/default.nix
+++ b/pkgs/tools/misc/ttmkfdir/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation {
   meta = {
     description = "Create fonts.dir for TTF font directory";
     platforms = lib.platforms.linux;
+    mainProgram = "ttmkfdir";
   };
 }
diff --git a/pkgs/tools/misc/tty-clock/default.nix b/pkgs/tools/misc/tty-clock/default.nix
index 03be10bf10b63..32701caa64de4 100644
--- a/pkgs/tools/misc/tty-clock/default.nix
+++ b/pkgs/tools/misc/tty-clock/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     description = "Digital clock in ncurses";
     platforms = platforms.all;
     maintainers = [ maintainers.koral ];
+    mainProgram = "tty-clock";
   };
 }
diff --git a/pkgs/tools/misc/ttygif/default.nix b/pkgs/tools/misc/ttygif/default.nix
index d9a97f6c23509..689138186cb6b 100644
--- a/pkgs/tools/misc/ttygif/default.nix
+++ b/pkgs/tools/misc/ttygif/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ moaxcp ];
+    mainProgram = "ttygif";
   };
 }
diff --git a/pkgs/tools/misc/ttylog/default.nix b/pkgs/tools/misc/ttylog/default.nix
index ae521167431d7..ca90481ba9e63 100644
--- a/pkgs/tools/misc/ttylog/default.nix
+++ b/pkgs/tools/misc/ttylog/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "ttylog";
   };
 }
diff --git a/pkgs/tools/misc/ttyplot/default.nix b/pkgs/tools/misc/ttyplot/default.nix
index 3778048143be3..594c6de654afc 100644
--- a/pkgs/tools/misc/ttyplot/default.nix
+++ b/pkgs/tools/misc/ttyplot/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/tenox7/ttyplot";
     license = licenses.unlicense;
     maintainers = with maintainers; [ lassulus ];
+    mainProgram = "ttyplot";
   };
 }
diff --git a/pkgs/tools/misc/tvnamer/default.nix b/pkgs/tools/misc/tvnamer/default.nix
index a2d5c9e87a4a6..ba3a91bcde16b 100644
--- a/pkgs/tools/misc/tvnamer/default.nix
+++ b/pkgs/tools/misc/tvnamer/default.nix
@@ -48,5 +48,6 @@ pypkgs.buildPythonApplication rec {
     homepage = "https://github.com/dbr/tvnamer";
     license = licenses.unlicense;
     maintainers = with maintainers; [ peterhoeg ];
+    mainProgram = "tvnamer";
   };
 }
diff --git a/pkgs/tools/misc/twitch-dl/default.nix b/pkgs/tools/misc/twitch-dl/default.nix
index e42e26a989aa7..8364acb20eb81 100644
--- a/pkgs/tools/misc/twitch-dl/default.nix
+++ b/pkgs/tools/misc/twitch-dl/default.nix
@@ -49,5 +49,6 @@ python3Packages.buildPythonApplication rec {
     changelog = "https://github.com/ihabunek/twitch-dl/blob/${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ marsam ];
+    mainProgram = "twitch-dl";
   };
 }
diff --git a/pkgs/tools/misc/twm/default.nix b/pkgs/tools/misc/twm/default.nix
index 3f08d53fd4548..79c3584ca9ca8 100644
--- a/pkgs/tools/misc/twm/default.nix
+++ b/pkgs/tools/misc/twm/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/vinnymeller/twm/releases/tag/v${version}";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ vinnymeller ];
+    mainProgram = "twm";
   };
 }
diff --git a/pkgs/tools/misc/twspace-crawler/default.nix b/pkgs/tools/misc/twspace-crawler/default.nix
index df1ef6e6e2c24..34a1c72e20486 100644
--- a/pkgs/tools/misc/twspace-crawler/default.nix
+++ b/pkgs/tools/misc/twspace-crawler/default.nix
@@ -19,5 +19,6 @@ buildNpmPackage rec {
     changelog = "https://github.com/HitomaruKonpaku/twspace-crawler/blob/${src.rev}/CHANGELOG.md";
     license = licenses.isc;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "twspace-crawler";
   };
 }
diff --git a/pkgs/tools/misc/twurl/default.nix b/pkgs/tools/misc/twurl/default.nix
index dccb67fbaf6c2..ff332e88de917 100644
--- a/pkgs/tools/misc/twurl/default.nix
+++ b/pkgs/tools/misc/twurl/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license     = "MIT";
     maintainers = with maintainers; [ brecht ];
     platforms   = platforms.unix;
+    mainProgram = "twurl";
   };
 }
diff --git a/pkgs/tools/misc/txtw/default.nix b/pkgs/tools/misc/txtw/default.nix
index e8a14b57634a7..9f8783491b11a 100644
--- a/pkgs/tools/misc/txtw/default.nix
+++ b/pkgs/tools/misc/txtw/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ lihop ];
     license = licenses.unlicense;
     platforms = platforms.linux;
+    mainProgram = "txtw";
   };
 }
diff --git a/pkgs/tools/misc/tydra/default.nix b/pkgs/tools/misc/tydra/default.nix
index fd8e8e6ee5a84..551519695c432 100644
--- a/pkgs/tools/misc/tydra/default.nix
+++ b/pkgs/tools/misc/tydra/default.nix
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Mange/tydra";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "tydra";
   };
 }
diff --git a/pkgs/tools/misc/tz/default.nix b/pkgs/tools/misc/tz/default.nix
index c86d8a48c4eec..58cf17384ee3d 100644
--- a/pkgs/tools/misc/tz/default.nix
+++ b/pkgs/tools/misc/tz/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/oz/tz";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "tz";
   };
 }
diff --git a/pkgs/tools/misc/ugs/default.nix b/pkgs/tools/misc/ugs/default.nix
index aae9daddae9e8..395a9e42009c6 100644
--- a/pkgs/tools/misc/ugs/default.nix
+++ b/pkgs/tools/misc/ugs/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "ugs";
   };
 }
diff --git a/pkgs/tools/misc/uhubctl/default.nix b/pkgs/tools/misc/uhubctl/default.nix
index 39db9c09785f5..e148e03f820e0 100644
--- a/pkgs/tools/misc/uhubctl/default.nix
+++ b/pkgs/tools/misc/uhubctl/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ prusnak ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "uhubctl";
   };
 }
diff --git a/pkgs/tools/misc/umlet/default.nix b/pkgs/tools/misc/umlet/default.nix
index 67cf61ebe5a12..b9d3e5d315380 100644
--- a/pkgs/tools/misc/umlet/default.nix
+++ b/pkgs/tools/misc/umlet/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = with maintainers; [ oxzi ];
     platforms = platforms.all;
+    mainProgram = "umlet";
   };
 }
diff --git a/pkgs/tools/misc/unclutter/default.nix b/pkgs/tools/misc/unclutter/default.nix
index b11df6655bf35..5d711c5fd03d0 100644
--- a/pkgs/tools/misc/unclutter/default.nix
+++ b/pkgs/tools/misc/unclutter/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ domenkozar ];
     platforms = platforms.unix;
     license = lib.licenses.publicDomain;
+    mainProgram = "unclutter";
   };
 }
diff --git a/pkgs/tools/misc/undocker/default.nix b/pkgs/tools/misc/undocker/default.nix
index f80642f1e8129..a2ce7dfb7aa16 100644
--- a/pkgs/tools/misc/undocker/default.nix
+++ b/pkgs/tools/misc/undocker/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "A CLI tool to convert a Docker image to a flattened rootfs tarball";
     license = licenses.asl20;
     maintainers = with maintainers; [ jordanisaacs ];
+    mainProgram = "undocker";
   };
 }
diff --git a/pkgs/tools/misc/unparam/default.nix b/pkgs/tools/misc/unparam/default.nix
index 3f87e0edd64be..6578f08c59aec 100644
--- a/pkgs/tools/misc/unparam/default.nix
+++ b/pkgs/tools/misc/unparam/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/mvdan/unparam";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "unparam";
   };
 }
diff --git a/pkgs/tools/misc/up/default.nix b/pkgs/tools/misc/up/default.nix
index d9ce59f965724..9fa0c700b8c37 100644
--- a/pkgs/tools/misc/up/default.nix
+++ b/pkgs/tools/misc/up/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/akavel/up";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.asl20;
+    mainProgram = "up";
   };
 }
diff --git a/pkgs/tools/misc/url-parser/default.nix b/pkgs/tools/misc/url-parser/default.nix
index 418e35b03a9d0..ae74dc7396f2b 100644
--- a/pkgs/tools/misc/url-parser/default.nix
+++ b/pkgs/tools/misc/url-parser/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     changelog = "https://github.com/thegeeklab/url-parser/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "url-parser";
   };
 }
diff --git a/pkgs/tools/misc/urlencode/default.nix b/pkgs/tools/misc/urlencode/default.nix
index 896f77398bd11..6b8097a6b5278 100644
--- a/pkgs/tools/misc/urlencode/default.nix
+++ b/pkgs/tools/misc/urlencode/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dead10ck/urlencode";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
+    mainProgram = "urlencode";
   };
 }
diff --git a/pkgs/tools/misc/usbimager/default.nix b/pkgs/tools/misc/usbimager/default.nix
index ff4dea4a8c9e4..b845062c1783e 100644
--- a/pkgs/tools/misc/usbimager/default.nix
+++ b/pkgs/tools/misc/usbimager/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux;
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
+    mainProgram = "usbimager";
   };
 }
diff --git a/pkgs/tools/misc/usbmuxd/default.nix b/pkgs/tools/misc/usbmuxd/default.nix
index 2e9c2318081e8..5a391762cd082 100644
--- a/pkgs/tools/misc/usbmuxd/default.nix
+++ b/pkgs/tools/misc/usbmuxd/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "usbmuxd";
   };
 }
diff --git a/pkgs/tools/misc/usbmuxd2/default.nix b/pkgs/tools/misc/usbmuxd2/default.nix
index 18014b60371fd..fae54b4ec18ce 100644
--- a/pkgs/tools/misc/usbmuxd2/default.nix
+++ b/pkgs/tools/misc/usbmuxd2/default.nix
@@ -90,5 +90,6 @@ clangStdenv.mkDerivation rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ onny ];
+    mainProgram = "usbmuxd";
   };
 }
diff --git a/pkgs/tools/misc/usbview/default.nix b/pkgs/tools/misc/usbview/default.nix
index 2f417ea86de55..71a4ddeefd8d8 100644
--- a/pkgs/tools/misc/usbview/default.nix
+++ b/pkgs/tools/misc/usbview/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.kroah.com/linux-usb/";
     maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
+    mainProgram = "usbview";
   };
 }
diff --git a/pkgs/tools/misc/uwufetch/default.nix b/pkgs/tools/misc/uwufetch/default.nix
index f86320a59b32c..a7241e6488be4 100644
--- a/pkgs/tools/misc/uwufetch/default.nix
+++ b/pkgs/tools/misc/uwufetch/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ lourkeur ];
+    mainProgram = "uwufetch";
   };
 }
diff --git a/pkgs/tools/misc/uwuify/default.nix b/pkgs/tools/misc/uwuify/default.nix
index 2722610d0e3f8..abcf5e9b23da9 100644
--- a/pkgs/tools/misc/uwuify/default.nix
+++ b/pkgs/tools/misc/uwuify/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     platforms = lib.platforms.x86; # uses SSE instructions
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "uwuify";
   };
 }
diff --git a/pkgs/tools/misc/valeronoi/default.nix b/pkgs/tools/misc/valeronoi/default.nix
index 8fda179b3042b..c7321b3015203 100644
--- a/pkgs/tools/misc/valeronoi/default.nix
+++ b/pkgs/tools/misc/valeronoi/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ nova-madeline maeve ];
+    mainProgram = "valeronoi";
   };
 }
diff --git a/pkgs/tools/misc/vcs_query/default.nix b/pkgs/tools/misc/vcs_query/default.nix
index 7e1387df1f826..ccfdc62b12968 100644
--- a/pkgs/tools/misc/vcs_query/default.nix
+++ b/pkgs/tools/misc/vcs_query/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     description = "eMail query-command to use vCards in mutt and Vim";
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
+    mainProgram = "vcs_query";
   };
 }
diff --git a/pkgs/tools/misc/veikk-linux-driver-gui/default.nix b/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
index a018604a84fce..28e3194f56ec0 100644
--- a/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
+++ b/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
@@ -28,5 +28,6 @@ mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ nicbk ];
+    mainProgram = "veikk-linux-driver-gui";
   };
 }
diff --git a/pkgs/tools/misc/via/default.nix b/pkgs/tools/misc/via/default.nix
index 5fd808cd1d810..47f3df7743780 100644
--- a/pkgs/tools/misc/via/default.nix
+++ b/pkgs/tools/misc/via/default.nix
@@ -37,5 +37,6 @@ appimageTools.wrapType2 {
     license = licenses.gpl3;
     maintainers = with maintainers; [ emilytrau ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "via";
   };
 }
diff --git a/pkgs/tools/misc/viddy/default.nix b/pkgs/tools/misc/viddy/default.nix
index 37aa2acff0361..280cf82c4b414 100644
--- a/pkgs/tools/misc/viddy/default.nix
+++ b/pkgs/tools/misc/viddy/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/sachaos/viddy";
     license = licenses.mit;
     maintainers = with maintainers; [ j-hui ];
+    mainProgram = "viddy";
   };
 }
diff --git a/pkgs/tools/misc/vimer/default.nix b/pkgs/tools/misc/vimer/default.nix
index bbab2d64bb008..684ecfc5fe387 100644
--- a/pkgs/tools/misc/vimer/default.nix
+++ b/pkgs/tools/misc/vimer/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.all;
+    mainProgram = "vimer";
   };
 
 }
diff --git a/pkgs/tools/misc/vimwiki-markdown/default.nix b/pkgs/tools/misc/vimwiki-markdown/default.nix
index 3375b86df0fc9..b4200bede49c1 100644
--- a/pkgs/tools/misc/vimwiki-markdown/default.nix
+++ b/pkgs/tools/misc/vimwiki-markdown/default.nix
@@ -24,5 +24,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/WnP/vimwiki_markdown";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
+    mainProgram = "vimwiki_markdown";
   };
 }
diff --git a/pkgs/tools/misc/vivid/default.nix b/pkgs/tools/misc/vivid/default.nix
index 01c432cd6a250..3115735ed9be8 100644
--- a/pkgs/tools/misc/vivid/default.nix
+++ b/pkgs/tools/misc/vivid/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.dtzWill ];
     platforms = platforms.unix;
+    mainProgram = "vivid";
   };
 }
diff --git a/pkgs/tools/misc/vix/default.nix b/pkgs/tools/misc/vix/default.nix
index cf060218889a7..9e759536d74ce 100644
--- a/pkgs/tools/misc/vix/default.nix
+++ b/pkgs/tools/misc/vix/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     homepage = "http://actinid.org/vix/";
     license = licenses.gpl3;
     maintainers = [ maintainers.ehmry ];
+    mainProgram = "vix";
   };
 }
diff --git a/pkgs/tools/misc/vmtouch/default.nix b/pkgs/tools/misc/vmtouch/default.nix
index 276389205f053..120012019a72a 100644
--- a/pkgs/tools/misc/vmtouch/default.nix
+++ b/pkgs/tools/misc/vmtouch/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.garrison ];
     platforms = lib.platforms.all;
+    mainProgram = "vmtouch";
   };
 }
diff --git a/pkgs/tools/misc/void/default.nix b/pkgs/tools/misc/void/default.nix
index 7057fed8ca13e..1204206d34b6a 100644
--- a/pkgs/tools/misc/void/default.nix
+++ b/pkgs/tools/misc/void/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/spacejam/void";
     license = licenses.gpl3;
     maintainers = with maintainers; [ spacekookie ];
+    mainProgram = "void";
   };
 }
diff --git a/pkgs/tools/misc/vorbisgain/default.nix b/pkgs/tools/misc/vorbisgain/default.nix
index b0b4e5e34e12e..e5a85049df0af 100644
--- a/pkgs/tools/misc/vorbisgain/default.nix
+++ b/pkgs/tools/misc/vorbisgain/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
+    mainProgram = "vorbisgain";
   };
 }
diff --git a/pkgs/tools/misc/vrc-get/default.nix b/pkgs/tools/misc/vrc-get/default.nix
index c0099d822e401..6026f9d6f7341 100644
--- a/pkgs/tools/misc/vrc-get/default.nix
+++ b/pkgs/tools/misc/vrc-get/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/anatawa12/vrc-get";
     license = licenses.mit;
     maintainers = with maintainers; [ bddvlpr ];
+    mainProgram = "vrc-get";
   };
 }
diff --git a/pkgs/tools/misc/vsh/default.nix b/pkgs/tools/misc/vsh/default.nix
index cfe014d3f9aa5..c061a14f2e30c 100644
--- a/pkgs/tools/misc/vsh/default.nix
+++ b/pkgs/tools/misc/vsh/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/fishi0x01/vsh";
     license = licenses.mit;
     maintainers = with maintainers; [ fishi0x01 ];
+    mainProgram = "vsh";
   };
 }
diff --git a/pkgs/tools/misc/vtm/default.nix b/pkgs/tools/misc/vtm/default.nix
index a0acfcf7f7d6f..ee7b301df8615 100644
--- a/pkgs/tools/misc/vtm/default.nix
+++ b/pkgs/tools/misc/vtm/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ ahuzik ];
+    mainProgram = "vtm";
   };
 }
diff --git a/pkgs/tools/misc/vttest/default.nix b/pkgs/tools/misc/vttest/default.nix
index 6b649cbb71d2a..2eafd745263c5 100644
--- a/pkgs/tools/misc/vttest/default.nix
+++ b/pkgs/tools/misc/vttest/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "https://invisible-island.net/vttest/";
     license = licenses.mit;
     platforms = platforms.all;
+    mainProgram = "vttest";
   };
 }
 
diff --git a/pkgs/tools/misc/wagyu/default.nix b/pkgs/tools/misc/wagyu/default.nix
index dfcefa56b6ff5..39e1085d4c965 100644
--- a/pkgs/tools/misc/wagyu/default.nix
+++ b/pkgs/tools/misc/wagyu/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/AleoHQ/wagyu";
     license = with licenses; [ mit asl20 ];
     maintainers = [ maintainers.offline ];
+    mainProgram = "wagyu";
   };
 }
diff --git a/pkgs/tools/misc/wakapi/default.nix b/pkgs/tools/misc/wakapi/default.nix
index 66e4ca5125c1d..9cf4efb0df339 100644
--- a/pkgs/tools/misc/wakapi/default.nix
+++ b/pkgs/tools/misc/wakapi/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     description = "A minimalist self-hosted WakaTime-compatible backend for coding statistics";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ t4ccer ];
+    mainProgram = "wakapi";
   };
 }
diff --git a/pkgs/tools/misc/wasm-tools/default.nix b/pkgs/tools/misc/wasm-tools/default.nix
index 2249ea83d1ab6..26d3d34e58c45 100644
--- a/pkgs/tools/misc/wasm-tools/default.nix
+++ b/pkgs/tools/misc/wasm-tools/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bytecodealliance/wasm-tools";
     license = licenses.asl20;
     maintainers = with maintainers; [ ereslibre ];
+    mainProgram = "wasm-tools";
   };
 }
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
index a4d87973a2428..41ed61408a206 100644
--- a/pkgs/tools/misc/watchexec/default.nix
+++ b/pkgs/tools/misc/watchexec/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://watchexec.github.io/";
     license = with licenses; [ asl20 ];
     maintainers = [ maintainers.michalrus ];
+    mainProgram = "watchexec";
   };
 }
diff --git a/pkgs/tools/misc/wayback-machine-archiver/default.nix b/pkgs/tools/misc/wayback-machine-archiver/default.nix
index 71c0b63ad8e9e..c3ebc937eb353 100644
--- a/pkgs/tools/misc/wayback-machine-archiver/default.nix
+++ b/pkgs/tools/misc/wayback-machine-archiver/default.nix
@@ -27,5 +27,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/agude/wayback-machine-archiver";
     license = licenses.mit;
     maintainers = with maintainers; [ dandellion ];
+    mainProgram = "archiver";
   };
 }
diff --git a/pkgs/tools/misc/waylevel/default.nix b/pkgs/tools/misc/waylevel/default.nix
index 78ebcf6c5a6e8..b3b1ddfeeebfd 100644
--- a/pkgs/tools/misc/waylevel/default.nix
+++ b/pkgs/tools/misc/waylevel/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.linux;
+    mainProgram = "waylevel";
   };
 }
diff --git a/pkgs/tools/misc/webcat/default.nix b/pkgs/tools/misc/webcat/default.nix
index 52b9e78bccaaa..7c8c56dc86c16 100644
--- a/pkgs/tools/misc/webcat/default.nix
+++ b/pkgs/tools/misc/webcat/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     description = "The lightweight swiss army knife for websockets";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ montag451 ];
+    mainProgram = "webcat";
   };
 }
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index cfc225ea75f84..baef5b2645023 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/vi/websocat/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice Br1ght0ne ];
+    mainProgram = "websocat";
   };
 }
diff --git a/pkgs/tools/misc/wemux/default.nix b/pkgs/tools/misc/wemux/default.nix
index 0eee60187f20a..99adf8bb0823d 100644
--- a/pkgs/tools/misc/wemux/default.nix
+++ b/pkgs/tools/misc/wemux/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ bsima ];
+    mainProgram = "wemux";
   };
 }
diff --git a/pkgs/tools/misc/wlc/default.nix b/pkgs/tools/misc/wlc/default.nix
index 73ae91c2e9855..acd6eb5f37240 100644
--- a/pkgs/tools/misc/wlc/default.nix
+++ b/pkgs/tools/misc/wlc/default.nix
@@ -32,5 +32,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/WeblateOrg/wlc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ paperdigits ];
+    mainProgram = "wlc";
   };
 }
diff --git a/pkgs/tools/misc/woeusb/default.nix b/pkgs/tools/misc/woeusb/default.nix
index a1d371eafd499..9add255896f75 100644
--- a/pkgs/tools/misc/woeusb/default.nix
+++ b/pkgs/tools/misc/woeusb/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.linux;
+    mainProgram = "woeusb";
   };
 }
diff --git a/pkgs/tools/misc/woof/default.nix b/pkgs/tools/misc/woof/default.nix
index c958d9f65a678..b73ad5615dd09 100644
--- a/pkgs/tools/misc/woof/default.nix
+++ b/pkgs/tools/misc/woof/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "woof";
   };
 }
diff --git a/pkgs/tools/misc/wootility/default.nix b/pkgs/tools/misc/wootility/default.nix
index ddb3c770e6413..a4f3cb2f92d85 100644
--- a/pkgs/tools/misc/wootility/default.nix
+++ b/pkgs/tools/misc/wootility/default.nix
@@ -34,5 +34,6 @@ appimageTools.wrapType2 rec {
     platforms = [ "x86_64-linux" ];
     license = "unknown";
     maintainers = with maintainers; [ davidtwco ];
+    mainProgram = "wootility";
   };
 }
diff --git a/pkgs/tools/misc/wsl-open/default.nix b/pkgs/tools/misc/wsl-open/default.nix
index e89ef91b4f9ef..e4698ccbabd04 100644
--- a/pkgs/tools/misc/wsl-open/default.nix
+++ b/pkgs/tools/misc/wsl-open/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "wsl-open";
   };
 }
diff --git a/pkgs/tools/misc/wwcd/default.nix b/pkgs/tools/misc/wwcd/default.nix
index 41c66d945f40a..0e83ada195b0b 100644
--- a/pkgs/tools/misc/wwcd/default.nix
+++ b/pkgs/tools/misc/wwcd/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "https://git.sr.ht/~bitfehler/wwcd";
     license = licenses.mit;
     maintainers = with maintainers; [ laalsaas ];
+    mainProgram = "wwcd";
   };
 }
diff --git a/pkgs/tools/misc/wyrd/default.nix b/pkgs/tools/misc/wyrd/default.nix
index df8b4933aa696..4010a0b42d0fd 100644
--- a/pkgs/tools/misc/wyrd/default.nix
+++ b/pkgs/tools/misc/wyrd/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.prikhi ];
     platforms = platforms.linux;
+    mainProgram = "wyrd";
   };
 }
diff --git a/pkgs/tools/misc/x11idle/default.nix b/pkgs/tools/misc/x11idle/default.nix
index ee64f69897d2f..e349b54eecae5 100644
--- a/pkgs/tools/misc/x11idle/default.nix
+++ b/pkgs/tools/misc/x11idle/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.swflint ];
+    mainProgram = "x11idle";
   };
 }
diff --git a/pkgs/tools/misc/xcd/default.nix b/pkgs/tools/misc/xcd/default.nix
index 7e34021041923..350da6c93925b 100644
--- a/pkgs/tools/misc/xcd/default.nix
+++ b/pkgs/tools/misc/xcd/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.xfnw ];
     license = licenses.mit;
     platforms = platforms.unix;
+    mainProgram = "xcd";
   };
 }
diff --git a/pkgs/tools/misc/xcp/default.nix b/pkgs/tools/misc/xcp/default.nix
index 9b06c11890dc7..91edb954d53b8 100644
--- a/pkgs/tools/misc/xcp/default.nix
+++ b/pkgs/tools/misc/xcp/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/tarka/xcp";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lom ];
+    mainProgram = "xcp";
   };
 }
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
index 73e648cf83c55..7201ffcbbe998 100644
--- a/pkgs/tools/misc/xdaliclock/default.nix
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux ++ freebsd;
     license = licenses.free; #TODO BSD on Gentoo, looks like MIT
     downloadPage = "http://www.jwz.org/xdaliclock/";
+    mainProgram = "xdaliclock";
   };
 }
diff --git a/pkgs/tools/misc/xdg-ninja/default.nix b/pkgs/tools/misc/xdg-ninja/default.nix
index a92a279a141fd..351a7c0e8c0cb 100644
--- a/pkgs/tools/misc/xdg-ninja/default.nix
+++ b/pkgs/tools/misc/xdg-ninja/default.nix
@@ -32,5 +32,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ arcuru ];
+    mainProgram = "xdg-ninja";
   };
 }
diff --git a/pkgs/tools/misc/xdiskusage/default.nix b/pkgs/tools/misc/xdiskusage/default.nix
index 28620f3bf6eff..9db3563ca247b 100644
--- a/pkgs/tools/misc/xdiskusage/default.nix
+++ b/pkgs/tools/misc/xdiskusage/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = with lib.licenses; [ gpl2Plus ];
     maintainers = with lib.maintainers; [ fuzzdk ];
     platforms = with lib.platforms; linux;
+    mainProgram = "xdiskusage";
   };
 })
diff --git a/pkgs/tools/misc/xdo/default.nix b/pkgs/tools/misc/xdo/default.nix
index 31df9552accd8..268dfcd66e041 100644
--- a/pkgs/tools/misc/xdo/default.nix
+++ b/pkgs/tools/misc/xdo/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
      maintainers = with maintainers; [ meisternu ];
      license = licenses.bsd2;
      platforms = platforms.linux;
+     mainProgram = "xdo";
    };
 }
diff --git a/pkgs/tools/misc/xdxf2slob/default.nix b/pkgs/tools/misc/xdxf2slob/default.nix
index a24f9196efb9d..e23d68f8fccb6 100644
--- a/pkgs/tools/misc/xdxf2slob/default.nix
+++ b/pkgs/tools/misc/xdxf2slob/default.nix
@@ -18,5 +18,6 @@ python3Packages.buildPythonApplication {
     homepage = "https://github.com/itkach/xdxf2slob/";
     license = licenses.gpl3;
     platforms = platforms.all;
+    mainProgram = "xdxf2slob";
   };
 }
diff --git a/pkgs/tools/misc/xflux/default.nix b/pkgs/tools/misc/xflux/default.nix
index 55a72dc4a7345..5cfda2df174f3 100644
--- a/pkgs/tools/misc/xflux/default.nix
+++ b/pkgs/tools/misc/xflux/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation {
     license = lib.licenses.unfree;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.paholg ];
+    mainProgram = "xflux";
   };
 }
diff --git a/pkgs/tools/misc/xfstests/default.nix b/pkgs/tools/misc/xfstests/default.nix
index e06aa0cc57259..c894f3b9f32e0 100644
--- a/pkgs/tools/misc/xfstests/default.nix
+++ b/pkgs/tools/misc/xfstests/default.nix
@@ -107,5 +107,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.dezgeg ];
     platforms = platforms.linux;
+    mainProgram = "xfstests-check";
   };
 }
diff --git a/pkgs/tools/misc/xiccd/default.nix b/pkgs/tools/misc/xiccd/default.nix
index 7569045fa4f1d..4ffb5b689e3ba 100644
--- a/pkgs/tools/misc/xiccd/default.nix
+++ b/pkgs/tools/misc/xiccd/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
+    mainProgram = "xiccd";
   };
 }
diff --git a/pkgs/tools/misc/xilinx-bootgen/default.nix b/pkgs/tools/misc/xilinx-bootgen/default.nix
index f6619e025d3e7..7f9fb0e2e175d 100644
--- a/pkgs/tools/misc/xilinx-bootgen/default.nix
+++ b/pkgs/tools/misc/xilinx-bootgen/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = [ maintainers.flokli ];
+    mainProgram = "bootgen";
   };
 }
diff --git a/pkgs/tools/misc/xjobs/default.nix b/pkgs/tools/misc/xjobs/default.nix
index 5edb365a33279..9dfa605fbc474 100644
--- a/pkgs/tools/misc/xjobs/default.nix
+++ b/pkgs/tools/misc/xjobs/default.nix
@@ -61,5 +61,6 @@ stdenv.mkDerivation rec {
       It works similar to xargs, but starts several processes simultaneously
       and gives only one line of arguments to each utility call.
     '';
+    mainProgram = "xjobs";
   };
 }
diff --git a/pkgs/tools/misc/xmonad-log/default.nix b/pkgs/tools/misc/xmonad-log/default.nix
index acd4a9e1d46de..9ba7941b45f79 100644
--- a/pkgs/tools/misc/xmonad-log/default.nix
+++ b/pkgs/tools/misc/xmonad-log/default.nix
@@ -21,5 +21,6 @@ buildGoPackage rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ joko ];
+    mainProgram = "xmonad-log";
   };
 }
diff --git a/pkgs/tools/misc/xq/default.nix b/pkgs/tools/misc/xq/default.nix
index c02321a6a7c39..129a572a40aa7 100644
--- a/pkgs/tools/misc/xq/default.nix
+++ b/pkgs/tools/misc/xq/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/MiSawa/xq";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "xq";
   };
 }
diff --git a/pkgs/tools/misc/xtitle/default.nix b/pkgs/tools/misc/xtitle/default.nix
index e3454538bf84e..94e650144956a 100644
--- a/pkgs/tools/misc/xtitle/default.nix
+++ b/pkgs/tools/misc/xtitle/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ meisternu ];
     license = "Custom";
     platforms = platforms.linux;
+    mainProgram = "xtitle";
   };
 }
diff --git a/pkgs/tools/misc/xxv/default.nix b/pkgs/tools/misc/xxv/default.nix
index e5852e5f51b01..0068de3c92459 100644
--- a/pkgs/tools/misc/xxv/default.nix
+++ b/pkgs/tools/misc/xxv/default.nix
@@ -36,5 +36,6 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://chrisvest.github.io/xxv/";
     license     = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ lilyball ];
+    mainProgram = "xxv";
   };
 }
diff --git a/pkgs/tools/misc/yafetch/default.nix b/pkgs/tools/misc/yafetch/default.nix
index 4ebaea963c29e..49611df587af9 100644
--- a/pkgs/tools/misc/yafetch/default.nix
+++ b/pkgs/tools/misc/yafetch/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ivar ashley ];
     platforms = platforms.linux;
+    mainProgram = "yafetch";
   };
 }
diff --git a/pkgs/tools/misc/yai/default.nix b/pkgs/tools/misc/yai/default.nix
index 916328cdcde62..958b88bc22976 100644
--- a/pkgs/tools/misc/yai/default.nix
+++ b/pkgs/tools/misc/yai/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ georgesalkhouri ];
+    mainProgram = "yai";
   };
 }
diff --git a/pkgs/tools/misc/yajsv/default.nix b/pkgs/tools/misc/yajsv/default.nix
index aaeba02ae35e5..d6293c74399d2 100644
--- a/pkgs/tools/misc/yajsv/default.nix
+++ b/pkgs/tools/misc/yajsv/default.nix
@@ -29,5 +29,6 @@ buildGoModule {
     homepage = "https://github.com/neilpa/yajsv";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ rycee ];
+    mainProgram = "yajsv";
   };
 }
diff --git a/pkgs/tools/misc/yank/default.nix b/pkgs/tools/misc/yank/default.nix
index 9579b3fa3f50b..50d883759130f 100644
--- a/pkgs/tools/misc/yank/default.nix
+++ b/pkgs/tools/misc/yank/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.dochang ];
     platforms = platforms.unix;
+    mainProgram = "yank";
   };
 
 }
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index 8db40b7c0b2e0..75855109e2006 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -33,5 +33,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dezgeg ];
     platforms = platforms.unix;
+    mainProgram = "yle-dl";
   };
 }
diff --git a/pkgs/tools/misc/you-get/default.nix b/pkgs/tools/misc/you-get/default.nix
index 3bccdf28df3cd..225c37e4ba464 100644
--- a/pkgs/tools/misc/you-get/default.nix
+++ b/pkgs/tools/misc/you-get/default.nix
@@ -48,5 +48,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/soimort/you-get/raw/v${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ ryneeverett ];
+    mainProgram = "you-get";
   };
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 4aee6bdeb5f51..77a6eceb8a2fa 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -91,5 +91,6 @@ buildPythonPackage rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ bluescreen303 fpletz ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "youtube-dl";
   };
 }
diff --git a/pkgs/tools/misc/ytarchive/default.nix b/pkgs/tools/misc/ytarchive/default.nix
index 8cd082746447e..d2c836402e50c 100644
--- a/pkgs/tools/misc/ytarchive/default.nix
+++ b/pkgs/tools/misc/ytarchive/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "Garbage Youtube livestream downloader";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "ytarchive";
   };
 }
diff --git a/pkgs/tools/misc/ytcast/default.nix b/pkgs/tools/misc/ytcast/default.nix
index 163329a60da17..86a84e6c8d90b 100644
--- a/pkgs/tools/misc/ytcast/default.nix
+++ b/pkgs/tools/misc/ytcast/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     homepage = "https://github.com/MarcoLucidi01/ytcast";
     license = licenses.mit;
     maintainers = with maintainers; [ waelwindows ];
+    mainProgram = "ytcast";
   };
 }
diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix
index 92b9864c35896..905c7776f1c27 100644
--- a/pkgs/tools/misc/ytfzf/default.nix
+++ b/pkgs/tools/misc/ytfzf/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "ytfzf";
   };
 }
diff --git a/pkgs/tools/misc/ytmdl/default.nix b/pkgs/tools/misc/ytmdl/default.nix
index 9e20b1480e18a..73c7ce2aae7ac 100644
--- a/pkgs/tools/misc/ytmdl/default.nix
+++ b/pkgs/tools/misc/ytmdl/default.nix
@@ -54,5 +54,6 @@ python3Packages.buildPythonApplication rec {
     description = "YouTube Music Downloader";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
+    mainProgram = "ytmdl";
   };
 }
diff --git a/pkgs/tools/misc/yubico-piv-tool/default.nix b/pkgs/tools/misc/yubico-piv-tool/default.nix
index a8a7dfd3ee687..eee35ea8c9d48 100644
--- a/pkgs/tools/misc/yubico-piv-tool/default.nix
+++ b/pkgs/tools/misc/yubico-piv-tool/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = with maintainers; [ viraptor anthonyroussel ];
+    mainProgram = "yubico-piv-tool";
   };
 }
diff --git a/pkgs/tools/misc/yubikey-personalization-gui/default.nix b/pkgs/tools/misc/yubikey-personalization-gui/default.nix
index 66f43ad9bfcac..a63ab7a7ce193 100644
--- a/pkgs/tools/misc/yubikey-personalization-gui/default.nix
+++ b/pkgs/tools/misc/yubikey-personalization-gui/default.nix
@@ -39,5 +39,6 @@ mkDerivation rec {
     description = "A QT based cross-platform utility designed to facilitate reconfiguration of the Yubikey";
     license = licenses.bsd2;
     platforms = platforms.unix;
+    mainProgram = "yubikey-personalization-gui";
   };
 }
diff --git a/pkgs/tools/misc/yutto/default.nix b/pkgs/tools/misc/yutto/default.nix
index bdc2ba94179fa..a9b5e224e07a2 100644
--- a/pkgs/tools/misc/yutto/default.nix
+++ b/pkgs/tools/misc/yutto/default.nix
@@ -44,5 +44,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/yutto-dev/yutto";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linsui ];
+    mainProgram = "yutto";
   };
 }
diff --git a/pkgs/tools/misc/zabbixctl/default.nix b/pkgs/tools/misc/zabbixctl/default.nix
index e42ccb86c417d..ce45196fdba73 100644
--- a/pkgs/tools/misc/zabbixctl/default.nix
+++ b/pkgs/tools/misc/zabbixctl/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/kovetskiy/zabbixctl";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "zabbixctl";
   };
 }
diff --git a/pkgs/tools/misc/zalgo/default.nix b/pkgs/tools/misc/zalgo/default.nix
index 71cc7f8b7ddbc..0ca9f3366ce40 100644
--- a/pkgs/tools/misc/zalgo/default.nix
+++ b/pkgs/tools/misc/zalgo/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     platforms = platforms.unix;
     maintainers = with maintainers; [ djanatyn ];
+    mainProgram = "zalgo";
   };
 }
diff --git a/pkgs/tools/misc/zf/default.nix b/pkgs/tools/misc/zf/default.nix
index 1b441687d3166..cf63e211d2612 100644
--- a/pkgs/tools/misc/zf/default.nix
+++ b/pkgs/tools/misc/zf/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ dit7ya figsoda mmlb ];
+    mainProgram = "zf";
   };
 })
diff --git a/pkgs/tools/misc/zitadel-tools/default.nix b/pkgs/tools/misc/zitadel-tools/default.nix
index 51defb87e9329..cd5ae370805bb 100644
--- a/pkgs/tools/misc/zitadel-tools/default.nix
+++ b/pkgs/tools/misc/zitadel-tools/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/zitadel/zitadel-tools";
     license = licenses.asl20;
     maintainers = with maintainers; [ janik ];
+    mainProgram = "zitadel-tools";
   };
 }
diff --git a/pkgs/tools/misc/zotero-translation-server/default.nix b/pkgs/tools/misc/zotero-translation-server/default.nix
index 21428cf124584..d44ec426fee5b 100644
--- a/pkgs/tools/misc/zotero-translation-server/default.nix
+++ b/pkgs/tools/misc/zotero-translation-server/default.nix
@@ -31,5 +31,6 @@ buildNpmPackage rec {
     homepage = "https://github.com/zotero/translation-server";
     license = licenses.agpl3Only;
     maintainers = [ maintainers.marsam ];
+    mainProgram = "translation-server";
   };
 }
diff --git a/pkgs/tools/misc/zsh-history-to-fish/default.nix b/pkgs/tools/misc/zsh-history-to-fish/default.nix
index ddb8098cdaafb..4e8da001f8350 100644
--- a/pkgs/tools/misc/zsh-history-to-fish/default.nix
+++ b/pkgs/tools/misc/zsh-history-to-fish/default.nix
@@ -29,5 +29,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/rsalmei/zsh-history-to-fish";
     license = licenses.mit;
     maintainers = with maintainers; [ alanpearce ];
+    mainProgram = "zsh-history-to-fish";
   };
 }
diff --git a/pkgs/tools/misc/zthrottle/default.nix b/pkgs/tools/misc/zthrottle/default.nix
index 2743dbf76bbbd..012ffbccd4ae4 100644
--- a/pkgs/tools/misc/zthrottle/default.nix
+++ b/pkgs/tools/misc/zthrottle/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     license = licenses.unlicense;
     maintainers = [ maintainers.ckie ];
     platforms = platforms.unix;
+    mainProgram = "zthrottle";
   };
 }