Skip to content

Repository files navigation

Voyager

Voyager

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

Overview

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.

Why Voyager

  • 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.

Installation

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

Connecting to a node

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.server

For 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 start

Recent 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.

MCP server

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.

Feedback and contributing

Voyager is in active development and feedback shapes what gets built next.

  • Questions, ideas, or first impressions? Head to DiscussionsQ&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 precommit before pushing, and describe what you changed and why.

Development

Required Elixir, Erlang, Node.js, and Rust versions are pinned in .tool-versions.

Install dependencies and set up the database:

mix setup

Run the web app on its own:

mix phx.server
# or
iex -S mix phx.server

Then visit localhost:4000.

Run the desktop application in development:

mix tauri.dev

To check the production desktop app locally:

mix assets.deploy
mix tauri.app

Before opening a pull request, run:

mix precommit

License

Voyager'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.

Authors

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.

Software Mansion

Copyright 2026, Software Mansion

About

Observe, debug, and understand running BEAM systems

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages