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.4

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.4
File Size Uploaded
flow_twinx-0.8.4.tar.gz 202.5 kB Details

Built distribution (wheel)

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

Total release size: 391.4 kB

Release files / flow_twinx-0.8.4.tar.gz

Download URL flow_twinx-0.8.4.tar.gz
Size 202.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7f62e2f5c109b584d387ae041f3b9abba28bbb635854588514787a0328fcde39
BLAKE2b-256 checksum
How to use checksums
7c7a124e11b34b76e0f49f0bf53ac69f74e85135c35d0eae78f9e8fc186e138f
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.4-py3-none-any.whl

Download URL flow_twinx-0.8.4-py3-none-any.whl
Size 188.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ba8a8efa81b0b8d670bddfede6f666508bb5ca3ce89a2ee17b7e16acc3ad084
BLAKE2b-256 checksum
How to use checksums
62bd9e72121f67c14b830bfec2d7bfd47bad0504fa31beb6e5b5a5e2b8354b9b
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

This release

0.8.4 This release

2 release files

0.8.3

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