CLI to migrate one matrix account to a new one. Similar to the EMS migrator but:
- is a nice little CLI tool, based on
matrix-rust-sdk - allows for restarts (refreshes at the beginning)
- it runs the operations async and is thus a lot faster
- SSO authentication is supported
Note: It currently only migrates the rooms listing and power_levels, no user settings or profile data.
You need a recent [Rust] installation. Then you can either clone the repository
and use cargo run or use cargo-install:
cargo install --git https://github.com/acterglobal/matrix-migrate
and then can run it by just doing
matrix-migrate
Password authentication requires both the user and password for the user from
and to either as command line parameters, or preferably as environment
variables (FROM_USER=, FROM_PASSWORD).
If no from and/or to password is provided, it will try to log in with the
server's SSO flow. The SSO URL is printed directly to the terminal so it stays
visible even with stricter log levels.
It uses matrix discovery but if that doesn't work for you, you can provide custom homeservers, too.
It starts with a reduced sync that fetches room state needed for migration, which avoids downloading timeline data and works better against stricter servers.
Optional timeout (in seconds) can be added; if omitted, the sync timeout
defaults to 10 seconds.
Unreleased
- Add support for matching up
power_levels, needs latest matrix-rust-sdk-git