Ironfoil Switch
More actions
| ironfoil | |
|---|---|
| General | |
| Author | sermuns |
| Type | Game Installer Companion |
| Version | 0.4.5 |
| License | Mixed |
| Last Updated | 2026/05/24 |
| Links | |
| Download | |
| Website | |
| Source | |
ironfoil is a tool to transfer to many title installers. It exists as both a graphical application, ironfoil-gui, and a core command-line application, ironfoil.
Using the TinFoil USB protocol, it has been tested with Awoo Installer Switch and CyberFoil. It also supports Sphaira Switch with its own protocol, with Sphaira support enabled when transferring.
Installation
GUI
Download the latest archive for your OS and extract it to any location of your choice.
CLI
Install the CLI using one of the following methods:
Manually download the latest release and extract the tool to a location that is in your $PATH.
Use cargo-binstall:
cargo binstall ironfoil
Install the latest release using cargo:
cargo install ironfoil
User guide
ironfoil --help
Transfer to NS title installers from the command-line Usage: ironfoil <COMMAND> Commands: usb Transfer over USB network Transfer over network rcm Inject RCM payload help Print this message or the help of the given subcommand(s) Options: -h, --help Print help -V, --version Print version
ironfoil usb --help
Transfer over USB
Usage: ironfoil usb [OPTIONS] <GAME_BACKUP_PATH>
Arguments:
<GAME_BACKUP_PATH> Path to a game backup file or directory containing game backup files
Options:
-r, --recurse Whether to recursively look for files (only for directories)
--sphaira If transferring to Sphaira homebrew menu
-h, --help Print help
ironfoil network --help
Transfer over network Usage: ironfoil network [OPTIONS] <GAME_BACKUP_PATH> <TARGET_IP> Arguments: <GAME_BACKUP_PATH> Path to a game backup file or directory containing game backup files <TARGET_IP> The IP address of the Nintendo Switch Options: -r, --recurse Whether to recursively look for files (only for directories) -h, --help Print help
ironfoil rcm --help
Inject RCM payload Usage: ironfoil rcm <PAYLOAD_PATH> Arguments: <PAYLOAD_PATH> Path to the RCM payload file Options: -h, --help Print help
Screenshots
|
|
Changelog
v0.4.5 2026/05/24
- Features
- (core) allow .xcz files by @sermuns in 142dace
- Miscellaneous Tasks
- release v0.4.5 by Samuel Åkesson in 924ebab
v0.4.4 2026/04/24
- Bug Fixes
- Performance
- (ci) broader cache in release by @sermuns in 6c95938
- Miscellaneous Tasks
- (gui) add "of which" by @sermuns in b83e48d
- breaking consolidate gui and cli releasing. remove Windows installer by @sermuns in 7ea8e35
- publish GUI too by @sermuns in d69ff38
- rename release CI by @sermuns in f2dd07f
- add dependabot by @sermuns in 7910f71
- update deps by @sermuns in 5030c21
- add github-actions to dependabot alerts by @sermuns in db36b00
- release v0.4.4 by @sermuns in 5a1d601
v0.4.3 2026/04/23
- Documentation
- Miscellaneous Tasks
v0.4.2 2026/04/19
- Bug Fixes
- Refactor
- Testing
- Miscellaneous Tasks
v0.4.1 2026/03/29
- Bug Fixes
- Refactor
- (core) create crate features by @sermuns in 0868f25
- Documentation
- (cli) show more of help output by @sermuns in b513224
- Miscellaneous Tasks
v0.4.0 2026/03/29
- Features
- Bug Fixes
- Refactor
- (core) combine error handling in http server by @sermuns in c1ae25c
- remove Arc nonsense where it's not needed by @sermuns in a83e99d
- move UsbProtocol into core, use it instead of for_sphaira bool by @sermuns in efec4e6
- create a dedicated InstallProgress enum. less CPU churning on CLI, still need to fix GUI.. by @sermuns in 3a5930d
- use high-level Read/Write syntax for USB transfers. fix progress reporting. by @sermuns in f928f09
- make tinfoil install default by @sermuns in 7d02080
- Documentation
- Miscellaneous Tasks
v0.3.1 2026/03/27
- Features
- (gui) add linux desktop entry by @sermuns in b99bafc
- Bug Fixes
- (ci) fix caching by @sermuns in 9054979
- Refactor
- (cli) rename TransferType->InstallType by @sermuns in a4d3c9e
- (cli) deduplicate usb/network install code by @sermuns in 742c090
- (core) break usb modules out into files by @sermuns in ce5f5ec
- (core) use shared ref instead of owned Arc by @sermuns in 87b70c8
- (core) satisfy some clippy lints by @sermuns in 9ae9b60
- (gui) move ugly code into impl StagedFiles by @sermuns in fbf5c9d
- (gui) satisfy lints by @sermuns in e4989a8
- consolidate progress events as an enum. fix bug where checking target ip during usb install.. by @sermuns in 6f078e5
- Miscellaneous Tasks
- (cli) color-eyre, only show source on debug by @sermuns in e3ac7f3
- (core) fix needless_borrow by @sermuns in 9c7334e
- (gui) remove unused imports by @sermuns in f4fece0
- (gui) only enable eframe wayland,x11 on linux by @sermuns in 9cc4f47
- remove incorrect comment by @sermuns in 605d510
- add cargo fmt precommit by @sermuns in 360e2df
- add pedantic clippy linting by @sermuns in 4aa637f
- allow override version in release just recipe by @sermuns in 885e160
- release v0.3.1 by @sermuns in 252d599
v0.3.0 2026/03/26
- Features
- Refactor
- Styling
- Miscellaneous Tasks
- release v0.3.0 by @sermuns in 49c31ad
v0.2.1 2026/03/26
- Features
- add program icon and stop console on Windows by @sermuns in eccd7b5
- Miscellaneous Tasks
- release v0.2.1 by @sermuns in 1550fcb
v0.2.0 2026/03/26
- Features
- (core) add sphaira usb install support by @sermuns in 54c3a49
- (gui) begin creating GUI by @sermuns in 4e7fe5c
- (gui) style add icons, semi working transfer by @sermuns in 0d0822c
- (gui) add sphaira support by @sermuns in 9de9061
- better Dockerfile, using cargo-chef by @sermuns in 9fa1c38
- better error on permission denied by @sermuns in 6a34b90
- remove indicatif from core, use mpsc::Channel to synchronize progress by @sermuns in 7e61d74
- add cancelling and stop using suggestion() by @sermuns in a44854b
- fully working GUI, refactor a lot of code by @sermuns in 8bad5c7
- simplify, reword GUI and error by @sermuns in d474ab3
- add distributioning with
cargo-distby @sermuns in e365d56
- Bug Fixes
- use installer-generic language in error by @sermuns in ef1eb8f
- align center by @sermuns in c986fc8
- hopefully make windows correctly parse release version? by @sermuns in f93bdc0
- symlink media for crates.io.. by @sermuns in 0c69754
- enable file_glob by @sermuns in 462958d
- only build & publish CLI by @sermuns in 460f80e
- force bash in release notes by @sermuns in 0a39755
- publish ironfoil-core before cli by @sermuns in 3ee98d8
- Refactor
- export
GAME_BACKUP_EXTENSIONSby @sermuns in 782caa1
- export
- Documentation
- Miscellaneous Tasks
- add push recipe by @sermuns in e647d6c
- add TODO to network by @sermuns in b66bd08
- don't optimize debug build by @sermuns in e53b8d2
- Update README.md (#18) by @binarymelon in b18fac5
- update README and description for more general title installers by @sermuns in bf8d530
- make features bump minor by @sermuns in b45f10e
- allow dirty ci by @sermuns in 309bf8b
- don't use cargo-dist for CLI by @sermuns in 1ec963b
- skip pre-building.. by @sermuns in bd923e8
- simplify dist by @sermuns in 8507648
- name cli artifacts without version, as gui does by @sermuns in f96f199
- add release notes to gui release too, cleanup.. by @sermuns in a7c0aee
- stop releasing for i686 linux by @sermuns in abc0cb2
- add rust-cache by @sermuns in 0945ba8
- release v0.2.0 by @sermuns in 8a3db31
v0.1.6 2026/03/05
- Features
- add RCM payload injection by @sermuns in b5f0ef1
- Bug Fixes
- (ci) more robust RELEASE_VERSION parsing and release notes handling by @sermuns in a33f2df
- Miscellaneous Tasks
- release v0.1.6 by @sermuns in 5845411
v0.1.5 2026/03/05
- Features
- smaller binaries by @sermuns in d2f1756
- Refactor
- split lib into multiple modules by @sermuns in e9e5ec4
- Miscellaneous Tasks
- release v0.1.5 by @sermuns in 5d8ecbf
v0.1.4 2026/03/04
- Features
- add recurse flag by @sermuns in d649cb5
- Documentation
- update install instructions by @sermuns in 2b65ec2
- Miscellaneous Tasks
v0.1.3 2026/03/04
- Miscellaneous Tasks
v0.1.2 2026/03/04
- Miscellaneous Tasks
v0.1.1 2026/03/04
- Miscellaneous Tasks
v0.1.0 2026/03/04
- Features
- first working implementation! by @sermuns in eeef3bd
- add progress indicator by @sermuns in ff53d44
- style the progress indicator by @sermuns in ef6355c
- better user-facing error reporting by @sermuns in 8e2f90e
- allow single NSP transfers by @sermuns in 22bf173
- support XCI format by @sermuns in b02da39
- support NSZ format by @sermuns in 65744f7
- breaking create subcommands
usbandnetworkand add network transfer by @sermuns in 8303b52
- Bug Fixes
- Other
- use less features of color-eyre by @sermuns in 3e617dd
- Refactor
- Documentation
- Miscellaneous Tasks
- initial commit by @sermuns in 91b36dc
- add precommits by @sermuns in 561f852
- update description and cli meta by @sermuns in 604a60a
- update description by @sermuns in 3601d84
- update README by @sermuns in 6a8c11a
- update description in README by @sermuns in f5ae646
- rephrase error by @sermuns in 17af04a
- add license by @sermuns in 43ca476
- remove unused imports by @sermuns in 7de47bb
- rename project from ns-usbloader-rs to ironfoil by @sermuns in 52b5bcc
- update GIF by @sermuns in 12c93cc
- add CD and docker workflows by @sermuns in 772c725
- fixes to crate metadata for publishing by @sermuns in 7cc31df
- add release config by @sermuns in 19d6f9c
- Release by @sermuns in 05985c5