# TOOLS.md - Local Notes --- ## Credentials Location All credentials stored in `.credentials/` (gitignored): - `example-api.txt` — Example API key --- ## [Tool Name] **Status:** ✅ Working | ⚠️ Issues | ❌ Not configured **Configuration:** ``` Key details about how this tool is configured ``` **Gotchas:** - Things that don't work as expected - Workarounds discovered **Common Operations:** ```bash # Example command tool-name --common-flag ``` --- Skills define *how* tools work. This file is for *your* specifics — the stuff that's unique to your setup. ## 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 - Tool configurations and settings - Credential locations (not the credentials themselves!) - Gotchas and workarounds discovered - Common commands and patterns - Integration notes ## 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 ``` ## Home Assistant ```markdown ### Home Assistant - URL: http://192.168.0.39:8123 - Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmYzg2NzQwNGNlMzY0NmM5YjA0MTQ4YWFjYjY3OGM4OSIsImlhdCI6MTc3MTE3MzcwNSwiZXhwIjoyMDg2NTMzNzA1fQ.IdlfMvFeiEwv2GSH7hRnG_Au48KRYbfVF0Fa7g5eMpc ``` ## 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. ## Workspace Organization - **Root** (`~/.openclaw/workspace/`) → Core config files and documentation - **`scripts/`** → One-off helper scripts (PowerShell/Shell) - **`temp/`** → Temporary files, downloads, transcripts --- ## Obsidian / NotesMD **Status:** ✅ Configured **CLI Location:** `C:\tools\notesmd-cli.exe` (or in PATH as `notesmd-cli.exe`) **Default Vault:** `C:\Users\admin\Documents\Corey` (already set via `notesmd-cli set-default`) **Common Commands:** ```powershell # Check default vault notesmd-cli print-default --path-only # Search notes notesmd-cli search "query" # Search content inside notes notesmd-cli search-content "query" # Create new note notesmd-cli create "Folder/New note" --content "..." --open # Move/rename (updates wikilinks) notesmd-cli move "old/path" "new/path" ``` **Gotchas:** - Vault path uses regular Windows paths, NOT WSL paths - Default vault must be set before commands work without `--vault` flag - Notes survive session chops (written to disk immediately) --- ## Discord / OpenClaw Config **Status:** ✅ Working **File:** `~/.openclaw/config/config.json` **Working Channel Permissions Setup (for Slash Commands + Agent Responses):** ```json "channels": { "discord": { "enabled": true, "token": "YOUR_TOKEN", "groupPolicy": "open", "guilds": { "1465924568119251006": { "users": [ "458667380332036117", "1465926559134257294" ], "channels": { "1466074219829006599": { "allow": true }, "1468627455656067074": { "allow": true }, "1468257895152881796": { "allow": true }, "1471202415385509981": { "allow": true } }, "requireMention": false } } } } ``` **Critical:** Both layers needed: - `users` at guild level → enables slash commands - `channels.allow: true` at channel level → lets agent respond **Without `users`:** Slash commands don't work **Without `channels.allow`:** Agent doesn't respond (even with `users` set) **Bug/Design Issue:** Dual-whitelist is redundant but required. The `users` filter blocks agent responses when enabled. ### Discord Channels Reference | Channel | ID | Purpose | Agent Active | |---------|-----|---------|--------------| | #home-assistant | 1466074219829006599 | HA, room-assistant | ✅ | | #coding | 1468627455656067074 | Code, git, projects | ✅ | | #projects | 1468257895152881796 | Experiments, non-coding | ✅ | | #summaries | 1471202415385509981 | URL summaries, YouTube | ✅ | | #alerts | 1473701182076752135 | System alerts | ✅ | **Note:** Channel names change sometimes... IDs are forever 😂 --- ## Docker Services **Location:** `~/.openclaw/workspace/docker/` **Services:** | Service | Size | Purpose | Config | |---------|------|---------|--------| | **frigate** | 219 MB | NVR/AI camera detection | `docker-compose.yml`, `config.yml` | | **nextcloud** | 1.1 GB | Self-hosted file sync | `docker-compose.yml` | | **discord-voice-bot** | <1 MB | GLaDOS voice bot | `docker-compose.yml` | **Note:** Frigate media files moved outside workspace. Only config and AI model remain. **To start/stop:** ```bash cd ~/.openclaw/workspace/docker/[service] docker-compose up -d # Start docker-compose down # Stop docker-compose logs -f # View logs ``` --- Add whatever helps you do your job. This is your cheat sheet.