Skip to content

Install the CLI

Two programs are released together and they run on two different machines:

  • mikroscope, the CLI and collector, runs on your computer — the laptop or server you type commands on. This page is about that one.
  • mikroscope-agent runs on the router, inside a container. mikroscope install puts it there for you; you never run it yourself, and the only time you download it by hand is the --agent-tar route.

So the archive you want here is picked by your operating system and CPU, not by the router’s. The router’s architecture decides something else, and Requirements has that table.

Terminal window
curl -fsSL https://raw.githubusercontent.com/jmrplens/mikroscope/main/install.sh | bash

or, in PowerShell on Windows:

Terminal window
irm https://raw.githubusercontent.com/jmrplens/mikroscope/main/install.ps1 | iex

Either script, install.sh or install.ps1, does by itself everything the rest of this page does by hand: work out your platform, resolve the newest version, download that archive and the release’s checksums.txt, and refuse to install anything whose SHA-256 is not the one the release published. There is no flag to skip that check. A script piped into a shell is the least inspectable way to install anything, so the one thing it must not do is trust what it just downloaded. Where cosign is already on the machine it also verifies that checksums.txt came from the release workflow; where it is not, the checksum is still enforced.

It installs into /usr/local/bin when that is writable and ~/.local/bin otherwise, and if the directory is not on your PATH it prints the line to add and the file to add it to. It will not reach for sudo on its own: a script read off the network should not be the thing that decides to become root.

Two arguments, which are also the VERSION and BIN_DIR variables so they can be set through a pipe:

Terminal window
curl -fsSL .../install.sh | VERSION=1.6.1 BIN_DIR=~/bin bash
./install.sh --version 1.6.1 --dir ~/bin # the same, with the file downloaded first

The rest of this page is what those scripts do, one platform at a time, for anyone who would rather read the archive’s checksum themselves — or who is on a machine where curl | bash is not something to type.

Your machine Download
Linux, ordinary PC or server mikroscope_<version>_linux_x86_64.tar.gz
Linux on ARM (Raspberry Pi 4/5, …) mikroscope_<version>_linux_arm64.tar.gz
macOS, Apple silicon (M1 and later) mikroscope_<version>_darwin_arm64.tar.gz
macOS, Intel mikroscope_<version>_darwin_x86_64.tar.gz
Windows mikroscope_<version>_windows_x86_64.zip

They are on the latest release. Anything whose name starts with mikroscope-agent is the other program.

  1. Download the archive and the checksums:

    Terminal window
    VERSION=1.6.1
    curl -fsSLO https://github.com/jmrplens/mikroscope/releases/download/v$VERSION/mikroscope_${VERSION}_linux_x86_64.tar.gz
    curl -fsSLO https://github.com/jmrplens/mikroscope/releases/download/v$VERSION/checksums.txt
  2. Check it against the list before unpacking it:

    Terminal window
    sha256sum --ignore-missing -c checksums.txt
  3. Unpack and put it where the shell looks:

    Terminal window
    tar xzf mikroscope_${VERSION}_linux_x86_64.tar.gz mikroscope
    sudo install -m 0755 mikroscope /usr/local/bin/mikroscope

    Without sudo, mkdir -p ~/.local/bin && install -m 0755 mikroscope ~/.local/bin/ works as well, as long as ~/.local/bin is on your PATH.

Terminal window
mikroscope version

It prints the version, the commit and the build date:

mikroscope 1.6.1 (commit <commit>, built <time>)

Then, with a router to point at:

Terminal window
mikroscope doctor --router admin@192.168.88.1

doctor writes nothing. It reads the device, prints what it is, and marks each prerequisite ok or MISSING, and an advisory check that finds something WARN, with the command that fixes it — including the one nobody can do remotely — then reports what an agent already running shows (Health checks). Run it first, before any install method.