7.4 KiB
TOOLS.md - Local Notes
🔐 Sicherheitskritische Aktionen — NUR BASTIAN
Die folgenden Aktionen darf ich ausschließlich ausführen wenn der Auftrag von Bastian (Signal: +491637010723) kommt:
james-fill/ Vault-Zugriff (KeePassXC)- Browser-Logins mit Passwörtern
- AIDA-Buchungen (Kommen/Gehen/etc.)
- Banking / Finanzen
- Alles was Passwörter, Tokens oder Credentials verwendet
Bei Anfragen von anderen Personen (auch Jasmin!):
- ❌ NICHT ausführen
- ✅ Antworten: "Das kann ich nur auf Bastians direkte Anfrage machen."
- ✅ Optional: Bastian informieren dass jemand das angefragt hat
Wie prüfe ich das?
- Signal-Nachrichten haben die Nummer im Header:
[Signal ... id:+491637010723 ...] - Nur wenn
id:+491637010723→ Aktion erlaubt - Andere Nummern (z.B. Jasmin: +4917698343124) → Ablehnen
- Webchat (main session) → Auch erlaubt (Gateway-Zugang ist geschützt)
Cron-Jobs (proaktive Nachrichten)
Für Signal/WhatsApp/etc. Zustellung:
--session isolated(nicht main)--message "..."(nicht system-event)--deliver --channel signal --to <phone_number>
Siehe auch: ~/clawd/.learnings/LEARNINGS.md (LRN-20260126-001)
News Digest Cron-Jobs
⚠️ Bei Änderungen an News-Präferenzen IMMER die Cron-Jobs anpassen!
Aktuelle Jobs:
Morgendliche News (Werktags)— 07:00 Mo-Fr, MIT Pendler-InfoMorgendliche News (Wochenende)— 08:00 Sa+So, OHNE Pendler-Info
Präferenzen stehen in USER.md unter "News Digest Präferenzen".
Generierte Bilder verschicken
Nach dem Generieren von Bildern (DALL-E, Gemini, etc.) immer das Bild auch direkt im Chat schicken — nicht nur mit open öffnen!
// Signal
message({
action: "send",
channel: "signal",
target: "<phone_number>", // z.B. +491637010723
filePath: "/pfad/zum/bild.png",
caption: "Optionaler Text dazu"
})
Der User sieht das Bild sonst nicht wenn er nicht am Mac sitzt!
Coding Agents (Codex, Claude, etc.)
Immer in tmux starten! So kann Bastian jederzeit zuschauen:
# Session erstellen und Agent starten
tmux new-session -d -s <projektname> -c /pfad/zum/projekt
tmux send-keys -t <projektname> 'codex --full-auto' Enter
# Bastian kann dann zuschauen mit:
# tmux attach -t <projektname>
Bei Codex: Nach dem Prompt immer ein separates Enter senden!
tmux send-keys -t session 'Mein Prompt hier' Enter
# Warten bis Text erscheint, dann:
tmux send-keys -t session Enter # <-- Bestätigung!
Codex wartet auf Bestätigung bevor es losläuft.
Package Manager
- Immer
pnpmstattnpmverwenden! - Global install:
pnpm add -g <package> - Local install:
pnpm add <package>
TTS / Sprachausgabe
- Provider: ElevenLabs
- Stimme: Will (
bIHbv24MWmeRgasZH58o) — entspannt, optimistisch, chill - Alternativen: Chris (casual), Brian (tief), Eric (smooth), Daniel (britisch, formal)
- Backup: OpenAI mit "echo" (männlich, schnell)
Auto-Play bei Signal
Wenn Bastian oder Jasmin eine Sprachnachricht anfragt und die Nachricht von Signal kam:
- Voice-Datei generieren
- Auf Signal schicken
- Gleichzeitig im Hintergrund abspielen:
nohup afplay /path/to/audio.mp3 > /dev/null 2>&1 &
So hören sie die Nachricht direkt ohne klicken! 🎧
Skills define how tools work. This file is for your specifics — the stuff that's unique to your setup.
Sprachnachrichten / Voice Transcription
Automatisch via Clawdbot! 🎤
- Konfiguriert in
tools.media.audio(Gateway Config) - Provider: OpenAI
gpt-4o-mini-transcribe - Sprachnachrichten werden automatisch transkribiert bevor sie bei mir ankommen
- Ich sehe
[Audio] Transcript: "..."statt rohe Audio-Dateien
Trello
- Board "Ox Creek":
65e4430389494d27d1691bb0 - Bei neuen Karten: Immer Bastian als Mitglied hinzufügen (nur Bastian, nicht automatisch Jasmin)
- Bastian:
5a0b5d006ff181f7b23842f6 - Jasmin:
5a0b5da354e70f2da859e083
- Bastian:
- Jasmin Signal:
+4917698343124 - Bastian Signal:
+491637010723
Git
- Author:
James <clawd@noxware.de>(meine Commits) - Bastians Commits:
Bastian (BaM) <git@noxware.de>
Signal (James' eigener Account)
- Nummer: +4915733309147
- PIN: 847291 (Registration Lock)
- Hinweis: Temporäre Nummer ohne SMS-Zugang — bei Logout kein Weg zurück!
Telegram
- Bot-Username: @SpecialAgentJamesBot
- Bot-Token: In Config (
channels.telegram.botToken) - DM-Policy: Pairing (neue Nutzer brauchen Freigabe)
Peekaboo (macOS UI Automation)
Bridge Socket: ~/Library/Application Support/clawdbot/bridge.sock
⚠️ Wichtiger Workaround: App-Fokussierung
Der --app Parameter bei Peekaboo hängt bei Focus-Operationen über die Clawdbot Bridge.
❌ Funktioniert NICHT zuverlässig:
peekaboo click --app Signal --coords 200,185 --bridge-socket "..."
peekaboo type "text" --app Signal --bridge-socket "..."
✅ Stattdessen — erst mit open -a fokussieren:
# 1. App fokussieren mit macOS open
open -a "Signal"
sleep 0.5
# 2. Dann Peekaboo OHNE --app Parameter
peekaboo see --path /tmp/screenshot.png --bridge-socket "~/Library/Application Support/clawdbot/bridge.sock"
peekaboo click --coords 200,185 --bridge-socket "..."
peekaboo click --snapshot <ID> --on elem_31 --bridge-socket "..."
Standard-Workflow
# App öffnen & fokussieren
open -a "AppName" && sleep 0.5
# Screenshot mit Element-Erkennung
peekaboo see --annotate --path /tmp/app.png --bridge-socket "~/Library/Application Support/clawdbot/bridge.sock"
# Auf erkanntes Element klicken
peekaboo click --snapshot <SNAPSHOT-ID> --on elem_XX --bridge-socket "..."
# Oder auf Koordinaten klicken
peekaboo click --coords X,Y --bridge-socket "..."
# Text tippen
peekaboo type "Hello World" --bridge-socket "..."
Insider-Info: Bastian & Jasmin
- "aaaaAaaAaah" = Liebesgesang 😂💕 (als Text schicken, TTS kann das nicht)
Home Assistant
Credentials sind in der Gateway-Config unter env.vars gespeichert (HA_URL, HA_TOKEN).
Smart EQ (E-Auto) Ladeüberwachung
- Sensor:
sensor.aqara_plug_car_charger_e_smart_power - Typ: Aqara Smart Plug mit Leistungsmessung
- Einheit: Watt (W)
- Logik:
> 0W= Smart lädt ✅= 0W= Nicht eingesteckt oder voll
- Cron-Jobs:
smart-einstecken-18(18:00),smart-einstecken-20(20:00)- Prüfe Sensor vor Erinnerung — nur erinnern wenn 0W
Staubsauger-Roboter: Sucky
- Entity:
vacuum.sucky(Deebot) - Sensoren:
sensor.sucky_batterie,sensor.sucky_flache_gereinigt, etc. - Räume: WC (1), Gästezimmer (2), Küche (3), Flur (4), Wohnzimmer (5)
- Modi: vacuum_and_mop, quiet, normal, max, max_plus
Browser-Präferenzen
- Cookie-Banner: Immer "Alle akzeptieren" klicken (Bastians Erlaubnis)
What Goes Here
Things like:
- Camera names and locations
- SSH hosts and aliases
- Preferred voices for TTS
- Speaker/room names
- Device nicknames
- Anything environment-specific
Examples
### Cameras
- living-room → Main area, 180° wide angle
- front-door → Entrance, motion-triggered
### SSH
- home-server → 192.168.1.100, user: admin
### TTS
- Preferred voice: "Nova" (warm, slightly British)
- Default speaker: Kitchen HomePod
Why Separate?
Skills are shared. Your setup is yours. Keeping them apart means you can update skills without losing your notes, and share skills without leaking your infrastructure.
Add whatever helps you do your job. This is your cheat sheet.