Compare commits

..
3 Commits
8 changed files with 200 additions and 1 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1
PWD=/Users/MWsatwareAG/internal/mw-macbook-pro
OLDPWD=/Users/MWsatwareAG/internal/mw-macbook-pro/imsg
ELEVENLABS_API_KEY=sk_9f585645834280f5329344c9a1f3a7eadef230e86a0a0675
ELEVENLABS_API_KEY=your_api_key_here
HOMEBREW_CELLAR=/usr/local/Cellar
INFOPATH=/usr/local/share/info
KITTY_PUBLIC_KEY=
+22
View File
@@ -0,0 +1,22 @@
[
{
"RuleID": "generic-api-key",
"Description": "Detected a Generic API Key, potentially exposing access to various services and sensitive operations.",
"StartLine": 5,
"EndLine": 5,
"StartColumn": 1,
"EndColumn": 70,
"Match": "ELEVENLABS_API_KEY=sk_9f585645834280f5329344c9a1f3a7eadef230e86a0a0675",
"Secret": "sk_9f585645834280f5329344c9a1f3a7eadef230e86a0a0675",
"File": ".env.example",
"SymlinkFile": "",
"Commit": "f54fc1d9cde1738ff066fcfec2ea371c4104f3da",
"Entropy": 3.9499063,
"Author": "Michael Wegener",
"Email": "mw@satware.com",
"Date": "2026-03-22T10:30:14Z",
"Message": "chore: final EOD repository hygiene and untracked files\n\nCo-authored-by: Junie \u003cjunie@jetbrains.com\u003e",
"Tags": [],
"Fingerprint": "f54fc1d9cde1738ff066fcfec2ea371c4104f3da:.env.example:generic-api-key:5"
}
]
+2
View File
@@ -3,6 +3,8 @@
All notable changes to this repository are documented in this file.
## [Unreleased]
- **Automation Optimization**: Cleaned up the MacBook by uninstalling UI-heavy software (Adobe Suite, CapCut, Microsoft Teams, etc.) and deleting unused user profiles (`awsatwareag`, `EEsatwareAG`, `firebird`) using scripted automation hooks (`scripts/uninstall-apps.sh` and `scripts/delete-users.sh`).
- **FileVault Auto-login Script**: Created `scripts/auth-restart.sh` leveraging `fdesetup authrestart` to bypass FileVault screen for headless reboots.
- Updated references of OpenClaw version from `2026.3.13` to `2026.3.28` across the local documentation and gateway plugins list.
- Clarified maintenance protocols in remote `luca` project documentation (`MAINTENANCE.md`), directing operators back to the `mw-macbook-pro` repository for all macOS node-specific configuration and tunnel updates.
+1
View File
@@ -1,6 +1,7 @@
# Next Steps - OpenClaw MacBook Pro Node
## Immediate Tasks
- [x] **Machine Optimization**: Uninstall UI-heavy applications and delete unused user accounts to dedicate the mac specifically to automation.
- [ ] **Monitor Connection Stability**: Ensure the `ai.openclaw.node` LaunchAgent maintains the SSH tunnel and node connectivity over long periods.
- [ ] **TCC Permission Audit**: Periodically verify that "Screen Recording" and "Accessibility" permissions for the `node` binary remain intact after system updates.
- [ ] **Log Rotation**: Implement log rotation for `~/.openclaw/logs/*.log` to prevent disk space issues on the MacBook Pro.
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
# scripts/auth-restart.sh
# Performs an authenticated reboot using fdesetup
echo "Enter your Mac password to perform an authenticated restart for FileVault:"
echo "(Typing will be hidden. The Mac will reboot immediately upon success.)"
read -s -p "Password: " PASS
echo ""
if [ -z "$PASS" ]; then
echo "Operation cancelled or no password provided."
exit 1
fi
echo "Verifying password..."
# Verify and cache sudo credentials so we don't have to expect the sudo prompt
echo "$PASS" | sudo -S -v 2>/dev/null
if [ $? -ne 0 ]; then
echo "Incorrect password or sudo authorization failed."
PASS=""
exit 1
fi
echo "Authorization successful. Initiating FileVault authenticated restart..."
# Run fdesetup and feed the password using expect using env variables for safety
export PASS
expect -c '
set timeout 30
spawn sudo fdesetup authrestart
expect {
-re "(?i)(password|recovery key)" {
send "$env(PASS)\r"
exp_continue
}
timeout {
puts "\nError: Timeout waiting for fdesetup prompt."
exit 1
}
eof {
puts "\nAuthenticated restart initiated."
exit 0
}
}
'
PASS=""
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# macOS script to delete unused user accounts
# Removes specified users to optimize machine for dedicated automation tasks
USERS_TO_DELETE=("awsatwareag" "EEsatwareAG" "firebird")
echo "Starting user account deletion..."
for user in "${USERS_TO_DELETE[@]}"; do
# Check if the user exists in Directory Services
if dscl . -read "/Users/$user" > /dev/null 2>&1; then
echo "Deleting user: $user"
sudo sysadminctl -deleteUser "$user"
fi
# Ensure home directory is completely removed
if [ -d "/Users/$user" ]; then
echo "Removing residual home directory: /Users/$user"
sudo rm -rf "/Users/$user"
fi
# Check if neither existed
if ! dscl . -read "/Users/$user" > /dev/null 2>&1 && [ ! -d "/Users/$user" ]; then
echo "Not found or completely removed: $user"
fi
done
echo "User account deletion script complete."
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
# macOS uninstallation script for UI-heavy applications
# Generated to optimize the machine for automation tasks
APPS=(
"/Applications/Adobe Acrobat DC"
"/Applications/Adobe Creative Cloud"
"/Applications/Adobe Media Encoder 2025"
"/Applications/CapCut.app"
"/Applications/Mattermost.app"
"/Applications/Microsoft Teams.app"
"/Applications/WhatsApp.app"
"/Applications/eM Client.app"
"/Applications/Prime Video.app"
"/Applications/wand.app"
"/Applications/UP Studio3.app"
"/Applications/Numbers.app"
)
echo "Starting uninstallation of UI-heavy applications..."
for app in "${APPS[@]}"; do
if [ -e "$app" ]; then
echo "Removing: $app"
sudo rm -rf "$app"
else
echo "Not found (already removed): $app"
fi
done
echo "Uninstallation script complete."
+64
View File
@@ -0,0 +1,64 @@
#!/usr/bin/env bash
echo "Uninstalling Adobe Services, GOG, TeamViewer, Firebird, and Tunnelblick..."
# 1. Kill processes
echo "Killing related processes..."
sudo killall -9 TeamViewer "GOG Galaxy" Tunnelblick "Adobe Desktop Service" CCXProcess CoreSync "Adobe CCXProcess" "Creative Cloud" AdobeIPCBroker "Adobe CEF Helper" fbserver gds_drop 2>/dev/null || true
# 2. Unload Launch Daemons
echo "Unloading System Daemons..."
for daemon in /Library/LaunchDaemons/com.teamviewer.* /Library/LaunchDaemons/com.gog.* /Library/LaunchDaemons/net.tunnelblick.* /Library/LaunchDaemons/org.firebird.* /Library/LaunchDaemons/com.adobe.*; do
if [ -f "$daemon" ]; then
sudo launchctl unload "$daemon" 2>/dev/null || true
sudo rm -f "$daemon"
fi
done
# 3. Unload Launch Agents
echo "Unloading System Agents..."
for agent in /Library/LaunchAgents/com.teamviewer.* /Library/LaunchAgents/com.gog.* /Library/LaunchAgents/com.adobe.*; do
if [ -f "$agent" ]; then
# Try both older unload and newer bootout just in case
sudo launchctl unload "$agent" 2>/dev/null || true
for uid in $(dscl . -list /Users UniqueID | awk '$2 >= 500 {print $2}'); do
sudo launchctl bootout gui/$uid "$agent" 2>/dev/null || true
done
sudo rm -f "$agent"
fi
done
echo "Unloading User Agents..."
for user_agent in ~/Library/LaunchAgents/com.adobe.*; do
if [ -f "$user_agent" ]; then
launchctl unload "$user_agent" 2>/dev/null || true
rm -f "$user_agent"
fi
done
# 4. Remove App Directories
echo "Removing Application Files..."
sudo rm -rf "/Applications/TeamViewer.app"
sudo rm -rf "/Applications/GOG Galaxy.app"
sudo rm -rf "/Applications/Tunnelblick.app"
# Firebird standard manual installation locations
sudo rm -rf "/Library/Frameworks/Firebird.framework"
sudo rm -rf "/opt/firebird"
# Common Adobe paths
sudo rm -rf "/Applications/Adobe"*
sudo rm -rf "/Applications/Utilities/Adobe"*
# Application Support
sudo rm -rf "/Library/Application Support/Adobe"
sudo rm -rf "/Library/Application Support/TeamViewer"
sudo rm -rf "/Library/Application Support/GOG.com"
sudo rm -rf "/Library/Application Support/Tunnelblick"
# Try homebrew just in case some were installed via brew casks
echo "Checking Homebrew casks..."
brew uninstall --cask tunnelblick teamviewer gog-galaxy 2>/dev/null || true
brew uninstall firebird 2>/dev/null || true
echo "Uninstallation finished successfully."