Observe, debug, and understand running BEAM systems
A desktop app that connects to any BEAM node and shows you what is actually going on inside it
Website · Download · Give feedback · License
Voyager.ver1.1.mp4
Voyager is a desktop app that inspects running BEAM systems — supervision trees, processes, memory and IO usage, running applications, and more — through one interface instead of a patchwork of shell commands copy-pasted into iex. It connects to any node, local or remote, over plain Erlang distribution and surfaces the information the BEAM already exposes, in a form that is actually pleasant to read.
Nothing is installed on the target node. Voyager gathers everything through Erlang's built-in introspection functions over RPC, and all rendering and storage happens on your machine — the node you are inspecting is only ever asked for information.
- Nothing to install on the target — no dependency in your app, no hook in your release. If the node is distributed, Voyager can attach to it.
- The whole BEAM, not one framework — Erlang, Elixir, Gleam. Voyager speaks the distribution protocol, not framework internals.
- Production without a remote shell — connect over SSH and inspect a deployed node directly, instead of opening a shell and piecing the picture together by hand.
- First-class AI support — the same data is exposed over MCP, so a coding agent can read a live system instead of guessing from source code.
- Built to be read — a graphical, navigable view of process hierarchies and runtime numbers, which also makes it a good way to learn how OTP actually behaves.
Download the latest build for your platform from the website. Voyager currently ships for:
- macOS (Apple Silicon)
- macOS (Intel)
- Linux (x64) — distributed as an AppImage, see docs/linux_appimage_guide.md for how to run and install it
Voyager needs to reach the target node over Erlang distribution and needs its cookie.
- Local / remote node — provide the node name (
myapp@host) and the cookie. Voyager starts distribution on demand and connects. - Over SSH — provide SSH credentials to a host that can reach the node. Voyager tunnels the distribution connection through it, which is the usual path to a production node behind a bastion.
The target node must have distribution enabled — a node started without a name is not distributed and cannot be connected to at all. Give it a name and a cookie at boot, and make sure the name type matches the toggle next to the node name field:
# long names — use the `--name` toggle in Voyager
iex --name my_app@127.0.0.1 --cookie my-secret-cookie -S mix phx.serverFor a Mix release, set the equivalent environment variables instead:
RELEASE_DISTRIBUTION=name RELEASE_NODE=my_app@10.0.0.5 RELEASE_COOKIE=my-secret-cookie bin/my_app startRecent connections are saved in a local SQLite database; secrets are encrypted before being written. The encryption key never leaves your machine — it is generated on first boot at ~/.voyager/vault.key (readable only by you), so losing that file makes previously stored secrets unrecoverable.
Distribution settings (node name, cookie handling) are configurable under Settings → Distribution.
Voyager can expose the connected node to MCP clients such as Claude Code or Cursor, so an agent can inspect a live system instead of guessing from source code.
Enable it under Settings → MCP and pick a port. Point your MCP client at the resulting HTTP endpoint. The tool operates on whichever node Voyager is currently connected to.
Voyager is in active development and feedback shapes what gets built next.
- Questions, ideas, or first impressions? Head to Discussions — Q&A for help, Ideas for feature proposals, General for everything else.
- Found a reproducible bug or want to file a concrete request? Open an issue — there are templates for bug reports, feature requests, and general feedback.
- Pull requests are welcome. Fork the repo, run
mix precommitbefore pushing, and describe what you changed and why.
Required Elixir, Erlang, Node.js, and Rust versions are pinned in .tool-versions.
Install dependencies and set up the database:
mix setupRun the web app on its own:
mix phx.server
# or
iex -S mix phx.serverThen visit localhost:4000.
Run the desktop application in development:
mix tauri.devTo check the production desktop app locally:
mix assets.deploy
mix tauri.appBefore opening a pull request, run:
mix precommitVoyager's source code is publicly available, but it is not open source under the OSI definition. Use is governed by the Voyager User License:
- Free License — free for individuals, for-profit organizations with up to 10 employees, and non-profits, including commercial use.
- Company License — required for larger for-profit organizations using Voyager commercially. Includes prioritized support.
Either tier lets you observe, debug, and understand running systems, and modify the code for internal use or to contribute back. Reselling Voyager or offering it as a hosted "as-a-Service" product is not permitted.
There is a 90-day free evaluation period, and a 90-day grace period if you grow past the size threshold while using Voyager.
See LICENSE.md for the exact terms and a detailed FAQ, and website for pricing and to purchase a Company License.
Voyager is created by Software Mansion
Since 2012 Software Mansion is a software agency with experience in building web and mobile apps as well as complex multimedia solutions. We are Core React Native Contributors, Elixir ecosystem experts, and live streaming and broadcasting technologies specialists. We can help you build your next dream product – Hire us.
Copyright 2026, Software Mansion