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. Click to play any sample.

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

Feed in, narration out, your speakers do the rest. Skald listens to GitHub and GitLab activity, hands each event to an LLM for a one-line story, and speaks it through a TTS provider of your choosing.

GitHub & GitLab

Polls the GitHub events API or GitLab Atom feeds with a unified event model. No webhooks, no inbound network needed.

Plug-in narration

Any OpenAI-compatible chat API — OpenAI, OpenRouter, Ollama, LM Studio — or the local claude CLI. Bring your own model.

Plug-in voice

OpenAI-compatible TTS endpoints or Google Gemini TTS. Pick the voice that fits the room.

Live commentary

Events become natural-language narrations with a tunable personality — not robotic notification pings.

Terminal dashboard

Five-panel Ink UI: author leaderboard, project distribution, the live narration feed, and a chat history log.

Catch-up on boot

Missed events from the last run get fetched and summarised aloud before live monitoring resumes.

First-run learning

Skald scans your feed history and prompts you to name authors and projects. Saved back to config for richer narration context.

Tunable run modes

Filter event types, swap providers, set personality. Run --text-only for silent text, --dry-run to fetch without narrating.