Skip to content

Update tailscale extension#27545

Open
McKeev wants to merge 3 commits intoraycast:mainfrom
McKeev:ext/tailscale
Open

Update tailscale extension#27545
McKeev wants to merge 3 commits intoraycast:mainfrom
McKeev:ext/tailscale

Conversation

@McKeev
Copy link
Copy Markdown

@McKeev McKeev commented Apr 30, 2026

Description

Adds a menu bar command that displays a Tailscale connection indicator. When connected, an icon appears in the menu bar. When disconnected, nothing is shown.

Clicking the icon reveals a dropdown with connection details (hostname, IPv4, tailnet name, active exit node) -> each item copies its value to clipboard on click.

The command includes preferences to:

  • Choose the menu bar icon (Tailscale icon light/dark, or 🔗 emoji)
  • Toggle hostname, IP address, and tailnet name display next to the icon
  • Status refreshes every 10 seconds

Screenshots

image image image

Checklist

@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: tailscale Issues related to the tailscale extension platform: macOS labels Apr 30, 2026
@raycastbot
Copy link
Copy Markdown
Collaborator

raycastbot commented Apr 30, 2026

Thank you for your first contribution! 🎉

🔔 @samlinville @rosszurowski @itsmingjie @erics118 @brandenwagner @j3lte @itsmatteomanf @MatteoGauthier you might want to have a look.

You can use this guide to learn how to check out the Pull Request locally in order to test it.

📋 Quick checkout commands
BRANCH="ext/tailscale"
FORK_URL="https://github.com/McKeev/raycast-extensions.git"
EXTENSION_NAME="tailscale"
REPO_NAME="raycast-extensions"

git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

- Add menu bar indicator command
- Add menu bar indicator command
@McKeev McKeev marked this pull request as ready for review April 30, 2026 10:21
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 30, 2026

Greptile Summary

This PR adds a new menubar command to the Tailscale extension that displays a connection indicator in the menu bar when connected, with preferences for the icon style and optional hostname/IP/tailnet labels. The implementation is clean and consistent with the existing extension patterns, with one minor concern around error handling granularity.

Confidence Score: 5/5

Safe to merge; the single finding is a P2 style suggestion about error handling granularity that does not affect core functionality.

All P0/P1 issues from prior review threads (mismatched iconStyle default, manual Preferences interface, phantom refreshInterval field) appear to have been addressed. The only remaining finding is a P2 suggestion to distinguish expected not-connected silences from unexpected errors in the catch block.

extensions/tailscale/src/menubar.tsx — catch block granularity

Important Files Changed

Filename Overview
extensions/tailscale/src/menubar.tsx New menu bar command — logic is straightforward, but the catch-all error handler silently swallows non-connectivity errors (invalid path, daemon not running).
extensions/tailscale/package.json Adds menubar command registration with four well-formed preferences; iconStyle default corrected to "command_icon" matching the dropdown values.
extensions/tailscale/CHANGELOG.md New entry added at the top with the required {PR_MERGE_DATE} placeholder — follows the changelog convention correctly.
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
extensions/tailscale/src/menubar.tsx:74-77
**Overly broad catch silently hides unexpected errors**

The empty `catch {}` returns `null` for every exception — including `InvalidPathError` (bad CLI path), `NotRunningError` (Tailscale daemon not running), and any JS runtime error. Only a `NotConnectedError` should produce a silent hide; other states leave the user with no indication of what went wrong. Consider distinguishing the cases:

```suggestion
  } catch (err) {
    if (err instanceof NotConnectedError) {
      return null;
    }
    // Surface other errors (not running, invalid path, etc.) via an error icon
    return <MenuBarExtra icon={{ source: "command-icon.png" }} tooltip={String(err)} />;
  }
```

Reviews (2): Last reviewed commit: "Adress Greptile feedback" | Re-trigger Greptile

Comment thread extensions/tailscale/package.json
Comment thread extensions/tailscale/src/menubar.tsx Outdated
Comment thread extensions/tailscale/src/menubar.tsx Outdated
@0xdhrv 0xdhrv self-assigned this Apr 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extension fix / improvement Label for PRs with extension's fix improvements extension: tailscale Issues related to the tailscale extension platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants