{"id":51320204,"url":"https://github.com/baairon/soundcli","last_synced_at":"2026-07-01T12:32:24.723Z","repository":{"id":364543782,"uuid":"1226971132","full_name":"baairon/soundcli","owner":"baairon","description":"Own your music. Download your YouTube, SoundCloud, and Spotify libraries to your computer and play them offline, all from your terminal.","archived":false,"fork":false,"pushed_at":"2026-06-30T01:37:33.000Z","size":172,"stargazers_count":361,"open_issues_count":2,"forks_count":32,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-06-30T03:08:12.736Z","etag":null,"topics":["cli","music-downloader","music-player","offline","soundcloud","spotify","terminal","tui","youtube"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/sndcli","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baairon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-02T03:28:24.000Z","updated_at":"2026-06-30T01:37:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/baairon/soundcli","commit_stats":null,"previous_names":["baairon/soundcli"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/baairon/soundcli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baairon%2Fsoundcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baairon%2Fsoundcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baairon%2Fsoundcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baairon%2Fsoundcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baairon","download_url":"https://codeload.github.com/baairon/soundcli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baairon%2Fsoundcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35007276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","music-downloader","music-player","offline","soundcloud","spotify","terminal","tui","youtube"],"created_at":"2026-07-01T12:32:23.266Z","updated_at":"2026-07-01T12:32:24.712Z","avatar_url":"https://github.com/baairon.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"preview/welcome.svg\" alt=\"A terminal dashboard for downloading and playing your music\" style=\"max-width: 832px; width: 100%; height: auto;\"\u003e\n\u003c/p\u003e\n\nOwn your music. soundcli downloads your YouTube, SoundCloud, and Spotify libraries to your computer and plays them offline, straight from your terminal. Every song lands on your own drive as a real file, yours to keep and ready the moment you want it.\n\n## Get started\n\nYou only have to do this once. soundcli handles the rest itself.\n\n1. **Install Node.js** from [nodejs.org](https://nodejs.org): download the installer and click **Next** until it finishes. It's the one piece of software soundcli runs on.\n2. **Open your terminal.** On **Windows**, press the Windows key, type `terminal`, and press Enter. On a **Mac**, press `Cmd + Space`, type `terminal`, and press Enter. A plain window opens, and that's all you need to get going.\n3. **Start soundcli.** Copy the line below, paste it into the terminal, and press **Enter**:\n\n   ```sh\n   npx sndcli\n   ```\n\nFrom there soundcli takes over, downloading the few tools it needs and setting everything up on its own.\n\n## The first run\n\nThe first time it opens, soundcli shows you where your music will be saved: a dedicated folder inside your computer's Music folder, so you always know where your files are.\n\nThen it asks where your music comes from. Pick **YouTube**, **SoundCloud**, or **Spotify**, then type your username or paste a link to a playlist, an album, or a single track. Downloading starts right away, and you can begin listening while the rest of your library finishes.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"preview/library.svg\" alt=\"The library view: sidebar, your songs, and the player mid-song\" style=\"max-width: 832px; width: 100%; height: auto;\"\u003e\n\u003c/p\u003e\n\n## Your library, kept in order\n\nEvery track downloads in its original quality, with album artwork and artist details included, and gets sorted into folders automatically so your collection stays organized. Almost any link works: playlists, albums, artist profiles, your likes, or a single song. Public Spotify playlists and albums work without signing in.\n\nIt never downloads the same song twice, and if you close it mid-download, it picks up where it left off next time. Once a track is saved, it's there for good.\n\n## Playing it back\n\nEverything runs from the keyboard, with controls that are quick to pick up. Press `?` anytime for the full list of keys. The bar along the bottom of the screen only shows the few that matter right now, so there's nothing to memorize.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"preview/keys.svg\" alt=\"The keyboard cheatsheet: navigate, player, and download keys\" style=\"max-width: 832px; width: 100%; height: auto;\"\u003e\n\u003c/p\u003e\n\n## Contributing\n\nIssues and pull requests are welcome. soundcli is TypeScript with an Ink\nterminal UI, riding on yt-dlp and mpv.\n\nRun it locally:\n\n1. Clone the repo and open the folder.\n2. Install dependencies (Node 22 or newer):\n   ```sh\n   npm install\n   ```\n3. Start the dev build, which runs straight from source:\n   ```sh\n   npm run dev\n   ```\n   Or build it and run the bundled version:\n   ```sh\n   npm run build\n   npm start\n   ```\n\nBefore opening a pull request:\n\n- Run the tests: `npm test`\n- Check types: `npm run typecheck`\n- Write commits in Conventional Commits style (`fix:`, `feat:`, `docs:`, `chore:`, `refactor:`)\n- Keep the UI surface minimal: one contextual footer plus the `?` cheatsheet, never a wall of commands\n\nThen open a PR against `main` with a short note on what changed and why.\n\n## Privacy\n\nsoundcli runs on your computer and nowhere else. There are no accounts, no logins, and nothing tracking what you play. It connects to the internet for three reasons only: to download the music you ask for, to set itself up the first time, and to keep its own tools current so downloads keep working. Everything else stays with you.\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/?repos=baairon%2Fsoundcli\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=baairon/soundcli\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=baairon/soundcli\u0026type=date\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=baairon/soundcli\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaairon%2Fsoundcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaairon%2Fsoundcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaairon%2Fsoundcli/lists"}