Skip to content

codevski/decky-ftpd

Repository files navigation


decky-ftpd
decky-ftpd

Transfer files to and from your Steam Deck over Wi-Fi directly from Game Mode no desktop required. Inspired by ftpd on PSP / PS Vita.

Platform Decky Loader Release License

Key FeaturesHow To UseConnectingDevelopmentRoadmapLicense

QAM panel    Server running

Key Features

  • 📡 Game Mode native — start and stop the FTP server from the Quick Access Menu
    • No desktop mode, no SSH, no keyboard required.
  • 🔗 Instant connect — your Deck's local IP and port are displayed right in the panel
  • 📁 Full read/write access to /
    • Games, saves, emulators, homebrew all transferable.
  • 🔒 Authentication on by default — default credentials deck / deck, fully editable in Settings. Anonymous mode is opt-in.
  • Fully offline — no internet required on the Deck after install
  • 🛡️ Local network only — never exposed to the public internet

How To Use

  1. Press the button to open the Quick Access Menu
  2. Open decky-ftpd and toggle Enable FTP Server ON
  3. Your Deck's address will appear in the panel, e.g. ftp://192.168.1.x:2121
  4. Connect from any FTP client on the same Wi-Fi network

Connecting

Field Value
Protocol FTP (not SFTP or FTP-SSL)
Host IP shown in the QAM panel
Port 2121
Username deck (default — change in Settings)
Password deck (default — change in Settings)

Prefer no-password access on a trusted home network? Enable Anonymous access in Settings and confirm the warning prompt.

Recommended FTP clients

Platform Client
macOS Cyberduck, Transmit, ForkLift
Windows WinSCP, FileZilla
Android Solid Explorer, FX File Explorer
iOS FE File Explorer, Filza
Linux FileZilla, Nautilus (built-in)

Note The server stops automatically when the plugin is unloaded or the Deck shuts down. Toggle it off when not in use if you're on a shared network.

Development

To clone and run this plugin, you'll need Git, pnpm, Python 3.11+, and a Steam Deck with Decky Loader installed. From your command line:

# Clone this repository
$ git clone https://github.com/codevski/decky-ftpd

# Go into the repository
$ cd decky-ftpd

# Install frontend dependencies
$ pnpm install

# Set up Python venv for editor support (optional but recommended)
$ python3 -m venv .venv
$ source .venv/bin/activate  # or activate.fish for fish shell
$ pip install pyftpdlib

Build & Deploy

Copy your Deck's IP into .env:

DECK_IP=192.168.1.x

Then:

$ make deploy   # build frontend, create zip, rsync to Deck
$ make zip      # build + create zip only
$ make build    # build frontend only
$ make clean    # remove build artifacts

On the Deck, install via Decky → Settings → Developer → Install Plugin from ZIP.

Note SSH is only required if you want to deploy directly from your dev machine during development. End users installing from the Decky store don't need it.

Download

You can download the latest release, or install directly from the Decky Plugin Store.

Roadmap

Server

  • Settings page, custom port, passive port range
  • Username/password authentication (default on, anonymous opt-in)
  • Active connection count in the status line
  • Configurable root directory (reintroduce safely once the symlink edge cases are sorted)

Client (PSP/3DS Sync)

  • Pull mode connect to a remote FTP server and mirror a path locally
  • Configurable remote IP, remote path, and local destination
  • Remembered last-used remote IP (persisted via settingsManager)
  • Progress feedback and sync log in QAM
  • Auto-detect SD card destinations for sync target

Future

  • Steam Machine compatibility (dynamic mount point detection)

Credits

This plugin uses the following open source packages:

You may also like...

  • Decky Loader — The plugin loader that makes this possible
  • ftpd — The original Nintendo Switch / 3DS inspiration

License

MIT


GitHub @codevski

About

Decky Loader plugin that runs an FTP server directly from Game Mode, allowing full file management over the local network, no desktop mode required. Inspired by ftpd on PSP/PS Vita.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors