AI Newsletter Digest improvements: fixed QP soft line break decoding, URL extraction, and content cleaning

This commit is contained in:
Krilly
2026-03-04 13:29:22 +00:00
parent 29a98137a7
commit 57dd294675
13706 changed files with 2114953 additions and 237629 deletions

116
TOOLS.md
View File

@@ -1,43 +1,91 @@
# TOOLS.md - Local Notes
## Web Search & Fetch (Ghostfetch)
- **Skill:** `ghostfetch` (ClawHub)
- **Binary:** `~/.openclaw/workspace/tools/ghostfetch`
- **Description:** CLI web search and page fetcher — single binary, no browser required
## Anthony's Setup
**Usage:**
```bash
# Search the web (DuckDuckGo default)
ghostfetch "your search query"
ghostfetch "query" -e brave # Use Brave
ghostfetch "query" -e google # Use Google
ghostfetch "query" -n 5 # Limit to 5 results
### Weather
- **Default location:** Perth, Australia
- **Format:** Always Celsius, metric
- **Quick check:** `curl -s "wttr.in/Perth+Australia?format=%l:+%c+%t+%h+%w"`
# Fetch pages as markdown
ghostfetch fetch https://example.com -m
ghostfetch fetch url1 url2 -m -p 2 # Parallel fetch
### Home Server Stack
- **Home Assistant:** http://homeassistant.kangaroo-eel.ts.net:8123
- **n8n:** http://n8n.kangaroo-eel.ts.net:5678
- **GitTea:** http://gitea.kangaroo-eel.ts.net:3000
- **FreshRSS:** http://freshrss.kangaroo-eel.ts.net
# Extract links
ghostfetch links https://example.com
ghostfetch links https://example.com -f "github" # Filter by pattern
```
### Daily Automations
- **7:05 AM:** Morning briefing (weather + AI news digest)
- **2:00 AM:** GitTea backup
**Note:** Always use `-m` (markdown mode) when reading page content — extracts main content and saves tokens vs raw HTML.
### SendClaw (Krilly's Email)
- **Email:** krilly@sendclaw.com
- **API Key:** stored in `~/.openclaw/credentials/sendclaw` (do NOT put in workspace files)
- **Claim Token:** pearl-852A
- **Dashboard:** https://sendclaw.com/dashboard
- **Rate Limit:** 3 emails/day (new bot), increases with verification
---
### Nodes
- **Anthony's iMac:** 192.168.178.88 · app 2026.2.14 · mode remote
## TTS (Piper - Free Local)
- **Provider:** Piper (local, free)
- **Skill:** `local-piper-tts-multilang-secure` (ClawHub)
- **Default Voice:** Alan (en_GB, British male)
- **Available Voices:** Ryan (US male), Amy (US female), Alan (UK male)
- **Location:** `~/.openclaw/workspace/skills/local-piper-tts-multilang-secure/`
### ntfy (notifications)
- **Server:** https://ntfy.sh (public)
- **Topic:** anthony-krilly-9f3k2
- **Minimum priority:** 4
- **Sound header:** required for iOS vibration/alerts (`Sound: default`)
**Usage:**
```javascript
// Via skill
const skill = require('./index.js');
skill.tts({ text: 'Hello Anthony!', voice: 'en_GB-alan-medium' });
```
### ⛔ NEVER USE - Cost Warnings
- Always use `anthropic/claude-*` direct, never via openrouter
- OpenRouter is fine for deepseek, qwen, and other non-Anthropic models
**Config file:** `~/.openclaw/workspace/skills/local-piper-tts-multilang-secure/config.json`
### exec Tool Notes
- exec sandbox/node not available in current config
- exec host=node requires companion app with system.run support
- Background scripts must run via agentMail API calls or shell hooks instead
**Note:** Piper replaced ElevenLabs (cost savings). Fully offline, no API keys needed.
## Home Assistant
- **URL:** http://homeassistant.kangaroo-eel.ts.net:8123
- **Config:** ~/.config/home-assistant/config.json
- **Entities:** 225 total (16 lights, 29 switches, 21 media players, 2 vacuums, 2 fans, 3 scenes, 1 cover)
## Transcription (Groq Whisper - DEFAULT)
- **Skill:** `groq-whisper`
- **Location:** `~/.openclaw/workspace/skills/groq-whisper/`
- **Command:** `./scripts/transcribe.sh <audio-file> [flags]`
- **Model:** `whisper-large-v3` (fast & free via Groq)
- **Uses:** `GROQ_API_KEY` (already configured)
**Usage:**
```bash
# Basic transcription
transcribe.sh audio.m4a
# With options
transcribe.sh audio.ogg --language en --out result.txt --json
```
**Note:** Groq Whisper is free and fast. Use this instead of OpenAI Whisper.
### Downstairs
- **Name:** Downstairs roborock
- **Device ID:** 5HwaUBFem0YqXvijnABoCq
### Upstairs
- **Name:** Upstairs roborock
- **Device ID:** 1dppdZmcbh6dSWbg6NPOZ5
### Quick Commands
```bash
# Check status
roborock status --device_id "5HwaUBFem0YqXvijnABoCq"
# Start cleaning
roborock command --device_id "5HwaUBFem0YqXvijnABoCq" start
# Stop and go home
roborock command --device_id "5HwaUBFem0YqXvijnABoCq" home
# Check consumables
roborock consumables --device_id "5HwaUBFem0YqXvijnABoCq"
```