Skip to main content
Flow Logo

Flow

A modern terminal based music player with TUI and web support also.


Overview

Flow is a terminal music player with online streaming and offline library modes.

Flow detects your connection and picks automatically: online mode streams from YouTube (via yt-dlp and python-vlc) and JioSaavn, offline mode. All state — downloads, likes, playlists, settings — lives in one folder and is shared between the CLI shell, the Textual TUI, and the web GUI.


Features

  • Dual-mode — automatic offline/online detection with manual switch
  • Online mode — YouTube search/stream, radio mixes, JioSaavn (savan)
  • Offline mode — local library with search, liked songs, and tab completion
  • Downloads — save tracks from YouTube (-d), formats: webm/opus/m4a/mp3
  • Repeat & shuffle — -r [n] loops, -s randomizes
  • Playlists — create, edit, merge, dedupe, reorder, export/import .m3u
  • Like/unlike — favorites in ~/.flow/library.db, auto-download on like
  • Play history — per-song play counts in both modes, an online play log, flow summary on the CLI and a History panel in the web GUI
  • Background play — play in the background and go back to your shell
  • Visualizer — audio-reactive spectrum bars (or synced lyrics) while playing
  • Lyrics — synced lines from LRCLIB (YouTube Music as fallback): the lyrics display mode prints them in the terminal, the web GUI's lyrics button (l) scrolls them with the track
  • Rename — correct a misspelt title once (rename in the CLI, R in the TUI, the ⋮ menu in the web GUI) and every surface, including lyrics search, shows the new name
  • Play by tag — every download stores a one-word language and the credited artist, trimmed out of the video's metadata: lang punjabi plays your punjabi songs, artist karan every Karan Aujla one (tags to see what you have, tags scan/tags apply to tag the back catalogue)
  • Three interfaces — interactive CLI shell, full-screen TUI, and a web GUI on port 5000
  • Scriptable — flow-min runs the same commands with no colour, spinner or prompt: one plain line (or one --json document) per command, documented exit codes, safe in pipes, over ssh and for agents
  • Plugins — community plugins run in isolated processes

Requirements

  • Python 3.14+
  • VLC (for python-vlc audio playback)
  • ffmpeg (optional, only for non-webm download formats)

Installation

git clone https://github.com/Twinx015/Flow.git
cd Flow
uv sync            # or: pip install .
uv run flow

Or from PyPI:

pip install flow-twinx
flow

Verify with flow --check. See Installation for details.

Quick start

flow -pl "never gonna give you up"   # stream from YouTube (foreground)
flow -pl "never gonna give you up" -bg   # ...in the background
flow -sh "daft punk"                 # search, show results
flow --play-off "my song"            # play from the local library (auto-bg)
flow --radio-off                     # shuffle-loop the whole library (auto-bg)
flow                                 # interactive shell (type `help`)
flow-tui                             # full-screen TUI
flow-web                             # web GUI → http://127.0.0.1:5000
flow-min status --json               # plain non-interactive: one JSON document

Playback control works across interfaces from any terminal:

flow --status      # show the current track
flow --pause       # play/pause the running player
flow --next        # skip
flow --seek 30     # seek 30s forward

Documentation

  • User guide — docs/user/: commands and flags, TUI/web usage, configuration and storage, plugins
  • Developer guide — docs/dev/: architecture, mode internals, storage schemas, control protocol, interfaces

License

Use however you want, just mention me for inspiration.

Metadata

Release files for flow-twinx 0.8.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flow-twinx 0.8.3
File Size Uploaded
flow_twinx-0.8.3.tar.gz 195.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flow-twinx 0.8.3
File Interpreter ABI Platform
flow_twinx-0.8.3-py3-none-any.whl Python 3 none any Details

Total release size: 379.8 kB

Release files / flow_twinx-0.8.3.tar.gz

Download URL flow_twinx-0.8.3.tar.gz
Size 195.2 kB
Tags Source
SHA-256 checksum
How to use checksums
273ee24d13ba34d00776502ad0eec09857e96a14184b8e93b29a9adc876552c1
BLAKE2b-256 checksum
How to use checksums
c7773d6d0c5ff8daa03e8c42df61b570eebdd709136c6b251dcf5bc1d6285531
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / flow_twinx-0.8.3-py3-none-any.whl

Download URL flow_twinx-0.8.3-py3-none-any.whl
Size 184.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ddaf8f8a11326129eceff065baad7572316bda92bbcc39c0493eb918270b7628
BLAKE2b-256 checksum
How to use checksums
0233dc88ad4e9bc8d0a40606f210e475101424ada2b21001b9cc65d541d62e58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

0.9.1

2 release files

0.9.0

2 release files

0.8.4

2 release files

This release

0.8.3 This release

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page