← Back to blog
May 1, 2026 Tools / Side Quests 3dsutil

3dsutil: bridging the gap to my 3DS

Automating the workflow for my modded console.

CLI3DSAutomationPersonal Tools

I have been spending a lot of time lately refining how I move files and homebrew to my 3DS. I got tired of the overhead of standard GUI tools and decided to build a CLI utility to automate the most annoying parts of the workflow.

Meet 3dsutil.

Why I built it

I built 3dsutil out of pure necessity. After a system reset, I found myself with a modded 3DS but no way to bootstrap the essential apps like FBI or Universal-Updater—and I was stuck at work without a screwdriver or SD card reader.

With only my MacBook, an iPhone, and a hotspot, I needed a way to push and launch .3dsx files directly to the console. 3dsutil bridges that gap: it uses the Homebrew Launcher’s NetLoader to bootstrap the environment wirelessly. No disassembly, no hardware adapters, just terminal-based deployment.

What it does today

It is currently a single Python tool with zero external dependencies, making it extremely portable:

  • NetLoader: Send .3dsx files directly to the Homebrew Launcher. It finds the console on the local network automatically.
  • FTP Management: A clean CLI interface to browse and upload files.
  • Automation: Handles recursive uploads, automatic extraction of archives (.zip/.7z), and pattern-based filtering.
  • Health Checks: Quick status commands to ensure I am actually connected before I start a transfer.

The roadmap

I am treating the 3DS like a piece of hardware I want to fully integrate into my development desk. The next two big challenges are:

  • Display Streaming: Capturing the 3DS screen output to my PC.
  • Joystick/Input Forwarding: Mapping PC controller inputs to the 3DS.

I am currently in the research phase for both—figuring out the best protocols and latency trade-offs is next on the list.

Try it

If you are interested in the code or want to try it out, the repository is up at github.com/spkskx/3dsutil.