Auto-connection request for "shutdown" interface — turn-off-pc-desktop

name: turn-off-pc-desktop

description: Turn Off PC Desktop is a companion desktop app that allows users to remotely shut down, restart, or put their computer to sleep from a mobile phone. It includes a background TCP server that listens for authenticated commands and a desktop GUI (Flutter) for configuration and monitoring.

snapcraft: https://github.com/Keickd/Turn-off-PC-from-phone/blob/main/code/apps/DesktopApp/turn_off_pc_desktop_app/snap/snapcraft.yaml

upstream: https://github.com/Keickd/Turn-off-PC-from-phone

upstream-relation: I am the author and sole maintainer of the upstream project.

interfaces:

shutdown:

  • request-type: auto-connection

  • reasoning: The entire purpose of this application is to allow users to remotely shut down, restart, or suspend their computer from a companion mobile app (available on Google Play and the App Store). The shutdown interface is not an optional feature — it is the core and only reason the application exists. Without this interface, the snap is completely non-functional.

    The app is already distributed and working on other platforms: as an .exe installer and via the Microsoft Store on Windows, as a .dmg on macOS, and as a .deb package on Linux. On all of these platforms, the app successfully performs shutdown, restart, and sleep operations. The Snap package is simply another distribution channel for the same application.

    Power management commands are never executed automatically or in the background. They are only triggered when the user explicitly sends a command from the authenticated mobile app. The desktop app acts as a TCP server that receives these commands and executes them on behalf of the user.

    The project website is available at https://www.turnoffpc.com where you can see the app in action and its distribution across all platforms.

This request has been added to the queue for review by the @reviewers team.

Hello @Keickd,

This is a +1 (#voteFor) from me for allowing installation and auto-connection for the shutdown interface for the turn-off-pc-desktop snap, pending successful publisher vetting. As outlined in the request, this access and functionality would quite obviously be expected by the user upon install, so allowing auto-connection feels reasonable.

Thanks!

2 Likes

Hey @Keickd

shutdown interface makes sense for the application functionality and should be expected based on the snap name. As of now, shutdown is considered super-privileged and requires publisher vetting.

Could you please clarify if turn-off-pc-desktop is open source or close source? Publisher vetting alternatives are different based on that

Hi @jslarraz,

The project is closed source and the repository is private.

Could you let me know what the publisher vetting process looks like for closed source snaps? Happy to provide whatever is needed.

Thanks!

Hello again @Keickd!

The publisher vetting process for private snaps is described here: Verified Accounts. Please follow the steps in the post, and we can proceed with this request upon verification. Thanks!

Hi @elisehdy,

Thanks for the information. I’m an individual developer, not part of a company or institution, so I don’t know if i need to pass that process.

This is my first snap, so I may not yet meet those requirements either.

What would be the recommended path for publisher vetting in order to get the shutdown interface auto-connected?

Thanks!

In this case, I don’t think there a good alternative to complete the publisher vetting as of now. Perhaps, the best alternative for the time being would be to limit it to manual connection. Your snap can use snapctl is-connected to check if the interface is connected and prompt the user to connect it if needed.

1 Like

That approach isn’t aligned with the purpose of the app. The idea behind this program is that it starts automatically without requiring user interaction, as it’s designed for remote control. If user interaction is required, then it can no longer be considered true remote control. Once it requires user interaction, it no longer really serves its intended purpose.

I understand this may be considered a sensitive area that requires oversight. However, this interface is used strictly for these specific functionalities and nothing more.

It is absolutely essential that this requirement is met. In other stores, such as the Microsoft Store, it is already being distributed.

Hello @Keickd!

I recognize that this interface is essential for your snap’s core functionality. However, we are unable to grant super-privileged interfaces without publisher verification, as bypassing this step would violate our security policy.

If you need any other assistance, we are happy to help!

Thank you for understanding :slight_smile:

1 Like

Thanks for your reply.

I understand the security concerns, but I’m a bit confused about the process. How am I supposed to complete publisher verification if I’m unable to publish my first snap due to requiring a super-privileged interface?

It seems like a circular dependency: I need verification to publish, but I need to publish to get verification.

Does this mean that this type of project cannot be distributed through the Snap Store? If there is an alternative path or exception process, I would really appreciate some guidance.

Thank you.

Not a @reviewer, however, note that you can always distribute snaps without store restrictions via alternative channels like GitHub Releases.

The software is approved in other stores such as Microsoft Store, i also passed the review system. I really would like to have uploaded the app in all stores

https://apps.microsoft.com/detail/9n5jn7wpbhvx?hl=en-gb&gl=SE

This limitation blocks access to a privileged interface that is essential to my product’s core functionality. Additionally, the apparent lack of support for developers contributing free, community-focused products is difficult to justify and ultimately undermines efforts to create accessible solutions for users.

Hello again

If I create a public repository containing the code for the Linux version, including the Snap package and the way the shutdown interface is used, would that be enough for approval? The desktop application is completely free and does not include any form of monetization.

You just need to become a verified publisher as mentioned above, then the reviewers can grant the autoconnection…

For details see:

For the record, the manual connection is only needed to be done once after snap installation by the user; there is no user interaction needed afterwards.

This route is already considered, see:

1 Like