EchoVault-CLI connector for EchoVault
Project description
EchoVault CLI
A terminal (TUI) music player for your EchoVault library, built with Textual and pygame.
Requirements
EchoVault CLI doesn't manage its own music library — it reads the same local database that the main EchoVault desktop app builds when you add folders to your library. Install and run EchoVault at least once first, so ~/.config/EchoVault/sonicbox.db exists and has tracks in it.
Installation
pip install EchoVault-CLI
Requires Python >= 3.8.
Usage
Run the player from a terminal:
echovault
Select a track in the list and use these keys to control playback:
| Key | Action |
|---|---|
space |
Play / Pause |
n |
Next track |
p |
Previous track |
s |
Toggle shuffle |
r |
Toggle repeat |
+ |
Volume up |
- |
Volume down |
q |
Quit |
CLI Preview
Development
-
Clone and install in editable mode (picks up code changes immediately, no reinstall needed per edit):
git clone https://github.com/EchoVaultHQ/EchoVault-CLI.git cd EchoVault-CLI pip install --user -e .
-
Run it:
echovaultor directly via module:
python -m echovault.app -
Live-reload dev mode — Textual can watch
app.tcssand hot-reload styles without restarting, plus stream logs to a separate console. This needs thetextual-devpackage (not a runtime dependency, install it separately):pip install --user textual-devThen, in two terminals:
# terminal 1 — devtools console (shows logs/errors) textual console # terminal 2 — run the app in dev mode textual run --dev echovault.app:EchoVault
Note: pass the module path as
module:AppClass(echovault.app:EchoVault), not a file path —textual run --dev src/echovault/app.pyruns the file standalone and breaks its relative imports (from .database import ...).Edit
src/echovault/app.tcsswhile the app is running and the styling updates live. -
Run the test suite:
pip install --user pytest pytest tests/
Deployment
Releases publish to PyPI automatically via GitHub Actions (.github/workflows/publish.yml) whenever a v* tag is pushed.
- Bump the version in
src/echovault/__about__.py:__version__ = "X.Y.Z"
- Commit the bump:
git add src/echovault/__about__.py git commit -m "Bump version to X.Y.Z" git push origin main
- Tag and push the tag to trigger the release:
git tag vX.Y.Z git push origin vX.Y.Z
- Watch the run under the repo's Actions tab. On success, the new version appears on PyPI.
Notes:
- Publishing uses PyPI Trusted Publishing (OIDC) — no API token is stored in the repo. The trusted publisher on PyPI must point at the current GitHub owner/repo/workflow (
Settings → Actions → Publishingon the PyPI project page); update it there if the repo is ever renamed or transferred. - Re-running a release requires a new tag or a re-pushed tag (delete + recreate) — pushing an unchanged existing tag will not retrigger the workflow.
Related Projects
- EchoVault — the main desktop music player this CLI complements.
License
EchoVault-CLI is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file echovault_cli-0.0.5.tar.gz.
File metadata
- Download URL: echovault_cli-0.0.5.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a752f442a7c5a1b190cfe8fc61697919b3a6168088e477d71eef754afc38028
|
|
| MD5 |
669cede1de026a867a45cc9db0789903
|
|
| BLAKE2b-256 |
37f52afa66473b092341c1b8810964459eb29a1060f0ed2e6b40e23e288a0752
|
Provenance
The following attestation bundles were made for echovault_cli-0.0.5.tar.gz:
Publisher:
publish.yml on EchoVaultHQ/EchoVault-CLI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
echovault_cli-0.0.5.tar.gz -
Subject digest:
4a752f442a7c5a1b190cfe8fc61697919b3a6168088e477d71eef754afc38028 - Sigstore transparency entry: 2163704970
- Sigstore integration time:
-
Permalink:
EchoVaultHQ/EchoVault-CLI@a0a55340f7b0028b672156158afb8485e3bd979b -
Branch / Tag:
refs/tags/v0.0.5 - Owner: https://github.com/EchoVaultHQ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a0a55340f7b0028b672156158afb8485e3bd979b -
Trigger Event:
push
-
Statement type:
File details
Details for the file echovault_cli-0.0.5-py3-none-any.whl.
File metadata
- Download URL: echovault_cli-0.0.5-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4583f04fe4192ebcfa71f509d1058f67014ab49b778db36adf359a85e85599e3
|
|
| MD5 |
cf1fcab4684e7865d1ab6e4b04e1ed36
|
|
| BLAKE2b-256 |
e1fbd9c167e37ac539940609c5e396f842c98bcd244e0edb7a6f796905012f0a
|
Provenance
The following attestation bundles were made for echovault_cli-0.0.5-py3-none-any.whl:
Publisher:
publish.yml on EchoVaultHQ/EchoVault-CLI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
echovault_cli-0.0.5-py3-none-any.whl -
Subject digest:
4583f04fe4192ebcfa71f509d1058f67014ab49b778db36adf359a85e85599e3 - Sigstore transparency entry: 2163704981
- Sigstore integration time:
-
Permalink:
EchoVaultHQ/EchoVault-CLI@a0a55340f7b0028b672156158afb8485e3bd979b -
Branch / Tag:
refs/tags/v0.0.5 - Owner: https://github.com/EchoVaultHQ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a0a55340f7b0028b672156158afb8485e3bd979b -
Trigger Event:
push
-
Statement type: