nfrastack/dms-zerotierManager

May 21, 2026 · View on GitHub

About

ZeroTier Manager is a DankMaterialShell (DMS) bar widget that shows ZeroTier network status and provides quick actions to join, leave, and toggle default-route routing for networks from a compact popout.

Features

  • Bar pill summarizing overall state (no networks / joined / routing)
  • Popout listing joined and known networks with per-network actions: Join, Leave, Enable/Disable default route, Enable/Disable DNS
  • Auto-add networks you join externally to a managed known-networks file
  • Support for a read-only extra networks file and inline configured networks
  • Non-blocking background polling; actions run via configurable zerotier-cli invocation (optionally with sudo)

Maintainer

Table of Contents

Screenshots

  • Overview Overview

  • Settings Settings

Requirements

  • This plugin requires DMS >= 0.3.0
  • zerotier-one (daemon) running on the host
  • zerotier-cli and access to any required auth tokens or port files
  • ip command (used to detect default-route state)
  • Optinal sudo for zerotier-cli if you enable the "Run with sudo" setting

Example sudoers line

%zerotier ALL=(root) NOPASSWD: /usr/sbin/zerotier-cli

Installation

Install the plugin into your DMS plugins directory and reload DMS:

mkdir -p ~/.config/DankMaterialShell/plugins/
git clone github.com/nfrastack/zerotierManager ~/.config/DankMaterialShell/plugins/zerotierManager

Configuration

Open the plugin settings in DMS (Settings → Plugins → ZeroTier Manager) or edit plugin_settings.json for these keys:

KeyTypeDescriptionDefault
zerotierBinarystringBinary name or absolute path.zerotier-cli
useSudoboolPrepend sudo -n to calls.true
refreshIntervalinteger (seconds)Poll cadence for status.5
knownNetworksFilestringManaged file the plugin writes to.~/.config/zerotier/known-zt-networks
extraNetworksFilestringRead-only file merged into the list (plugin does not write).""
autoAddboolAutomatically append externally-joined networks to the known file.true
configuredNetworksarrayList of { nwid, name } entries stored inline and shown as OFF until joined.[]

Known/external networks file format:

# Each non-comment line: <network-id> <display name> <system>
# lines beginning with # are ignored
24b2f1a2c3d4e5f0 My-ZT-Network

Add manually "system" as the third argument to always connect

Usage

  • Bar pill states:

    • Daemon unreachable / no networks: dim pill, shield/lock icon
    • 1 network joined: tinted pill, verified_user/key icon with count badge

    • Default-route active: accent pill, router icon
  • Tooltip shows joined network names or ROUTING: <name> via <gateway> when default-route is active.

  • Popout behavior:

    • Joined networks are shown first known-but-not-joined appear below.
    • Actions per row:
      • Joined: Leave, Enable default / Disable default, Enable DNS / Disable DNS
      • Not joined: Join, Join + route

Actions are executed via the configured zerotier-cli invocation. When useSudo is enabled, commands are prefixed with sudo -n.

Permissions

The plugin requests these permissions:

  • settings_read — read plugin configurations
  • settings_write — save plugin configurations
  • process — run the helper commands to query and manage ZeroTier

Support & Maintenance

  • For community help, tips, and community discussions, visit the Discussions board.
  • For personalized support or a support agreement, see Nfrastack Support.
  • To report bugs, submit a Bug Report. Usage questions may be closed as not-a-bug.
  • Feature requests are welcome, but not guaranteed. For prioritized development, consider a support agreement.
  • Updates are best-effort, with priority given to active production use and support agreements.

License

MIT. See the project LICENSE for details.