Skip to main content
New

Workspace Listener for Linux & macOS 🐧

Related products:Software Factory
  • January 27, 2026
  • 3 replies
  • 71 views

Marius Korff
Captain
Forum|alt.badge.img+7

At the moment, there are no plans to create a Workspace Listener for Linux (source).
It would be great to not be limited to Windows and have support for automatic opening of your IDE on Linux.
 

Context:

Automatic opening of local code files  

For additional convenience, Windows users can install the new Thinkwise Workspace Listener. This tool automatically opens the selected code file in your preferred IDE when clicking on the pencil icon. 

The Workspace Listener is optional. Without it, you can still edit and synchronize code locally (provided you use a browser that supports the Filesystem API), but you will need to manually open the files in your IDE. 

 

Browsers with File System Access API 

Chrome & Edge 

Browsers without File System Access API 

Safari & Firefox 

Windows 

✅ Automatic syncs 

✅ Automatic opening (using the Workspace Listener) 

❌ No automatic sync 

❌ No automatic opening 

 

Local code editing requires manual copy/paste 

MacOS 

✅ Automatic sync 

❌ No automatic opening 

Linux 

✅ Automatic sync 

❌ No automatic opening 

3 replies

Forum|alt.badge.img
  • Apprentice
  • February 12, 2026

Depending on demand, because macOS  is BSD Unix under the hood, I hope creating a Workspace listener also for macOS will be possible, Do we need a separate idea for this to check demand?


Arie V
Community Manager
Forum|alt.badge.img+12
  • Community Manager
  • February 12, 2026

Depending on demand, because macOS  is BSD Unix under the hood, I hope creating a Workspace listener also for macOS will be possible, Do we need a separate idea for this to check demand?

No, if votes keep on coming in we’ll make sure to cover both macOS and Linux!

Edit: have updated the title accordingly.


Freddy
Forum|alt.badge.img+16
  • Thinkwise Local Partner Brasil
  • February 14, 2026

@Marius Korff as a MacOS user, I made a - no guarentee - little listener that monitors the choosen directory and opens in my case VS Code. 

First install a directory watcher: brew install fswatch

Next create a little script: /usr/local/bin/TwFileWatcher.sh 

#!/usr/bin/env bash
set -euo pipefail

# ---- config ----
root="/Users/<UserName>/<API Folder>"
cooldown_seconds=2

# Validate tool locations
if [[ -x "/usr/local/bin/brew" ]]; then
brew_bin="/usr/local/bin/brew"
fswatch_bin="/usr/local/bin/fswatch"
else
echo "brew not found at /usr/local/bin/brew"
exit 1
fi

# prefer vscode cli if present; fallback to open -a
if [[ -x "/usr/local/bin/code" ]]; then
code_bin="/usr/local/bin/code"
else
code_bin=""
fi

# last-open time per file
state="${TMPDIR:-/tmp}/tw_last_opened.tsv"
touch "$state"

should_open() {
local path="$1"
local now last

now=$(date +%s)
last=$(awk -v p="$path" '$1==p{print $2}' "$state" | tail -n 1)
last=${last:-0}

# cooldown prevents reopen when you save in vscode
if (( now - last < cooldown_seconds )); then
return 1
fi

return 0
}

mark_opened() {
local path="$1"
local now
now=$(date +%s)
printf "%s\t%s\n" "$path" "$now" >> "$state"
}

"$brew_bin" list fswatch >/dev/null 2>&1 || { echo "install fswatch: brew install fswatch"; exit 1; }
[[ -x "$fswatch_bin" ]] || { echo "fswatch not found at $fswatch_bin"; exit 1; }

"$fswatch_bin" -0 -r \
--event Updated \
--event Created \
--exclude '.*' \
--include '.*\.sql$' \
"$root" | while IFS= read -r -d '' path; do

[[ -f "$path" ]] || continue
sleep 0.2

if should_open "$path"; then
if [[ -n "$code_bin" ]]; then
"$code_bin" -g "${path}:1:1" >/dev/null 2>&1 &
else
open -a "Visual Studio Code" "$path" >/dev/null 2>&1 &
fi
mark_opened "$path"
fi
done

Next (afer testing ofcourse) add a laucher: 

/Users/<UserName>/Library/LaunchAgents/com.lef.twfilewatcher.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>com.lef.twfilewatcher</string>

<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/TwFileWatcher.sh</string>
</array>

<key>RunAtLoad</key>
<true/>

<key>KeepAlive</key>
<true/>

<key>StandardOutPath</key>
<string>/tmp/twfilewatcher.out</string>

<key>StandardErrorPath</key>
<string>/tmp/twfilewatcher.err</string>
</dict>
</plist>

Load it: launchctl load -w /Users/<UserName>/Library/LaunchAgents/com.lef.twfilewatcher.plist

For me this opens all .sql files added or updated in the API folder of choice to be opened in VS code. 

Hope this helps :) 

That said, I hope there will come an official one some day.