skald

AI voice narrator for repo activity. Polls GitHub or GitLab feeds and narrates events like a live commentator — over your speakers.

What it sounds like

A typical morning of activity, narrated:

09:14 A modest push lands on the audio-playback branch. Three commits, no fuss, no announcement.
09:22 And here, surfacing at last from weeks of patient work — pull request forty-two. The voice synthesis fix, finally up for review.
09:38 An issue surfaces. Memory, it transpires, leaks from the narrator on long runs. A familiar pattern. Now, a tracked one.
09:51 Quietly, forty-two slips into main. The fix takes its place. The voice is whole again.
10:04 Version one point two zero — released into the wild. A few stones on the cairn. Onward.

Quick start

# clone and install
git clone https://github.com/AleBles/skald
cd skald
bun install

# copy the example config and edit feeds + provider keys
cp config.example.yaml skald.yaml

# start narrating
bun start

Configure GitHub or GitLab feeds and a chat + speech provider in skald.yaml. Bring your own keys for OpenAI, Gemini, Ollama, or the local claude CLI.

Features

GitHub & GitLab

Polls feeds from either platform with a unified event model. No webhooks, no inbound network needed.

Live commentary

Events become natural-language narrations — not robotic notification pings.

Voice agnostic

Pluggable TTS backends. System voices, ElevenLabs, OpenAI, or anything that speaks.

Tunable

Filter events, adjust verbosity, write your own narration templates. Make it dry, dramatic, or anywhere between.