API request: Queue write operations (move, remove, clear) — critical for Linux users with no official client

Request: Expanded queue management in the Roon API (node-roon-api)

Hi Team Roon

I’m the developer of MusicD Remote, a Roon extension that provides a web-based control surface for Roon zones. I’d like to make a case for expanding the queue management capabilities in the official API, and I hope the Roon team will consider this for a future release.

What works well today

First, credit where it’s due: the transport API is solid. Zone subscriptions, playback control, volume, and subscribe_queue all work reliably, and play_from_here makes basic queue navigation possible. The browse hierarchy, while verbose, is workable.

Where the API falls short

The queue is effectively read-only beyond play_from_here. Specifically, there is no way to:

  1. Move/reorder tracks — Users can see their queue in my web UI but can’t drag a track up or down. Every other modern streaming interface supports this, and users assume it’s a bug in my extension rather than an API limitation.
  2. Remove individual tracks — There’s no remove_from_queue equivalent. The only workaround is destructive (playing from a different point).
  3. Multi-select operations — Batch remove or batch move is impossible without the primitives above.
  4. Clear queue — No way to clear the upcoming queue programmatically. Users have to reach for an official Roon client to do this.
  5. Insert at position — Queue additions are limited to what the browse hierarchy exposes; there’s no way to insert a track at an arbitrary queue position.

Why this matters: Linux users have no official client

This is the part I’d really like to highlight. Roon Server runs beautifully on Linux — it’s arguably the recommended way to host a core — but there is no official Roon control client for Linux desktop. A Linux-only user running Roon Server on their machine literally cannot manage their queue without picking up a phone or tablet.

Web-based extensions like mine (and others in the community) are the only native control surface these users have. When the API can’t clear or reorder a queue, those users have no path at all to that functionality on their platform. Expanding the queue API isn’t just a nicety for extension developers — it closes a real gap in Roon’s platform coverage that the community has been filling for years.

Concrete proposal

Adding these methods to the transport service would cover the vast majority of use cases:

  • move_queue_item(zone, queue_item_id, new_position)
  • remove_queue_item(zone, queue_item_id) — accepting an array would enable multi-select
  • clear_queue(zone)

The queue subscription infrastructure already exists, so clients can already render live queue state — we just need write access to match the read access.

I understand API work has to compete with other priorities, but these are operations the official clients already perform, so the underlying core functionality clearly exists. Exposing it through the extension API would meaningfully improve the ecosystem, especially for Linux users who depend on it.

Happy to provide more detail on use cases, or to test any beta API endpoints.

Thanks for considering it.

Changed sub-category to Feature Suggestions for clarity and community voting.

2 Likes