Skip to content
trylinerPublic

About

✨πŸͺ‰ Liner is a desktop player for Windows and Linux that lets you pull your music and playlists from other platforms into one clean app. No ads and bloated features, just synced lyrics and your tracks without anything getting in the way.

Topics

Resources

Contributing

Security policy

Stars

660 stars

Watchers

12 watching

Forks

Latest commit

Β 

History

616 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Liner

Modern desktop music streaming player with syllable-synced lyrics and reactive dynamic visuals.

CI Release Downloads Platforms Discussions License

Preview β€’ Architecture β€’ Getting Started β€’ Building β€’ Docs β€’ Contributing β€’ License


Liner Album Page

Preview

Liner Library
Library
Liner Fullscreen Lyrics
Fullscreen lyrics

Note

Liner client connects to the official Liner API backend for music catalog, streaming playback, and synchronized lyrics.


Architecture

The renderer follows Feature-Sliced Design: imports only point down the layers (app β†’ widgets β†’ features β†’ entities β†’ shared).

liner/desktop/
β”œβ”€β”€ electron/
β”‚   β”œβ”€β”€ main.ts              # Main process: windows, IPC, updates, deep links
β”‚   β”œβ”€β”€ preload.ts           # Context bridge between the renderer and the main process
β”‚   β”œβ”€β”€ local-tracks/        # Imported audio files and the liner-local:// protocol
β”‚   β”œβ”€β”€ youtube/             # Helpers for the YouTube playback fallback
β”‚   β”œβ”€β”€ overlay.ts           # Floating overlay player window
β”‚   β”œβ”€β”€ discord.ts           # Discord Rich Presence
β”‚   β”œβ”€β”€ crypto.ts            # In-memory WebAssembly request signer
β”‚   └── signer.ts            # Embedded WebAssembly binary
β”œβ”€β”€ native/                  # Windows snap preview add-on
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                 # App shell, routes, providers, global styles
β”‚   β”œβ”€β”€ widgets/             # Screen blocks: sidebar, header, player bar, fullscreen player, modals
β”‚   β”œβ”€β”€ features/            # player, lyrics, library, search, collection, settings, overlay, …
β”‚   β”œβ”€β”€ entities/            # track, playlist, artist, user
β”‚   β”œβ”€β”€ shared/              # API client, storage, UI kit, contracts, utilities
β”‚   β”œβ”€β”€ languages/           # Translations for 11 languages
β”‚   └── main.tsx             # Vite entry point
β”œβ”€β”€ docs/                    # Design, storage, privacy, translations, FAQ
β”œβ”€β”€ package.json
└── vite.config.ts

Getting Started

Prerequisites

  • Node.js v22+ and pnpm v10+
  • Windows 10/11, macOS or Linux

Setup

git clone https://github.com/tryliner/desktop.git
cd desktop
pnpm install

Running in Development

# Electron app with Vite hot reload
pnpm dev

Testing

# Tests only
pnpm test

# Everything CI runs on a pull request: lint, format check, types, build, tests
pnpm check

Building

# Linux (AppImage & .deb)
pnpm electron:build:linux

# Windows (.exe installer)
pnpm electron:build:win

# macOS (.dmg & .zip, for both Intel and Apple Silicon)
pnpm electron:build:mac

The macOS build produces x64 (Intel) and arm64 (Apple Silicon) packages. To build only one, add --arm64 or --x64. Packages are placed in the release/ directory.


Docs

  • Design guidelines: tokens, glass surfaces, motion and building blocks
  • Storage: where data lives on your device and what "Clear cache" removes
  • Privacy: everything the app sends off your device
  • Translations: adding strings, plurals and languages
  • FAQ: answers to the most common problems

Contributing

Bug fixes, small features, translations and docs fixes are welcome. Read CONTRIBUTING.md and AGENTS.md before you open a pull request, and report bugs with the issue forms. Questions and ideas go to Discussions, security issues to SECURITY.md. The license limits what a fork is allowed to do.


Special Thanks


License

Liner is distributed under the Liner Source-Available & Non-Commercial Contribution License.

  • Allowed: Personal non-commercial usage, local builds, and upstream contributions.
  • Prohibited: Commercial distribution, public competing forks, or extracting core algorithms for third-party products.

See LICENSE for details.

About

✨πŸͺ‰ Liner is a desktop player for Windows and Linux that lets you pull your music and playlists from other platforms into one clean app. No ads and bloated features, just synced lyrics and your tracks without anything getting in the way.

Topics

Resources

Contributing

Security policy

Stars

660 stars

Watchers

12 watching

Forks

Releases

Used by

Contributors

Languages