As of the date of this post, GNS3 doesn’t offer a native GNS3 client for macOS with Apple Silicon - so let’s remedy that. This post is technically a companion to GNS3 on Apple Silicon , but this GNS3 client will also work with other remote GNS3 server types.

Prerequisites

Steps

  1. Open your favorite terminal emulator.

We will be working from the command line for the majority of the following steps.

  1. Change to the Downloads directory.
cd ~/Downloads
  1. Clone the gns3-gui-apple-silicon repo from GitHub.
git clone https://github.com/mweisel/gns3-gui-apple-silicon.git
  1. Change to the gns3-gui-apple-silicon directory.
cd gns3-gui-apple-silicon
  1. Get your GNS3 server version.

If using GNS3 on Apple Silicon , run the following command:

curl -s http://gns3.orb.local:3080/v2/version

output:

{
    "local": false,
    "version": "2.2.46"
}
  1. Clone the gns3-gui repo from GitHub.

My GNS3 version is 2.2.46, so I run the following command:

git clone --depth 1 --branch v2.2.46 https://github.com/GNS3/gns3-gui.git src
  1. Display the version placeholder value in the gns3.spec file.
grep version gns3.spec

output:

    version='VER',
  1. Replace the version placeholder value.

Again, my version is 2.2.46, so I run the following command:

sed -i '' -e 's/VER/2.2.46/' gns3.spec
  1. Verify the change for the version value.
grep version gns3.spec

output:

    version='2.2.46',
  1. Create a Python virtual environment.
source init_venv.sh
  1. Verify PyInstaller is available.
pyinstaller --version
  1. Build the GNS3.app.
sh build_gns3_app.sh
  1. Deactivate the Python virtual environment.
deactivate
  1. Move the GNS3.app from the dist folder to the Applications folder.
Move GNS3.app
  1. Bring your own Telnet (BYOT).

The telnet binary is not included in the GNS3 application bundle. Use Alacritty with GNS3 on macOS for guidance.

  1. Verify the goods.
file -b /Applications/GNS3.app/Contents/MacOS/gns3

output:

Mach-O 64-bit executable arm64
GNS3.app Info