Terminal based podcast client that syncs with gPodder API based services.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-22 19:15:42 +02:00
pkg Initial commit with working UI but not logic 2026-08-22 19:15:42 +02:00
go.mod Initial commit with working UI but not logic 2026-08-22 19:15:42 +02:00
go.sum Initial commit with working UI but not logic 2026-08-22 19:15:42 +02:00
main.go Initial commit with working UI but not logic 2026-08-22 19:15:42 +02:00
podterm.git Initial commit with working UI but not logic 2026-08-22 19:15:42 +02:00
README.md Initial commit with working UI but not logic 2026-08-22 19:15:42 +02:00

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