Where is TAILSCALE_USE_WIP_CODE?

I downloaded Tailscale from the App Store and I’m on a MacBook Air with Monterey 12.5

The docs say that this installation already comes with the CLI and to enable the computer as an ssh server (not client) to just run tailscale up --ssh.

% tailscale up --ssh
2022/10/09 13:03:34 The Tailscale SSH server is disabled on macOS tailscaled by default. To try, set env TAILSCALE_USE_WIP_CODE=1

Where is that variable located? In a config file for the app? Or as a general environmental variable?

I added export TAILSCALE_USE_WIP_CODE=1 to .zshrc and did source .zshrc and made sure the environmental variable had been set and was working. But the command returns the same output.

  • Is there somewhere in the application I should set this variable?

  • The documentation actually says “This is only supported on Linux devices”. Is that really true?

Would compiling the source code or using the “standalone” version of the download fix this?

SSHing conveniently into my Mac was my reason for using Tailscale so I’d love to know if this feature is supported.

I also quit Tailscale and moved it to the bin, then downloaded the standalone version, dragged it into applications and launched it. It never prompts me to sign in, it just says “VPN loading” indefinitely. I then quit and now I can’t even open it. Did I need to uninstall the App Store version more extensively before installing the standalone version?

Thanks very much

I am using the CLI version of tailscale on macos and also can’t figure out the TAILSCALE_USE_WIP=1 setting. Poking around the go code, it seems to be a shell environment variable but either I am misunderstanding how to use it or there may be some bug in the program logic. Here is a fragment from my shell that appears to show that it is getting properly passed into tailscale but not interpreted correctly.

% TAILSCALE_USE_WIP_CODE=0 tailscale up --ssh
The Tailscale SSH server is disabled on macOS tailscaled by default. To try, set env TAILSCALE_USE_WIP_CODE=1
% TAILSCALE_USE_WIP_CODE=1 tailscale up --ssh
The Tailscale SSH server is disabled on macOS tailscaled by default. To try, set env TAILSCALE_USE_WIP_CODE=1
% TAILSCALE_USE_WIP_CODE=X tailscale up --ssh
2022/10/16 21:14:56 invalid boolean environment variable TAILSCALE_USE_WIP_CODE value “X”

I don’t have a specific solution for your other problem of changing macos application types but I recommend using a program like AppCleaner when removing applications on macos so that associated files located elsewhere are also removed.

Tailscale SSH server doesn’t work in App Store version of the Tailscale App. It also doesn’t work in standalone version of the Tailscale App. Both of those are sandboxed (see here: Three ways to run Tailscale on macOS · Tailscale). The newest version of the app is straightforward about it:

2022/11/20 10:17:15 The Tailscale SSH server does not run in sandboxed Tailscale GUI builds.

The App Store version is lagging behind and doesn’t include this error message yet.

Tailscale does work on Mac OS open source tailscale + tailscaled CLI version, from Tailscaled on macOS · tailscale/tailscale Wiki · GitHub. To get it to work you need to start tailscaled with TAILSCALE_USE_WIP_CODE=1 parameter, e.g.:

sudo TAILSCALE_USE_WIP_CODE=1 tailscaled

Note again that TAILSCALE_USE_WIP_CODE=1 needs to be set for tailscaled (the demon), not the tailscale CLI we are used to interacting with.

Also confused here! Anybody got a solution?

I think there is an issue with the app store version. Try brew install tailscale then locate and start the daemon with sudo TAILSCALE_USE_WIP_CODE=1 /opt/homebrew/opt/tailscale/bin/tailscaled. After starting the daemon in a new terminal window tailscale up -ssh should work.

In my case I wanted to auto start at system boot. So I follow this
$ sudo $HOME/go/bin/tailscaled install-system-daemon.

It is not about env for tailscale or tailscaled but tailscaled run on launchd on Mac. So I just figure out how to add env for launchd from here.

I made this file /Library/LaunchDaemons/tailscale-env.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>tailscale-env</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>
      launchctl setenv TAILSCALE_USE_WIP_CODE 1
    </string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Then I run this to apply changes without restart the machine

sudo launchctl unload /Library/LaunchDaemons/com.tailscale.tailscaled.plist
sudo launchctl load /Library/LaunchDaemons/tailscale-env.plist
sudo launchctl load /Library/LaunchDaemons/com.tailscale.tailscaled.plist
~/go/bin/tailscale up --ssh

The github wiki above should be updated.
Hope it will help others.