Server-side daemon for the
meshTerm iOS app —
persistent terminal sessions over QUIC, plus the mtroam CLI.
Signed apt + dnf +
apk repos for
amd64/x86_64, arm64/aarch64
(armhf on apt; apk is
x86_64-only for now), plus a Nix flake and
AUR packages (mtroamd / mtroamd-bin).
Production channel — tracks the App Store app's pinned daemon version.
curl -fsSL https://ag-studio-apps.github.io/mtroamd/mtroamd-archive-keyring.gpg \ | sudo tee /usr/share/keyrings/mtroamd-archive-keyring.gpg > /dev/null echo "deb [signed-by=/usr/share/keyrings/mtroamd-archive-keyring.gpg] https://ag-studio-apps.github.io/mtroamd stable main" \ | sudo tee /etc/apt/sources.list.d/mtroamd.list sudo apt update && sudo apt install mtroamd
That's it — the package enables + starts the daemon for your login user and turns on linger, so it survives logout + reboot (check with mtroamd doctor). Installed as root / non-interactively? Finish as your login user: sudo loginctl enable-linger "$USER" && systemctl --user enable --now mtroamd
-rc) builds for testing; pairs with TestFlight, not the App Store app.curl -fsSL https://ag-studio-apps.github.io/mtroamd/mtroamd-archive-keyring.gpg \ | sudo tee /usr/share/keyrings/mtroamd-archive-keyring.gpg > /dev/null echo "deb [signed-by=/usr/share/keyrings/mtroamd-archive-keyring.gpg] https://ag-studio-apps.github.io/mtroamd dev main" \ | sudo tee /etc/apt/sources.list.d/mtroamd-dev.list sudo apt update && sudo apt install mtroamd
That's it — the package enables + starts the daemon for your login user and turns on linger, so it survives logout + reboot (check with mtroamd doctor). Installed as root / non-interactively? Finish as your login user: sudo loginctl enable-linger "$USER" && systemctl --user enable --now mtroamd
Production channel — tracks the App Store app's pinned daemon version.
sudo tee /etc/yum.repos.d/mtroamd.repo <<'EOF' [mtroamd] name=mtroamd baseurl=https://ag-studio-apps.github.io/mtroamd/rpm/stable/$basearch enabled=1 gpgcheck=1 gpgkey=https://ag-studio-apps.github.io/mtroamd/mtroamd-archive-keyring.asc EOF sudo dnf install mtroamd
That's it — the package enables + starts the daemon for your login user and turns on linger, so it survives logout + reboot (check with mtroamd doctor). Installed as root / non-interactively? Finish as your login user: sudo loginctl enable-linger "$USER" && systemctl --user enable --now mtroamd
sudo tee /etc/yum.repos.d/mtroamd-dev.repo <<'EOF' [mtroamd-dev] name=mtroamd (development — unstable) baseurl=https://ag-studio-apps.github.io/mtroamd/rpm/dev/$basearch enabled=1 gpgcheck=1 gpgkey=https://ag-studio-apps.github.io/mtroamd/mtroamd-archive-keyring.asc EOF sudo dnf install mtroamd
That's it — the package enables + starts the daemon for your login user and turns on linger, so it survives logout + reboot (check with mtroamd doctor). Installed as root / non-interactively? Finish as your login user: sudo loginctl enable-linger "$USER" && systemctl --user enable --now mtroamd
Production channel — tracks the App Store app's pinned daemon version. aarch64 / armv7 coming soon.
Alpine has no systemd, so mtroamd runs as an OpenRC service under MTROAMD_USER — set it in /etc/conf.d/mtroamd (the daemon spawns your shells as that user). Run as root.
wget -qO /etc/apk/keys/mtroamd-apk.rsa.pub \ https://ag-studio-apps.github.io/mtroamd/mtroamd-apk.rsa.pub echo "https://ag-studio-apps.github.io/mtroamd/apk/stable" >> /etc/apk/repositories apk update && apk add mtroamd rc-update add mtroamd && rc-service mtroamd start
wget -qO /etc/apk/keys/mtroamd-apk.rsa.pub \ https://ag-studio-apps.github.io/mtroamd/mtroamd-apk.rsa.pub echo "https://ag-studio-apps.github.io/mtroamd/apk/dev" >> /etc/apk/repositories apk update && apk add mtroamd rc-update add mtroamd && rc-service mtroamd start
Production channel — the flake on the default branch tracks the App Store
app's pinned daemon version. Try it:
nix run github:AG-Studio-Apps/mtroamd -- version
# flake.nix
inputs.mtroamd.url = "github:AG-Studio-Apps/mtroamd";
# NixOS — declarative systemd --user service + linger:
# imports = [ mtroamd.nixosModules.default ];
# services.mtroamd = { enable = true; users = [ "you" ]; };
# home-manager (set users.<you>.linger = true at the system level):
# imports = [ mtroamd.homeManagerModules.default ];
# services.mtroamd.enable = true;develop branch; pairs with TestFlight.Try it: nix run github:AG-Studio-Apps/mtroamd/develop -- version
# flake.nix — same modules as stable, just pin the develop branch: inputs.mtroamd.url = "github:AG-Studio-Apps/mtroamd/develop";
Two AUR packages, pick one:
mtroamd-bin
(pre-built release binaries, fast) or
mtroamd
(build from source, needs go + pandoc).
They provides=/conflicts= each other.
# with an AUR helper: yay -S mtroamd-bin # or: paru -S mtroamd-bin # or by hand: git clone https://aur.archlinux.org/mtroamd-bin.git cd mtroamd-bin && makepkg -si
Then enable for your login user: sudo loginctl enable-linger "$USER" && systemctl --user enable --now mtroamd (check with mtroamd doctor).
sudo apt remove mtroamd # stops + removes the daemon, keeps your sessions + cert sudo apt purge mtroamd # also wipes ~/.local/share/mtroamd (full clean removal)
sudo dnf remove mtroamd # stops + removes the daemon, keeps your sessions + cert
rc-service mtroamd stop && rc-update del mtroamd apk del mtroamd # state in ~/.local/share/mtroamd is kept
Declarative — remove services.mtroamd (or the module import) from your config and rebuild. For an ad-hoc profile install: nix profile remove mtroamd.
systemctl --user disable --now mtroamd sudo pacman -R mtroamd-bin # or mtroamd; state in ~/.local/share/mtroamd is kept