A beginner-friendly application for switching between currently installed reMarkable OS versions with an interactive interface.
Supports reMarkable 1, 2, Paper Pro, and Paper Pro Move.
Tested up to OS version 3.24.
- TUI interface - Clean, boxed layout with color-coded partitions
- Interactive version switching - Select which version to boot next with arrow keys
- Real-time status display - Shows current active partition and next boot selection
- Smart partition mapping - Consistent A/B labeling (A=p2, B=p3)
- Integrated reboot option - Choose to reboot immediately or defer to next restart
rm-version-switcher.mp4
Caution
Piping code from the internet directly into bash can be dangerous. Make sure you trust the source and know what it will do to your system.
The easiest way to install is using the installation script that automatically detects your device architecture:
wget -O - https://raw.githubusercontent.com/rmitchellscott/rm-version-switcher/main/install.sh | bashThis will:
- Detect your device architecture (reMarkable 1/2 or Paper Pro)
- Download the correct binary for your device
- Extract and make it executable as
rm-version-switcher
wget https://github.com/rmitchellscott/rm-version-switcher/releases/latest/download/rm-version-switcher-armv7.tar.gz
tar -xzf rm-version-switcher-armv7.tar.gz
mv rm-version-switcher-armv7 rm-version-switcher
chmod +x rm-version-switcherwget https://github.com/rmitchellscott/rm-version-switcher/releases/latest/download/rm-version-switcher-aarch64.tar.gz
tar -xzf rm-version-switcher-aarch64.tar.gz
mv rm-version-switcher-aarch64 rm-version-switcher
chmod +x rm-version-switcherAlternatively, copy the binary directly to your reMarkable device:
# Copy to reMarkable (replace with your device IP)
scp rm-version-switcher [email protected]:~/./rm-version-switcherShows the overview, allows you to change the next boot partition, and optionally reboot immediately.
./rm-version-switcher --show-onlyDisplay current partition status without any interactive options.
- Go 1.21 or later
go mod tidyGOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0 go build -o rm-version-switcher-armv7 .GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o rm-version-switcher-aarch64 .# Current platform (for testing with --dry-run)
go build -o rm-version-switcher .┌──────────────────────────────────────────────────┐
│ reMarkable OS Version Switcher │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ Partition A: 3.20.0.92 [NEXT BOOT] │
│ Partition B: 3.18.2.3 [ACTIVE] │
└──────────────────────────────────────────────────┘
- Green: Active partition version numbers and [NEXT BOOT] when on active partition
- Blue: Fallback partition version numbers
- Yellow: [NEXT BOOT] when on fallback partition
- [ACTIVE]: Currently running partition
- [NEXT BOOT]: Partition that will boot after next reboot
The application follows the same proven logic as the reference switch.sh:
- Detects current state using
rootdevandfw_printenv - Reads version information from
/usr/share/remarkable/update.conf - Updates boot environment using
fw_setenvcommands:upgrade_available=1bootcount=0fallback_partition={old_partition}active_partition={new_partition}
- charmbracelet/huh - TUI forms and interactions
- charmbracelet/lipgloss - Terminal styling