XeCLI is a terminal-first Xbox 360 RGH/JTAG toolkit built for live console work. It combines XBDM, JRPC2, FTP, XEX tooling, memory inspection, module control, screenshot capture, Ghidra headless automation, and Games on Demand conversion in one CLI and one release package.
The repository and product name are XeCLI. The installed terminal command is rgh.
Created by Pew7s.
Support our work? Buy us a coffee!
- Wiki Home
- Commands Reference
- CLI Help Output
- Beginner Guide
- Hardware and System Controls
- XNotify
- Advanced Guide
- Published Docs Site
Top-level help:
Live status:
XeCLI is designed for three kinds of work:
- Daily operator workflows: discovery, connection management, status, FTP, plugin control, and title launching.
- Reverse engineering workflows: module listing, memory reads and writes, thread context, breakpoints, XEX dumping, strings, and Ghidra export.
- Tool integration workflows: JSON output, bundled metadata, and stable command-based orchestration from scripts or companion apps.
It is intended to replace scattered one-off console utilities with a consistent command surface that can be used interactively or scripted.
The repository and release package include:
- The CLI source and managed project dependencies.
- Common console-side
.xexdependency files used with XeCLI workflows. - A bundled Title ID database.
- Ghidra helper scripts.
- Wiki documentation and release-facing README content.
Bundled assets:
src/Xbox360.Remote.Cli/ConsoleDependencies/xbdm.xexsrc/Xbox360.Remote.Cli/ConsoleDependencies/XDRPC.xexsrc/Xbox360.Remote.Cli/ConsoleDependencies/JRPC2.xexsrc/Xbox360.Remote.Cli/Assets/xbox360_gamelist.csvsrc/Xbox360.Remote.Cli/Assets/xbox360_titleids.txtsrc/Xbox360.Remote.Cli/ghidra_scripts/DecompileAllToC.java
At publish time, these assets are copied into the release output so the package remains self-contained.
XeCLI does not replace console-side plugins or services. The target console must already provide the pieces you want to use:
- XBDM for console control, module enumeration, memory access, threads, breakpoints, screenshots, and file-system commands.
- JRPC2 for CPU key, temperatures, Title ID, dashboard version, motherboard type, notifications, sign-in helpers, LED control, and generic RPC.
- FTP service for FTP-backed file browsing, save management, content management, and DashLaunch plugin edits.
XeCLI is shipped as a self-contained local toolchain and now includes common console-side .xex dependency files in ConsoleDependencies/ for packaging convenience, but those services still have to be installed and enabled on the target console.
Core console workflows:
- Console discovery and saved default targeting.
- Fast
status,ping,profiles, andtitlequeries. - Sign-in state inspection with gamertag and XUID output.
- Ring-of-light LED control with cached state display.
- Manual fan command dispatch and optional SMC version probing.
- Launch and reboot control with optional on-console success notifications.
Live inspection and debugging:
- Module list, info, dump, load, unload, and pending verification.
- Memory dump, hexdump, peek, poke, watch, strings, and pattern search with optional freeze writes.
- Thread list, context, suspend, and resume.
- Debug stop/go, code breakpoints, data breakpoints, and live debug-event watch.
File and content workflows:
- XBDM file-system access and FTP access.
- Save listing, extraction, and injection.
- Installed-content inventory and deletion.
- DashLaunch plugin listing and slot management.
XEX and analysis workflows:
- Dump the active XEX.
- Extract XEX strings from local files, FTP, or the running title.
- Run Ghidra headless analysis and decompile exports.
- Verify decompile output for bad-instruction placeholders.
Packaging and automation:
- ISO to Games on Demand conversion.
- Folder watchdog for unattended ISO processing.
- JSON output on automation-friendly commands.
- A bundled Title ID database that other tools can consume directly.
Download the release archive, extract it, and run rgh.exe.
Release contents:
rgh.exe- native .NET runtime files bundled beside
rgh.exe ConsoleDependencies/Assets/ghidra_scripts/
The release package is self-contained for win-x64. It does not require a separate .NET runtime install on the target PC.
On first interactive launch from a packaged build, XeCLI offers a one-time prompt to add its directory to the machine PATH. That operation requires administrator approval and makes rgh available in new terminals.
Manual install commands:
rgh install
rgh install --machine-pathgit clone https://github.com/SaveEditors/xecli
cd XeCLI
dotnet build -c Release
dotnet run --project src/Xbox360.Remote.Cli -- --helpSource builds require the .NET 10 SDK/runtime. That requirement does not apply to the published win-x64 release archive.
Discover and select a console:
rgh startIf you already know the target:
rgh target --set <console-ip>
rgh ftp target --set <console-ip> --user <ftp-user> --pass <ftp-pass>Check the console:
rgh ping
rgh status
rgh status --quick
rgh titleInspect live state:
rgh modules list
rgh modules info --name Aurora.xex
rgh mem hexdump --addr 0x30000000 --size 0x40
rgh screenshot --out .\screen.bmpWork with saves, content, and plugins:
rgh save list --titleid FFFE07D1 --device Hdd1
rgh content list --device Hdd1 --show-types
rgh plugin listRun analysis workflows:
rgh xex dump --out .\title.xex
rgh xex strings --running --unicode --min 6
rgh ghidra decompile --running --out .\decomprgh title with no arguments resolves the currently active title from the connected console.
Examples:
rgh title
rgh title --json
rgh title 415608C3
rgh title 415608C3 2B7302D6When the running XEX is a dashboard replacement or homebrew shell, XeCLI can prefer a path-based fallback name such as Aurora while still showing the bundled database entry separately.
Live module unload is supported and verified against the live module list. Module load is more nuanced: some plugin stacks and modules do not hot-load safely on every console.
Supported commands:
rgh modules load --path Hdd:\HvP2.xex
rgh modules unload --name HvP2.xex --force
rgh modules pendingFor modules that trigger a reboot or disconnect as part of load, use:
rgh modules load --path Hdd:\HvP2.xex --system --reboot-expectedThen, after the console returns:
rgh modules pendingThat flow persists pending verification in the XeCLI config and confirms the final module state after reboot.
XeCLI includes its Title ID data in the repository and in the published release. It does not fetch title metadata from the internet at runtime.
Primary files:
src/Xbox360.Remote.Cli/Assets/xbox360_gamelist.csvsrc/Xbox360.Remote.Cli/Assets/xbox360_titleids.txt
Optional local extension file:
%APPDATA%\XeCLI\titleids.local.csv
The bundled data is useful beyond the CLI itself. Other tools can reuse it to:
- Resolve Title IDs into readable names.
- Match media-specific variants.
- Label saves, dumps, screenshots, and reports.
- Enrich launchers, dashboards, trainers, and save editors.
Primary config file:
%APPDATA%\XeCLI\config.json
Cache directory:
%LOCALAPPDATA%\XeCLI\cache
The config stores items such as:
- Default XBDM target.
- Default FTP target and credentials.
- Notification icon presets.
- Ghidra path configuration.
- Pending module operations that need post-reboot verification.
The source repository is intended to stay clean:
- Source under
src/ - Docs under
README.mdandwiki/ - No runtime dumps or captures checked into the repo
- No machine-specific paths in release documentation
Release artifacts should be built outside the repository root so publish output, dumps, screenshots, and smoke-test files do not pollute the source tree.
Start here:
wiki/Home.mdwiki/Beginner-Guide.mdwiki/Commands.md
Deep reference:
wiki/Advanced-Guide.mdwiki/Frameworks.mdwiki/Title-ID-Database.mdwiki/Integrations.mdwiki/Troubleshooting.mdwiki/FAQ.md
XeCLI includes both safe operational commands and commands that can destabilize the running title or console session.
Treat these areas with care:
mem pokemem search --freezedebug breakanddebug databreakmodules unload --forcemodules load --systemreboot- content and save deletion commands
If a command is expected to trigger a reboot or disconnect, XeCLI should say so explicitly. Use the pending-verification flow where appropriate instead of assuming the operation completed cleanly.
GPLv3


