A terminal-based internet radio player powered by Radio Browser.
- 🔍 Search - Find stations by name, tag, language, country, or state
- 🎲 I Feel Lucky - Random station discovery by keyword
- 💾 Favorites - Organize stations into custom lists with duplicate detection
- ⚡ Quick Play - Direct playback from main menu (shortcuts 10-99+)
- ☁️ Gist Sync - Backup and restore favorites via GitHub Gists
- 🗳️ Voting - Support your favorite stations on Radio Browser
- 🎨 Themes - Choose from predefined themes or customize via YAML config
- ⌨️ Keyboard-driven - Full navigation without a mouse
- mpv - Media player for audio playback
# update and upgrade
brew update && brew upgrade
brew install shinokada/tera/tera
# Upgrade existing installation
brew upgrade shinokada/tera/terasudo dpkg -i tera_1.x.x_linux_amd64.deb
sudo apt-get install -f # Install mpv dependency if neededsudo rpm -i tera_1.x.x_linux_amd64.rpmscoop bucket add shinokada https://github.com/shinokada/scoop-bucket
scoop install teraDownload the latest binary for your platform from the releases page:
| Platform | Architecture | File |
|---|---|---|
| macOS | Intel | tera_1.x.x_darwin_amd64.tar.gz |
| macOS | Apple Silicon | tera_1.x.x_darwin_arm64.tar.gz |
| Linux | x86_64 | tera_1.x.x_linux_amd64.tar.gz |
| Linux | ARM64 | tera_1.x.x_linux_arm64.tar.gz |
| Windows | x86_64 | tera_1.x.x_windows_amd64.zip |
| Windows | ARM64 | tera_1.x.x_windows_arm64.zip |
# Download and extract (example for macOS Apple Silicon)
tar -xzf tera_1.x.x_darwin_arm64.tar.gz
# Move to a directory in your PATH
sudo mv tera /usr/local/bin/- Download the
.zipfile for your architecture - Extract the archive
- Add the extracted directory to your PATH or move
tera.exeto a directory already in your PATH
# Start TERA
tera
# Main Menu Options:
# 1) Play from Favorites - Browse your saved lists
# 2) Search Stations - Find new stations
# 3) Manage Lists - Create/edit/delete favorite lists
# 4) I Feel Lucky - Random station by keyword
# 5) Gist Management - Backup/restore via GitHub
# Quick Play (from main menu):
# Type 10-99+ to instantly play stations from "My-favorites"Browse and play stations from your organized lists. Navigate with ↑↓ or jk, press Enter to play.
Six search methods to find stations:
- By Tag - Genre/style (jazz, rock, classical)
- By Name - Station name (BBC, NPR, KEXP)
- By Language - Broadcasting language
- By Country - Country code (US, UK, JP)
- By State - Region/state name
- Advanced - Search both name and tags
See Search Guide below for details.
Create, rename, and delete your favorite lists. Stations can be:
- Saved to multiple lists
- Moved between lists
- Deleted from lists
Duplicate Detection: TERA automatically prevents adding the same station twice to any list.
Enter a keyword (genre, mood, style) and TERA finds a random matching station. Perfect for music discovery!
The main menu shows your "My-favorites" list with shortcuts 10-99+. Type the number to play instantly:
Main Menu & Quick Play
Choose an option:
1. Play from Favorites
2. Search Stations
3. Manage Lists
4. I Feel Lucky
5. Gist Management
─── Quick Play Favorites ───
10. Jazz FM • UK • MP3 192kbps
11. BBC Radio 6 Music • UK • AAC 128kbps
12. KEXP 90.3 FM • US • AAC 128kbps
Type 10-12 to play instantly!
How it works:
- Stations from "My-favorites.json" appear with shortcuts 10+
- Type the number (e.g.,
11) and press Enter - Station plays immediately
- Press
Escto stop playback
The easiest way to change themes is through the Settings menu:
- Press
6from the main menu to open Settings - Select "Theme / Colors"
- Choose from predefined themes:
- Default - Cyan and blue tones
- Ocean - Deep blue theme
- Forest - Green nature theme
- Sunset - Warm orange and red
- Purple Haze - Purple and magenta
- Monochrome - Classic black and white
- Dracula - Popular dark theme
- Nord - Arctic, north-bluish
You can also customize colors and padding by editing ~/.config/tera/theme.yaml:
tera theme path # Show config file location
tera theme reset # Reset to defaultsThe config file includes an ANSI color reference (0-15 standard colors, 16-255 extended colors). Example:
colors:
primary: "6" # Cyan
highlight: "3" # Yellow
error: "9" # Bright Red
padding:
list_item_left: 2| Key | Action |
|---|---|
↑↓ / jk |
Navigate |
Enter |
Select / Play |
Esc |
Back |
Ctrl+C |
Quit |
| Key | Action |
|---|---|
1-6 |
Quick select menu item |
10-99+ |
Quick play from My-favorites |
| Key | Action |
|---|---|
f |
Save to My-favorites |
s |
Save to another list |
v |
Vote for station |
| Key | Action |
|---|---|
n |
New list (in dialogs) |
d |
Delete item |
The Search Stations menu offers multiple ways to find stations:
| Option | Description | Example Query |
|---|---|---|
| Search by Tag | Find stations by genre/style tags | jazz, rock, news, classical |
| Search by Name | Find stations by their name | BBC, NPR, KEXP |
| Search by Language | Find stations broadcasting in a language | english, spanish, japanese |
| Search by Country Code | Find stations from a specific country | US, UK, FR, JP |
| Search by State | Find stations from a state/region | California, Texas, Bavaria |
| Advanced Search | Search both name AND tag fields | smooth jazz, classic rock |
- Single words work:
jazz,rock,news - Multi-word phrases work:
classic rock,smooth jazz,talk radio - Partial matching: Searching
BBCfinds "BBC Radio 1", "BBC World Service", etc. - Case insensitive:
Jazz,JAZZ, andjazzall work the same
Use Advanced Search when:
- You're not sure if your term is a station name or a genre tag
- You want broader results across multiple fields
- You're exploring and want maximum discovery
For example, searching jazz in Advanced Search finds:
- Stations with "jazz" in their name (e.g., "Jazz FM")
- Stations tagged with "jazz" as a genre
Results are sorted by votes (most popular first) and limited to 100 stations. Broken/offline stations are automatically filtered out.
In the results:
- Navigate with
↑↓orjk - Press
Enterto view station details and play - Press
fto add to My-favorites - Press
sto add to another list - Press
vto vote for the station
Backup and sync your favorite lists across devices using GitHub Gists.
Quick Setup:
- Go to: Main Menu → 5) Gist Management → 6) Token Management
- Create a GitHub Personal Access Token (with
gistscope only) - Paste token in TERA
- Create your first gist backup!
Features:
- Create secret or public gists
- View your gist history
- Recover favorites from any gist URL
- Update gist descriptions
- Delete old backups
Documentation:
- Gist Setup Guide - Token setup and security
- Gist Management Guide - Complete feature guide
~/.config/tera/
├── theme.yaml # Color and padding customization
├── gist_metadata.json # Your gist history
├── tokens/
│ └── github_token # GitHub Personal Access Token
└── favorites/
├── My-favorites.json # Quick play list (main menu 10+)
├── Rock.json # Your custom lists
└── Jazz.json
- Ensure
mpvis installed:mpv --version - Check your system audio settings
- Try playing a test stream:
mpv https://stream.example.com
- Some streams may be temporarily offline
- Try another station
- Check if the station works in a web browser
pkill mpvTERA should prevent this, but if it happens:
killall mpv
# or on Linux
pkill -9 mpvTERA creates it automatically at first launch. Check:
ls -la ~/.config/tera/favorites/If missing, restart TERA and it will be created.
- Go 1.21+
- mpv
git clone https://github.com/shinokada/tera.git
cd tera
go run cmd/tera/main.gogo test ./... -vgo build -o tera cmd/tera/main.goContributions are welcome! Please:
- Open an issue to discuss proposed changes
- Fork the repository
- Create a feature branch
- Submit a pull request
MIT © Shinichi Okada
- GitHub Repository
- Issue Tracker
- Radio Browser - Station database