Skip to main content

Manage multiple NetBird instances with isolated configs, sockets, and interfaces

Project description

twinbird

Manage multiple NetBird instances on a single machine with isolated configs, daemon sockets, and WireGuard interfaces.

Install

uv tool install twinbird

or

pip install twinbird

Usage

# Start a named instance
twinbird up office --management-url https://mgmt.example.com --setup-key YOUR_KEY

# Check status
twinbird status office

# List all instances
twinbird list

# Stop an instance
twinbird down office

Environment Variables

Instead of passing flags every time:

export TWINBIRD_MANAGEMENT_URL=https://mgmt.example.com
export TWINBIRD_SETUP_KEY=YOUR_KEY
twinbird up office
Variable Purpose
TWINBIRD_MANAGEMENT_URL Default management URL
TWINBIRD_SETUP_KEY Default setup key
TWINBIRD_NETBIRD_BIN Path to netbird binary (default: netbird on PATH)
TWINBIRD_CONFIG_DIR Override root config directory

How It Works

Each named instance gets:

  • Its own config directory (~/.config/twinbird/<name>/ on Linux, %APPDATA%/twinbird/<name>/ on Windows)
  • A unique daemon socket address (Unix socket on Linux/macOS, TCP port on Windows)
  • A unique WireGuard interface name (wt<N> on Linux, utun<N> on macOS)

Twinbird starts a separate netbird service run daemon per instance, then connects with netbird up — all fully isolated from the primary NetBird installation.

Requirements

  • NetBird installed and on PATH
  • Python 3.10+

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

twinbird-0.1.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

twinbird-0.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file twinbird-0.1.0.tar.gz.

File metadata

  • Download URL: twinbird-0.1.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for twinbird-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9df70dce138d9c479829d6156da3c744eb06bc582746392e140d902c95406d9f
MD5 07588747dd7a6990ae023727caf46a51
BLAKE2b-256 7741fab2010a0216ff8cca11f52b67f2b6855a3f797d2f832aa7a72511bfde22

See more details on using hashes here.

Provenance

The following attestation bundles were made for twinbird-0.1.0.tar.gz:

Publisher: release.yml on OseSem/twinbird

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file twinbird-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: twinbird-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for twinbird-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 65ee82f8fb3efdcb1ad5ba3719782af4411e5bf373533adde3d2858c5f1b03dc
MD5 56d67a732f6b273365f43972f45236da
BLAKE2b-256 87ed686b70025e442fa774169473f8b168a3c44df491a39fce8f801bf4f48d3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for twinbird-0.1.0-py3-none-any.whl:

Publisher: release.yml on OseSem/twinbird

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page