- AGENTS.md: workspace conventions and guidelines - SOUL.md: personality and principles - USER.md: about William - IDENTITY.md: who I am - TOOLS.md: local notes and infrastructure details - MEMORY.md: long-term memory - HEARTBEAT.md: periodic task config - LLM-ROUTING.md: model selection guide - memory/2026-01-26.md: daily log - .gitignore: exclude runtime state and secrets
161 lines
4.3 KiB
Markdown
161 lines
4.3 KiB
Markdown
# TOOLS.md - Local Notes
|
|
|
|
Skills define *how* tools work. This file is for *your* specifics — the stuff that's unique to your setup.
|
|
|
|
---
|
|
|
|
## 🏠 Homelab Infrastructure
|
|
|
|
### Kubernetes Cluster
|
|
- **Distribution:** k0s
|
|
- **Nodes:** 3 (2x Pi5 8GB, 1x Pi3 1GB)
|
|
- **Architecture:** arm64
|
|
- **Storage:** Longhorn (StorageClass: `longhorn`)
|
|
- **GitOps:** ArgoCD
|
|
- **Monitoring:** kube-prometheus-stack, Loki, Grafana, Alertmanager
|
|
|
|
### Network
|
|
- **Tailnet:** `taildb3494.ts.net`
|
|
- **MetalLB Pool:** `192.168.153.240-254`
|
|
- **Ingress (nginx):** `192.168.153.240`
|
|
- **Ingress (haproxy):** `192.168.153.241`
|
|
- **DNS Pattern:** `<app>.<ns>.<ip>.nip.io`
|
|
|
|
### Key Services & URLs
|
|
| Service | URL |
|
|
|---------|-----|
|
|
| Grafana | `grafana.monitoring.192.168.153.240.nip.io` |
|
|
| Longhorn UI | `ui.longhorn-system.192.168.153.240.nip.io` |
|
|
| Open WebUI | `oi.ai-stack.192.168.153.240.nip.io` |
|
|
| ArgoCD | via Tailscale |
|
|
| Home Assistant | `ha.home-assistant.192.168.153.241.nip.io` |
|
|
| n8n | `n8n.ai-stack.192.168.153.240.nip.io` |
|
|
|
|
### Namespaces
|
|
`ai-stack`, `argocd`, `monitoring`, `loki-system`, `longhorn-system`, `metallb-system`, `minio`, `nginx-ingress-controller`, `tailscale-operator`, `gitea`, `home-assistant`, `pihole`, `plex`, `ghost`, `kubernetes-dashboard`, `docker-registry`
|
|
|
|
### AI Stack
|
|
- **Namespace:** `ai-stack`
|
|
- **Components:** Open WebUI, Ollama, LiteLLM, SearXNG, n8n, vLLM
|
|
- **Ollama Host:** `100.85.116.57:11434`
|
|
- **Models:** gpt-oss:120b, qwen3-coder
|
|
|
|
---
|
|
|
|
## 💻 Workstation
|
|
|
|
- **Hostname:** `willlaptop`
|
|
- **IP:** `192.168.153.117`
|
|
- **OS:** Arch Linux
|
|
- **Desktop:** GNOME
|
|
- **Shell:** fish
|
|
- **Terminals:** ghostty, alacritty
|
|
- **Theme:** Dracula
|
|
- **Dotfiles:** chezmoi
|
|
|
|
### Dev Tools
|
|
- **Editors:** VSCode, Zed, Vim
|
|
- **Languages:** Go, Rust, Python, TypeScript, Zig
|
|
- **K8s Tools:** k9s, kubectl, argocd CLI, krew, kubecolor
|
|
- **Containers:** Docker, Podman, Distrobox
|
|
|
|
### Local AI
|
|
- **Ollama:** ✅ running
|
|
- **llama-swap:** ✅
|
|
- **Models:** Qwen3-4b, Gemma3-4b
|
|
|
|
---
|
|
|
|
## 📁 Key Repos
|
|
|
|
### Homelab GitOps
|
|
- **Path:** `~/Code/active/devops/homelab/homelab`
|
|
- **Remote:** `git@github.com:will666/homelab.git`
|
|
- **Structure:**
|
|
- `argocd/` — ArgoCD Application manifests
|
|
- `charts/<svc>/values.yaml` — Helm values
|
|
- `charts/<svc>/manifests/` — Raw K8s manifests
|
|
- `ansible/` — Node provisioning
|
|
|
|
### Workstation Config
|
|
- **Path:** `~/Code/active/devops/willlaptop`
|
|
- **Remote:** `git@gitea-gitea-ssh.taildb3494.ts.net:will/willlaptop.git`
|
|
- **Purpose:** Ansible playbooks, package lists, scripts
|
|
|
|
---
|
|
|
|
## 🔧 Claude Code Integration
|
|
|
|
William also has a Claude Code setup at `~/.claude/` with:
|
|
- Multi-agent hierarchy (PA → Master Orchestrator → Domain Agents)
|
|
- Skills for gmail, gcal, k8s-quick-status, rag-search
|
|
- Component registry for routing
|
|
- Guardrails (PreToolUse safety hooks)
|
|
- future-considerations.json for deferred work
|
|
|
|
When working on k8s or homelab tasks, can reference:
|
|
- `~/.claude/state/kb.json` — Infrastructure facts
|
|
- `~/.claude/state/future-considerations.json` — Deferred features
|
|
- `~/.claude/repos/homelab/` — Symlink to homelab repo
|
|
|
|
---
|
|
|
|
## 📧 Google Workspace (gog CLI)
|
|
|
|
Use `gog` for Gmail, Calendar, Drive, Contacts, Sheets, Docs.
|
|
|
|
### Gmail
|
|
```bash
|
|
gog gmail search 'newer_than:7d is:unread' --max 10
|
|
gog gmail search 'from:github.com' --max 20
|
|
gog gmail search 'subject:urgent' --max 5
|
|
```
|
|
|
|
### Calendar
|
|
```bash
|
|
# Week ahead
|
|
gog calendar events primary --from "$(date -I)" --to "$(date -I -d '+7 days')"
|
|
|
|
# Today only
|
|
gog calendar events primary --from "$(date -I)" --to "$(date -I -d '+1 day')"
|
|
```
|
|
|
|
### Tasks
|
|
```bash
|
|
# List task lists
|
|
gog tasks lists list
|
|
|
|
# List tasks in main list
|
|
gog tasks list "MTM5MjM0MjM3MzYwODI4NzQ3NDE6MDow"
|
|
```
|
|
|
|
### Auth Status
|
|
- ✅ Gmail: authorized
|
|
- ✅ Calendar: authorized
|
|
- ✅ Tasks: authorized
|
|
|
|
---
|
|
|
|
## 🤖 LLM Routing
|
|
|
|
See **LLM-ROUTING.md** for full guide. Quick reference:
|
|
|
|
| Task | Use |
|
|
|------|-----|
|
|
| Simple parsing | `opencode run -m github-copilot/claude-haiku-4.5` |
|
|
| Code work | `opencode run -m github-copilot/claude-sonnet-4.5` |
|
|
| Complex reasoning | `claude -p --model opus` |
|
|
| Long context | `gemini -m gemini-2.5-pro` |
|
|
|
|
**Principle:** Start cheap, escalate if needed.
|
|
|
|
---
|
|
|
|
## 🎙️ Preferences
|
|
|
|
*(Add voice, speaker, camera preferences as discovered)*
|
|
|
|
---
|
|
|
|
Add whatever helps you do your job. This is your cheat sheet.
|