Install on Linux
There are two ways to run the agent on Linux: as a system service that starts with the machine, or as a plain process you start yourself. The same archive covers both.
Pick your archive
| Archive | For |
|---|---|
filemote-<version>-linux-x64.tar.gz | Ordinary PCs and servers |
filemote-<version>-linux-arm64.tar.gz | Raspberry Pi 4/5, AWS Graviton, Oracle Ampere |
Both unpack to a single folder containing FilemoteAgent, FilemoteCli, install.sh,
apply-update.sh, an empty app_settings.json and the AiService directory.
The archives are packed on Windows, which carries no Unix executable bit, so chmod +x is
always the first step. The binaries themselves are self-contained, so the agent needs no
.NET installation — the install script provisions .NET anyway because it sets up a
complete environment, AI included.
Install as a service (needs root)
tar xzf filemote-<version>-linux-x64.tar.gz
cd filemote-<version>-linux-x64
chmod +x install.sh
sudo ./install.sh
The script:
- detects your package manager (apt, dnf, yum, zypper or pacman) and warns rather than aborting if it recognises none;
- installs the .NET 8 runtime, adding Microsoft's package feed on Debian and Ubuntu, and
falling back to Microsoft's
dotnet-install.shif the package route fails; - installs a current Python if nothing newer than 3.10 is present — 3.12 explicitly on apt, dnf and zypper, whatever the distro calls current on yum and pacman — and if that fails too, it disables the AI service and carries on rather than giving up on the whole install;
- copies the agent to
/opt/filemote, along with the AI service and the update helper; - creates the
filemote-agentsystemd unit.
The unit runs as your user, not root, restarts on failure after five seconds, is capped at 8 GB of memory and 80% CPU, and logs to journald.
The unit is enabled but not started. Enabled means it comes up after a reboot; a fresh
install sits at inactive (dead) until you start it, which you do after configuring it in
the next step.
Configure the copy the service actually reads
This is where most first installs go wrong. FilemoteCli is not copied into
/opt/filemote, and by default it writes app_settings.json beside its own binary. Run
it straight from the extracted archive and you will configure a file the service never
reads — with no error anywhere, because from the service's point of view it simply has no
credentials yet.
Point it at the service's own file:
sudo ./FilemoteCli --config /opt/filemote/app_settings.json
Choose [2] Pair with a code, paste the code from the website, then [7] Save and exit — the full walk-through is in link a device to your account. Then start the service:
sudo systemctl start filemote-agent
sudo systemctl status filemote-agent
Install without root
On a shared host or in a container, skip the script entirely:
tar xzf filemote-<version>-linux-x64.tar.gz
cd filemote-<version>-linux-x64
chmod +x FilemoteCli FilemoteAgent
./FilemoteCli # configure and pair
./FilemoteAgent # run it
Nothing starts after a reboot and the AI dependencies are not provisioned, but file access
works exactly the same. Run the agent under tmux, screen or a user-level systemd unit
if you want it to outlive your session.
Script flags
| Flag | Effect |
|---|---|
--no-ai | Skip the AI service entirely — no Python, no dependencies |
--no-autostart | Install the files but create no systemd unit |
--prefix /path | Install somewhere other than /opt/filemote |
--model <id> | Preselect the main AI model |
--device cpu|gpu|auto | AI compute device |
--gpu | Build the AI engine with GPU support |
--hf-token <token> | Hugging Face token, for gated models |
The model, device and token flags are merged into app_settings.json without disturbing
settings already there, so re-running the script does not undo your configuration. An
unrecognised flag is warned about and ignored.
AI on Linux
Without --gpu the AI engine installs as a prebuilt CPU package. With --gpu it is
compiled from source — with CUDA if nvidia-smi is present, otherwise Vulkan — which
means a compiler and CMake get installed first and the step takes several minutes.
On a Raspberry Pi with less than 8 GB of RAM, install with --no-ai.
Logs and service commands
sudo systemctl start filemote-agent # start now
sudo systemctl status filemote-agent # is it running?
sudo journalctl -u filemote-agent -f # follow the log
If the device never appears online, work through the device shows as offline.
Upgrading from a pre-rebrand install
If the machine still has the old rfm-agent service, the script stops it, disables it and
removes its unit — two agents competing for the same account helps nobody — and moves your
settings and downloaded AI models from /opt/rfm into the new prefix. The old directory is
left behind for you to delete once you are satisfied.
Updated 2026-07-31