An offline bird-call companion built on open models. Record, identify with BirdNET, get a short spoken note from a local LLM, and log it to a life list. No internet needed on the trail.
ollama pull gemma3:1bpip install -r requirements.txtespeak-ng (Linux/Pi: sudo apt install espeak-ng; macOS uses say)python trailside.py # record 15 s, identify, speak
python trailside.py --voice kid # journal | kid | expert
python trailside.py --file bird.wav # analyze an existing recording
python trailside.py --model qwen2.5:1.5b # swap the model
python trailside.py --lat 23.02 --lon 72.57 --quiet
Sightings are saved to ~/.trailside_life_list.json.
Open website/index.html in any browser (single static file).
identify().