144 lines
4.1 KiB
Markdown
144 lines
4.1 KiB
Markdown
# TOOLS.md - Local Notes
|
|
|
|
Environment-specific configs: device names, IPs, accounts, API endpoints.
|
|
|
|
---
|
|
|
|
## Gateway Constraints
|
|
|
|
⚠️ **Cannot restart gateway** - running in Docker container. Always ask Ben to perform gateway restarts when required.
|
|
|
|
---
|
|
|
|
## Sub-Agents
|
|
|
|
Use `sessions_send` to delegate large-context or research tasks. Model: **gemini-3-flash** (1M context).
|
|
Avoids blowing up primary agent context. Available to all agents.
|
|
|
|
## Large Log Safety
|
|
|
|
- Never `read` huge `*.jsonl` session logs directly.
|
|
- Use `scripts/safe-jsonl-peek.sh <file> [max-bytes]` for bounded head/tail inspection.
|
|
- For metadata extraction, prefer scripts that enforce file/byte caps (like `scripts/resolve-channel-names.sh`).
|
|
|
|
---
|
|
|
|
## Skills
|
|
|
|
**Shared** (`~/.openclaw/skills/` — all agents):
|
|
|
|
| Skill | Purpose |
|
|
|-------|---------|
|
|
| capmetro-monitor | Monitor CapMetro service changes for Route 5 & 550 |
|
|
| outline | Search and read Outline wiki documents |
|
|
| reminder | Create reminders with proper CST→UTC timezone handling |
|
|
| sonoscli | Control Sonos speakers (play, pause, volume, grouping) |
|
|
|
|
**Main-only** (`workspace/skills/`):
|
|
|
|
| Skill | Purpose |
|
|
|-------|---------|
|
|
| exa | Neural/semantic web search via Exa API |
|
|
| github-notifications | Check notifications + auto-dismiss nightlies/previews |
|
|
|
|
---
|
|
|
|
## Sonos Speakers
|
|
|
|
| Name | IP | Notes |
|
|
|------|-----|-------|
|
|
| Ben Office L | 192.168.2.125 | Stereo pair left |
|
|
| Ben Office R | 192.168.2.190 | Stereo pair right |
|
|
| Patio - Grill | 192.168.2.57 | Wired |
|
|
| Patio | 192.168.2.74 | USW Ultra Port 7 |
|
|
|
|
---
|
|
|
|
## GitHub CLI
|
|
|
|
**Account:** b3nw (189466) — `GH_TOKEN` with notifications scope
|
|
|
|
---
|
|
|
|
## Search Tools
|
|
|
|
| Tool | Use Case | Access |
|
|
|------|----------|--------|
|
|
| `web_search` | General web, news | Built-in (Brave API) |
|
|
| Exa | Technical/semantic search | `skills/exa/scripts/search.sh` |
|
|
|
|
---
|
|
|
|
## n8n Integration Design Principles
|
|
|
|
1. **Credential isolation:** n8n manages credentials and scoped external access so broad-scope secrets are not stored in the OpenClaw container.
|
|
2. **Logic ownership:** OpenClaw manages projects, reminders, and action/deadline intelligence derived from n8n-provided data.
|
|
3. **Directionality:** OpenClaw always initiates flow by polling n8n to kick off workflows (for targeted actions or checking new items to review).
|
|
|
|
Reference: `docs/integrations/n8n-pattern.md`
|
|
|
|
---
|
|
|
|
## Outline Wiki
|
|
|
|
**URL:** `OUTLINE_URL` env var
|
|
**Token:** `OUTLINE_API_TOKEN` (read-only)
|
|
**Scripts:** `skills/outline/scripts/{search,get-document,list-collections,list-recent}.sh`
|
|
|
|
**Collections:** Daily Journals, Kids Stuff, Home Stuff, Home Lab, Scratch Pad
|
|
|
|
---
|
|
|
|
## CapMetro Transit (GTFS)
|
|
|
|
⚠️ **Use GTFS for all schedule lookups — no web scraping**
|
|
|
|
**Download:**
|
|
```bash
|
|
curl -sL "https://data.austintexas.gov/download/r4v4-vz24/application%2Fx-zip-compressed" -o /tmp/capmetro.zip
|
|
unzip -o /tmp/capmetro.zip -d /tmp/capmetro_gtfs
|
|
```
|
|
|
|
**Key files:** `routes.txt`, `stops.txt`, `trips.txt`, `stop_times.txt`
|
|
|
|
**User's Commute Stops:**
|
|
| Route | Stop ID | Name | Direction |
|
|
|-------|---------|------|-----------|
|
|
| 5 | 964 | Woodrow/Choquette | Eastbound |
|
|
| 550 | 5538 | Crestview Station | Southbound |
|
|
|
|
**Real-time:** `data.austintexas.gov/widgets/cuc7-ywmd` (vehicle positions)
|
|
|
|
---
|
|
|
|
## Gitea (Self-Hosted Git)
|
|
|
|
**URL:** https://gitea.ext.ben.io
|
|
**User:** claw
|
|
**Email:** claw@ben.io
|
|
**Auth:** Git credential store (HTTPS PAT) — pre-configured, no setup needed
|
|
|
|
**Usage:** Standard git commands work automatically with stored credentials:
|
|
```bash
|
|
git clone https://gitea.ext.ben.io/claw/<repo>.git
|
|
git push origin main
|
|
```
|
|
|
|
**API:** Gitea API v1 is available. Use the stored PAT for API calls:
|
|
```bash
|
|
# Extract token from credential store
|
|
GITEA_TOKEN=$(awk -F'[/:@]' '/gitea.ext.ben.io/{print $6}' ~/.git-credentials)
|
|
|
|
# List repos
|
|
curl -s -H "Authorization: token $GITEA_TOKEN" https://gitea.ext.ben.io/api/v1/user/repos | jq -r '.[].full_name'
|
|
|
|
# Create repo
|
|
curl -s -X POST -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \
|
|
-d '{"name": "repo-name", "private": true}' \
|
|
https://gitea.ext.ben.io/api/v1/user/repos
|
|
```
|
|
|
|
**SSH alternative:** `ssh://git.local.ben.io` (not configured; use HTTPS)
|
|
|
|
---
|