A small Bash script that converts plot area + crop spacing into the number of plants you'll get and the number of seeds you'll need. Built-in spacing table for ~30 common veg; supports custom row/in-row spacing.
curl -O https://raw.githubusercontent.com/boersanne/seed-spacing-cli/main/seed-spacing
curl -O https://raw.githubusercontent.com/boersanne/seed-spacing-cli/main/crops.tsv
chmod +x seed-spacingDrop both files in the same directory (the script reads crops.tsv from its own dir).
$ ./seed-spacing --crop carrot --area 10
row spacing 30.0 cm
in-row spacing 5.0 cm
area 10.00 m^2
plants/m^2 66.67
total plants 667
seeds (sph 1) 667
trays of 72 cells 9.26
trays of 128 cells 5.21
$ ./seed-spacing --row 30 --in-row 30 --area 9 --seeds-per-hole 3
total plants 100
seeds (sph 3) 300
$ ./seed-spacing --list
CROP ROW(cm) IN-ROW(cm) NOTES
carrot 30 5 thin to 5cm; mid-season variety
beetroot 30 10 multi-seeded clusters thin to 1
...The math is trivial (plants/m² = 10000 / (row × in-row in cm)) but doing it for 8 different crops at planning time is tedious. This is a 60-line script that fits in a dotfiles repo.
--seeds-per-holedefaults to 1. Set to 2-3 if you'll be thinning (carrots, beetroot).- Tray-cell counts assume standard 72- and 128-cell trays.
- The crop database is a tab-separated file you can edit. PRs welcome.
./test.sh6 round-trip tests against known crops + custom spacing.
MIT.