Terminal based podcast client that syncs with gPodder API based services.
- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| pkg | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| podterm.git | ||
| README.md | ||
podterm-go
A terminal-based (TUI) podcast client written in Go. podterm syncs your
podcast subscriptions and playback status through the gpodder
API, letting you manage and listen to podcasts from the comfort of a terminal.
This repository, podterm-go, is the Go implementation of PodTerm.
Features
- gpodder sync — Subscriptions and episode play status are synced via the gpodder API, so your library and progress stay consistent across devices.
- TUI interface — A keyboard-driven text UI for browsing feeds, episodes, and controlling playback.
- Gamepad support — Alternate control scheme for handheld Linux devices where a gamepad is the primary input.
- Resume playback — Play status is tracked per episode, letting you pick up where you left off.
- Adaptive artwork — Cover art is rendered at the highest fidelity the
terminal supports: the Kitty, iTerm2, or Sixel pixel protocols when available,
falling back to colour half-blocks and then plain ASCII. Override detection
with
PODTERM_GRAPHICS=ascii|halfblock|sixel|iterm2|kitty.
Target platforms
podterm is built and tested for Linux:
| Target | Architecture | Primary input |
|---|---|---|
| Desktop / laptop | x86-64 | Keyboard |
| Handheld emulator | ARM64 | Gamepad |
Other platforms may work but are not officially supported.
Project layout
podterm/
├── main.go # Application entry point
├── pkg/
│ ├── gpodder/ # gpodder API client and sync logic
│ ├── podcast/ # Podcast/feed and episode models
│ ├── player/ # Audio playback backend
│ └── tui/ # TUI rendering and input handling
├── assets/ # Static assets (icons, themes, etc.)
└── scripts/ # Build and helper scripts
Requirements
- Go 1.25 or newer
- A gpodder account (self-hosted or gpodder.net)
- An audio backend available on the host system
Building
# Build for the host platform
go build -o podterm .
# Cross-compile for x86-64 Linux
GOOS=linux GOARCH=amd64 go build -o podterm-amd64 .
# Cross-compile for ARM64 Linux (handhelds)
GOOS=linux GOARCH=arm64 go build -o podterm-arm64 .
Usage
./podterm
Configuration and gpodder credentials setup will be documented as the client develops.
Status
Early development. The project structure is in place and features are being built out.
License
TBD