# TOOLS.md - Local Notes ## Cron-Jobs (proaktive Nachrichten) Für Telegram/WhatsApp/etc. Zustellung: - `--session isolated` (nicht main) - `--message "..."` (nicht system-event) - `--deliver --channel telegram --to ` Siehe auch: `~/clawd/.learnings/LEARNINGS.md` (LRN-20260126-001) ## 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! ```typescript // Telegram message({ action: "send", channel: "telegram", target: "", filePath: "/pfad/zum/bild.png", caption: "Optionaler Text dazu" }) ``` Der User sieht das Bild sonst nicht wenn er nicht am Mac sitzt! ## Package Manager - **Immer `pnpm` statt `npm` verwenden!** - Global install: `pnpm add -g ` - Local install: `pnpm add ` ## TTS / Sprachausgabe - **Provider:** OpenAI - **Stimme:** echo (männlich, schnelleres Tempo) - **Alternativen:** onyx (tief/langsam), alloy (neutral), fable (britisch) Skills define *how* tools work. This file is for *your* specifics — the stuff that's unique to your setup. ## Sprachnachrichten / Voice Transcription **Skript:** `~/.clawdbot/scripts/transcribe.sh [language]` - Default-Sprache: `de` - Model: `~/.clawdbot/models/ggml-base.bin` (Whisper base) - Konvertiert automatisch ogg/mp3/etc. zu wav **Quick command:** ```bash ~/.clawdbot/scripts/transcribe.sh /path/to/audio.ogg ``` ## Trello - **Board "Ox Creek":** `65e4430389494d27d1691bb0` - **Bei neuen Karten:** Immer Bastian als Mitglied hinzufügen (nur Bastian, nicht automatisch Jasmin) - Bastian: `5a0b5d006ff181f7b23842f6` - Jasmin: `5a0b5da354e70f2da859e083` - **Jasmin Telegram-ID:** `8280212990` - **Bastian Telegram-ID:** `24466372` ## Git - **Author:** `James ` (meine Commits) - Bastians Commits: `Bastian (BaM) ` ## 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:** ```bash peekaboo click --app Signal --coords 200,185 --bridge-socket "..." peekaboo type "text" --app Signal --bridge-socket "..." ``` **✅ Stattdessen — erst mit `open -a` fokussieren:** ```bash # 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 --on elem_31 --bridge-socket "..." ``` ### Standard-Workflow ```bash # 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 --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 ```markdown ### 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.