Control and manage a Commodore 64 Ultimate from Android, iOS, or a self-hosted web deployment on your local network.
- Cross-platform: Native Android and iOS apps, plus a Docker-based web interface for macOS, Windows, or Linux.
- Cross-device: Works with the C64 Ultimate, the Ultimate 64 (Elite I/II), and the Ultimate-II+(L) cartridge.
- Dashboard: Machine controls, Quick actions, drive and printer shortcuts, SID mixer, and streams on a single page.
- Playlists: Build playlists from local files, C64U storage, the High Voltage SID Collection (HVSC), or CommoServe search results. Autoplay, shuffle, and subsong selection.
- Disk management: Mount, unmount, and rotate multi-disk groups across drives.
- Configuration: Browse and edit the full C64 Ultimate configuration tree.
- Diagnostics: Inspect activity logs, traces, latency, and connection health across App, REST, FTP, and Telnet activity.
- Device Switcher: Switch between devices and run parallel health checks.
Setup takes three steps: install the app, enable the C64 Ultimate's network services, then connect the two over your local network.
Install the app on a phone, tablet, or host that is on the same local network as the C64 Ultimate.
Android
- Download the latest APK from Releases.
- Open the APK and allow installs from unknown sources if prompted.
- Tap Install.
iOS
- Set up SideStore.
- Download the latest IPA from Releases.
- In SideStore > My Apps, tap + and select the IPA.
SideStore refreshes the app signature automatically every 7 days.
Web (Docker)
The web version is self-hosted for LAN use. It needs Docker on Windows, macOS, or Linux; a Raspberry Pi Zero 2W or 4B with 512 MiB RAM or more is enough. Install Docker with Docker Desktop (Windows/macOS) or Docker Engine (Linux). The image supports linux/amd64 and linux/arm64.
mkdir -p ./c64commander-config && chmod 0777 ./c64commander-config
docker run -d --name c64commander -p 8064:8064 \
-v ./c64commander-config:/config --restart unless-stopped \
ghcr.io/chrisgleissner/c64commander:<version>Open http://<host-ip>:8064 in a browser to load the app. If you later set a password in Settings > Device > Network password, the web interface requires that password to log in.
C64 Commander controls the device through its built-in network services, so turn these on first.
- On the C64 Ultimate, press C= and RESTORE together to open the menu, then select Network Services & Timezone.
- Enable the services the app relies on:
- Web Remote Control Service — the REST API used for most control and status operations. Required.
- FTP File Service — needed to browse and transfer files for playlists and disk collections.
- Telnet Remote Menu Service — used for a few advanced operations not available over REST, such as power cycle.
- Make sure the C64 Ultimate is on the same network as the device running C64 Commander. Note its IP address under Wired Network Setup or WI-FI Network Setup in case you need to enter it manually.
-
Start C64 Commander. When no reachable device is configured yet, it automatically scans the local network for C64 Ultimate devices.
-
From the discovered devices, tap Use to connect now, or Save to keep one for later. If a device is password-protected, the app prompts for its network password before connecting.
-
To scan again later, open Settings > Device > Connection and tap Discover devices.
-
If discovery does not find your device, enter its IP address or hostname manually under Settings > Device > Connection.
-
A green health indicator at the top right confirms a successful connection.
On later launches, C64 Commander reconnects to your saved device automatically. If a device needs a network password — or a saved password stops working — the app prompts for it and reconnects as soon as the correct password is entered.
Operational dashboard: machine controls, quick actions, light effects, drives, printer, SID mixer, streams, and configuration snapshots.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Build playlists for programs and songs sourced from the local device, C64U storage, HVSC, or CommoServe. Supports autoplay, shuffle, repeat, subsong selection, and automatic song length discovery.
![]() |
![]() |
![]() |
Choose an import source, browse its contents, then add files to your playlist or disk collection.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
View drive state, mount and eject images, and manage disk collections with multi-disk group rotation.
![]() |
![]() |
![]() |
Browse and edit the full C64 Ultimate configuration: categories, items, sliders, toggles, and per-item refresh.
![]() |
![]() |
![]() |
Connection, appearance, diagnostics, playback defaults, HVSC integration, and device-safety controls.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Built-in guides for setup, workflows, and day-to-day usage.
![]() |
![]() |
![]() |
Tap the top-right status badge to open diagnostics.
Provides health checks, activity logs, trace inspection, filter editor, and latency analysis across App, REST, FTP, and Telnet contributors.
![]() |
![]() |
![]() |
Long-press the top-right status badge to open the device switcher.
The switcher shows all configured devices with real-time health status, allowing instant switching and quick identification of connectivity or device issues.
![]() |
![]() |
![]() |
The layout adapts automatically based on viewport width: Small (phones), Standard (large phones and small tablets), and Large (tablets and desktops). Override in Settings > Display Profile.
| Small display | Standard display | Large display |
|---|---|---|
|
|
|
C64 Commander can be operated with a hardware keyboard, D-pad/joystick, or numeric keypad.
The visible highlight shows the selected control; use Up/Down to move, OK/Enter to open a card or activate a control, and Back/Escape to leave a card, close a dialog, or go back. A soft-key guidance bar appears only while key navigation is active and clears immediately on touch/mouse input.
Disable it in Settings > Experimental > Keyboard and keypad navigation if a device should remain touch-only. Numeric-keypad T9 text entry is reserved for keypad-first mode; hardware keyboard typing remains literal.
- Confirm the C64 Ultimate and your device are on the same network.
- Verify the IP address or hostname in Settings > Device > Connection.
C64 Commander includes Device Safety controls under Settings > Device Safety to throttle REST and FTP traffic. REST mutations use a single in-flight lane; presets and advanced controls tune FTP concurrency and backoff behavior.
- Presets: Relaxed, Balanced (default), Conservative.
- Advanced controls: FTP concurrency, read coalescing, cooldowns, backoff strategy, circuit-breaker thresholds, discovery probe interval.
- The Relaxed preset can overwhelm some setups. Start with Balanced or Conservative.
- App expired: SideStore refreshes every 7 days automatically.
- Account/App ID limits: Remove unused sideloaded apps and retry.
- Install/signing errors: Re-download the IPA and verify its checksum.
- Telnet-backed controls: Power Cycle, Clear Flash, and other Telnet-only actions use the native socket bridge on iOS and Android. Support is discovered from the connected device's live Telnet menu graph, so device-specific gaps stay visible as disabled controls with inline explanation instead of disappearing.
Network security, web server configuration, authentication, and Linux auto-update are covered in docs/advanced.md.
The High Voltage SID Collection is an archive of C64 SID music. C64 Commander integrates HVSC for browsing, searching, and playing SID tunes with metadata and song-length support.
Thanks to Commodore for creating the Commodore 64 and to the creators of the C64 Ultimate for extending the platform with modern hardware.
C64 Commander uses many open-source libraries. Notices are generated via scripts/generate-third-party-notices.mjs and published as THIRD_PARTY_NOTICES.md.
GPL v3. See LICENSE.















































