# TOOLS.md - Local Notes Last updated: 2026-03-07 (Git fixes, node auto-start) --- ## Credentials Location All credentials stored in `.credentials/` (gitignored): - `gitea.txt` — Gitea credentials - `example-api.txt` — Example API key --- ## Node Auto-Start (Fixed 2026-03-07) **Problem:** Node companion wasn't auto-starting after downgrade **Fix:** Rebuilt scheduled task with correct settings: - **Executable:** `C:\Program Files\nodejs\node.exe` - **Script:** `C:\Users\admin\AppData\Roaming\npm\node_modules\openclaw\dist\index.js` - **Args:** `node run --host 127.0.0.1 --port 18789` - **Working dir:** `C:\Users\admin\.openclaw` - **Restart:** 3 retries, 1 minute apart --- ## Git ### HTTP 413 Workaround **Problem:** `git push` via node times out after 30s (hard limit) on large repos **Solution:** Use manual push when needed: ```powershell cd C:\Users\admin\.openclaw\workspace git push gitea master ``` ### .gitignore Rules (Updated 2026-03-07) Lines added to prevent large files: ``` *.bak *.old unused_files/ # Large files/folders to exclude IGNORE_FOLDER/ **/*.onnx **/journal/ **/db/ ``` **Root cause prevented:** ~900MB Frigate clips + 4 copies of 219MB YOLO models --- ## 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) ### Security Update: Obsidian Write Workflow (2026.2.26+) **Problem:** Direct `write` tool blocked for paths outside workspace **Error:** `Path escapes workspace root` **Solution:** Use `notesmd-cli.exe` via `exec` **Old (Broken):** ```json { "tool": "write", "path": "C:/Users/admin/Documents/Corey/Summaries/Article.md", "content": "..." } ``` **New (Working):** ```powershell # Via exec notesmd-cli.exe create "Summaries/Article" --content "..." --open ``` **Why:** - ❌ `write` tool = Sandboxed agent → Blocked (security boundary) - ✅ `exec` = Runs as user → Inherits permissions → Writes anywhere - CLI runs in **your** context, not the agent's **Affected:** Daily Notes, News Brief, Summaries (all fixed ✅) --- ## 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 }, "1474636036905631867": { "allow": true }, "1473701182076752135": { "allow": true }, "1471156195233628394": { "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 | Ops HQ (HA, general) | ✅ | | #coding | 1468627455656067074 | Code, git, projects | ✅ | | #projects | 1468257895152881796 | Experiments, research | ✅ | | #summaries | 1471202415385509981 | URL summaries, YouTube | ✅ | | #schedule | 1474636036905631867 | Reminders, scheduling | ✅ | | #alerts | 1473701182076752135 | System alerts from cron | ✅ | | #news-brief | 1471156195233628394 | Morning news | ✅ | | #project-research | 1468257895152881796 | Research agent spawning (uses #projects) | ✅ | **Note:** Deleted #general text channel (redundant). ### Channel Workflows | Trigger | Channel | Output | Notes | |---------|---------|--------|-------| | `/summarize [URL]` | #summaries → Obsidian | `Summaries/[Title].md` | Auto-saves to Obsidian. Confirm with file path. | | `/remind` (soon) | #schedule | Discord notification | In development | | Cron alerts | #alerts | Job status reports | Supermemory, Memory Worker, etc. | | News Brief | #news-brief | Morning briefing | Being reconsidered | --- ## 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 ``` --- ## Gitea (self-hosted Git) **Status:** ✅ Configured **Instance:** `gitea.lasuca.com` **Repos:** | Repo | Path | Purpose | |------|------|---------| | obsidian-vault | `admin/obsidian-vault` | Obsidian vault sync | | openclaw-workspace | `admin/openclaw-workspace` | OpenClaw workspace backup | **Credentials:** - User: AlexAI - Pass: [in .credentials/gitea.txt] **Common Commands:** ```powershell # Commit and push vault changes cd "C:\Users\admin\Documents\Corey" git add . git commit -m "message" git push origin master # Check status git status git log --oneline -5 ``` **Gotchas:** - Push-to-create disabled — repos must be created on Gitea first - Uses Git Credential Manager for auth - Auto-backup via Obsidian Git plugin (30 min interval) --- ## Home Assistant ```markdown ### Home Assistant - URL: http://192.168.0.39:8123 - Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... ``` --- ## Why This File Exists 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. --- *Keep this updated as you discover new tools or settings that matter.* ## Model Aliases Prefer aliases when specifying model overrides. Default: **glm** (changed from kimi due to tool bugs). | Alias | Model | Notes | |-------|-------|-------| | glm | glm-5:cloud | Default, good task completion | | kimi | kimi-k2.5:cloud | BROKEN - tools fail after updates | | mini | minimax-m2.1:cloud | Alternative, works well | | deepseek | deepseek-v3.2:cloud | Budget option | **Note:** Kimi model has known tool-calling issues. Switch to glm or mini if tools fail.