atvloadly is a web service that supports sideloading app on Apple TV. It uses Impactor as the underlying technology for sideloading and automatically refreshes the app to ensure its long-term availability.
😔 Only supports Linux/OpenWrt systems, does not support Mac/Windows systems.
The Linux/OpenWrt host needs to install avahi-deamon.
OpenWrt:
opkg install avahi-dbus-daemon
/etc/init.d/avahi-daemon start
Ubuntu:
sudo apt-get -y install avahi-daemon
sudo systemctl restart avahi-daemon
Please refer to the following command for installation, remember to modify the mount directory.
Docker:
docker run --security-opt seccomp:unconfined -d --name=atvloadly --restart=always -p 5533:80 -v /path/to/mount/dir:/data -v /var/run/dbus:/var/run/dbus -v /var/run/avahi-daemon:/var/run/avahi-daemon bitxeno/atvloadly:latest
The /var/run/dbus and /var/run/avahi-daemon of the host machine need to be shared with the docker container for use.
If you want to use the HOST network and want to modify the listening port, you can add environment variables to container:
SERVICE_PORT=5533
Docker Compose:
wget https://raw.githubusercontent.com/bitxeno/atvloadly/refs/heads/master/docker-compose.yml
docker compose pull
docker compose up -d
Dedicated Apple ID installation account, both free or developer accounts are acceptable (For security reasons, avoid using commonly used accounts. Instead, create a burned account for installation!) A free Apple ID allows only a few signing certificates, shared by every sideloading tool that uses the account. When atvloadly cannot create one because the account is full, it never revokes a certificate on its own: the install page asks which certificate, if any, may be revoked.
atvloadly needs to be authorized as a trusted device (it will be virtualized as a MacBook). When logging in, Apple will send a 2FA verification code to the registered phone number of your account or to a device that has already logged in with the installation account. Please authorize and verify promptly.
Remote and Devices -> Remote App and Devices, enter pairing mode.AppleTV.AppleTV device to enter the pairing page and complete the pairing operation.AppleTV will be displayed.AppleTV to enter the sideload installation page, select the IPA file that needs to be sideloaded, and click Install.If you already own a code signing certificate, you can import its .p12 (with its password, which may be empty) and a matching .mobileprovision profile (a tvOS profile listing the Apple TV UDID for an Apple TV), then choose External certificate on the install page. No Apple ID is asked for or used. Apps signed this way are not refreshed automatically: they expire at the earlier of the certificate and profile expiries, and reinstalling with the same certificate and profile does not extend that date. After replacing the profile (or with a new identity), reinstall or update the app to apply the new expiry. They can be installed from and track a source (GitHub releases or AltStore), their updates being signed with the same identity.
The private keys are stored encrypted with a deployment key file (signing.key_file, default /data/keys/signing-identity.key): back it up together with the database. atvloadly has no authentication, so keep it on a trusted network.
Each free Apple ID can register up to 10 apps and activate up to 3 apps simultaneously. Installing more than 3 will cause previously installed apps to become unavailable.
Please turn off the VPN, restart the AppleTV, re-enter pairing mode, make sure [Tool] can detect devices of the
_remotepairing-manual-pairing._tcptype, and pair again.Try using
privileged: truein your docker-compose.yml or--privilegedin your docker run command instead of--security-opt seccomp:unconfined.
This may have triggered Apple's risk control. Apple has login restrictions for certain regions. You can try adding a proxy in the settings. Alternatively, try creating a new account.
If the IPA requires permissions such as CloudKit, only paid developer accounts can sign and enable them. After sideloading with atvloadly, the IPA's
Bundle Identifierwill be modified, and some IPAs may restrict this, causing crashes.
After upgrading the system, re-pairing is required. Generally, newly released systems are not supported. It is recommended to disable automatic system updates.
Currently does not support it.
/healthcheck: Return service health status (200 indicates normal, 503 indicates that an app has expired).
/mcp: MCP service api, streamable http transport, can connect to AI Agent to install or refresh apps.
Impactor: the sideload core
idevice: libimobiledevice in pure Rust
usbmuxd2: usbmuxd implementation for linux
frida-core:: remote pairing connection reference
833 followers · starred Dec 2025
992 followers · starred Nov 2024
204 followers · starred Dec 2025
88 followers · starred Mar 2026
atvloadly is a web service that supports sideloading app on Apple TV. It uses Impactor as the underlying technology for sideloading and automatically refreshes the app to ensure its long-term availability.
😔 Only supports Linux/OpenWrt systems, does not support Mac/Windows systems.
The Linux/OpenWrt host needs to install avahi-deamon.
OpenWrt:
opkg install avahi-dbus-daemon
/etc/init.d/avahi-daemon start
Ubuntu:
sudo apt-get -y install avahi-daemon
sudo systemctl restart avahi-daemon
Please refer to the following command for installation, remember to modify the mount directory.
Docker:
docker run --security-opt seccomp:unconfined -d --name=atvloadly --restart=always -p 5533:80 -v /path/to/mount/dir:/data -v /var/run/dbus:/var/run/dbus -v /var/run/avahi-daemon:/var/run/avahi-daemon bitxeno/atvloadly:latest
The /var/run/dbus and /var/run/avahi-daemon of the host machine need to be shared with the docker container for use.
If you want to use the HOST network and want to modify the listening port, you can add environment variables to container:
SERVICE_PORT=5533
Docker Compose:
wget https://raw.githubusercontent.com/bitxeno/atvloadly/refs/heads/master/docker-compose.yml
docker compose pull
docker compose up -d
Dedicated Apple ID installation account, both free or developer accounts are acceptable (For security reasons, avoid using commonly used accounts. Instead, create a burned account for installation!) A free Apple ID allows only a few signing certificates, shared by every sideloading tool that uses the account. When atvloadly cannot create one because the account is full, it never revokes a certificate on its own: the install page asks which certificate, if any, may be revoked.
atvloadly needs to be authorized as a trusted device (it will be virtualized as a MacBook). When logging in, Apple will send a 2FA verification code to the registered phone number of your account or to a device that has already logged in with the installation account. Please authorize and verify promptly.
Remote and Devices -> Remote App and Devices, enter pairing mode.AppleTV.AppleTV device to enter the pairing page and complete the pairing operation.AppleTV will be displayed.AppleTV to enter the sideload installation page, select the IPA file that needs to be sideloaded, and click Install.If you already own a code signing certificate, you can import its .p12 (with its password, which may be empty) and a matching .mobileprovision profile (a tvOS profile listing the Apple TV UDID for an Apple TV), then choose External certificate on the install page. No Apple ID is asked for or used. Apps signed this way are not refreshed automatically: they expire at the earlier of the certificate and profile expiries, and reinstalling with the same certificate and profile does not extend that date. After replacing the profile (or with a new identity), reinstall or update the app to apply the new expiry. They can be installed from and track a source (GitHub releases or AltStore), their updates being signed with the same identity.
The private keys are stored encrypted with a deployment key file (signing.key_file, default /data/keys/signing-identity.key): back it up together with the database. atvloadly has no authentication, so keep it on a trusted network.
Each free Apple ID can register up to 10 apps and activate up to 3 apps simultaneously. Installing more than 3 will cause previously installed apps to become unavailable.
Please turn off the VPN, restart the AppleTV, re-enter pairing mode, make sure [Tool] can detect devices of the
_remotepairing-manual-pairing._tcptype, and pair again.Try using
privileged: truein your docker-compose.yml or--privilegedin your docker run command instead of--security-opt seccomp:unconfined.
This may have triggered Apple's risk control. Apple has login restrictions for certain regions. You can try adding a proxy in the settings. Alternatively, try creating a new account.
If the IPA requires permissions such as CloudKit, only paid developer accounts can sign and enable them. After sideloading with atvloadly, the IPA's
Bundle Identifierwill be modified, and some IPAs may restrict this, causing crashes.
After upgrading the system, re-pairing is required. Generally, newly released systems are not supported. It is recommended to disable automatic system updates.
Currently does not support it.
/healthcheck: Return service health status (200 indicates normal, 503 indicates that an app has expired).
/mcp: MCP service api, streamable http transport, can connect to AI Agent to install or refresh apps.
Impactor: the sideload core
idevice: libimobiledevice in pure Rust
usbmuxd2: usbmuxd implementation for linux
frida-core:: remote pairing connection reference
833 followers · starred Dec 2025
992 followers · starred Nov 2024
204 followers · starred Dec 2025
88 followers · starred Mar 2026