Claude Claude AI โ€” skills, MCP servers, prompting, and workflows

Most AI work runs through Claude โ€” Claude Desktop with Cowork mode on the Mac, Claude Code in the terminal, and a stack of custom MCP servers connecting Claude to the homelab, the farm database, Tana, GitHub, calendars, and more.

Surfaces in active use
Surface Where What it’s for
Claude Desktop (Cowork) Mac Studio + MacBook Long-running interactive sessions with the full MCP toolkit + skills + scheduled tasks
Claude Code Mac terminal at ~/.local/bin/claude Non-interactive scripted runs (doc-sync, briefing, dictation). Auth = API key in ~/.config/anthropic-api-key
Cowork Scheduled Tasks Mac Studio daily-briefing (04:00), process-dictation (hourly), claude-email-review (hourly), tana-mac-contacts-sync (Sun 08:00), calendar-duplicate-cleanup (07:07)
launchd doc-sync Mac Studio 03:00 nightly โ€” extracts session transcripts, analyzes drift in TASKS.md + memory + bundle, emails report
Current state (May 2026)
  • 12 MCP servers configured: firecrawl, farm-data, ha-mcp, structured-exec, memory, cron-validator, git-semantic, tana-local, netbird, usda-plants, inaturalist, mermaid-render. (ha-mcp is wired but blocked on the farm network outage as of late May 2026.)
  • Skills plugin: bee-farm-skills declared in ~/Sync/ED/skills/.claude-plugin/marketplace.json. After editing any SKILL.md, run ~/scripts/sync-cowork-snapshot.sh to push the change into the Cowork snapshot, then start a fresh Cowork session.
  • Helper scripts in ~/scripts/: arr-briefing-data.py, homelab-backup-status.py, check-mcp-health.py, rebuild-mcp-venvs.sh, sync-cowork-snapshot.sh. The first two were extracted from inline shell-string chains in SKILLs and are the canonical pattern (SSH-Python-heredoc, argv lists, no nested bash -c).
  • Multi-machine sync: Studio and MacBook share Claude config, MCP servers (auto-rebuild of venvs), skills snapshot, and shared LaunchAgents via Syncthing + a parity script that runs every 4 hours on the MacBook.
Connected MCP Apps (Claude.ai)

These MCP apps are connected in the Claude.ai web interface (Settings โ†’ Integrations):

App Purpose
Google Drive File search and access
Gmail Email search, draft creation, label management (beedifferent5455@gmail.com)
Google Calendar Event management โ€” list, create, update, delete
GitHub Issues, PRs, branches, file push against delgross repos
Sentry Error monitoring and issue tracking
Mermaid Chart Diagram rendering
Hugging Face Model, dataset, paper search
S&P Global Financial data
BioRender Scientific illustration
Marketplaces

Claude Code plugin marketplaces are GitHub repos (or local directories) that distribute skills as installable plugins.

Configured Marketplaces
Marketplace Source Plugins
anthropic-agent-skills GitHub: anthropics/skills document-skills, example-skills, claude-api
bee-farm-skills Local: ~/Sync/ED/skills/ farm-skills โ€” 13 skills: session-protocol, arr-media-management, automation-registry, bee-hub-docs, brownsville-property, homelab-ops, seasonal-calendar, tana-pg-bridge, secrets-vault, network-ops, observability, backup-recovery, mcp-builder
Marketplace Commands
# List configured marketplaces
claude plugin marketplace list

# Add from GitHub
claude plugin marketplace add owner/repo

# Add from local directory
claude plugin marketplace add /path/to/directory

# Update all marketplaces
claude plugin marketplace update

# Update specific marketplace
claude plugin marketplace update marketplace-name

# Remove a marketplace
claude plugin marketplace remove marketplace-name

# Install a plugin from a marketplace
claude plugin install plugin-name@marketplace-name
Notable Third-Party Marketplaces
Marketplace Install Command Highlights
daymade/claude-code-skills claude plugin marketplace add daymade/claude-code-skills 48 skills โ€” continue-claude-work, history-files-finder, QA expert, prompt optimizer
alirezarezvani/claude-skills claude plugin marketplace add alirezarezvani/claude-skills Community collection, broad coverage
mhattingpete/claude-skills-marketplace claude plugin marketplace add mhattingpete/claude-skills-marketplace Engineering workflows, visual docs, code operations

Community directories for browsing:

MCP Servers

MCP (Model Context Protocol) servers extend Claude with tools that access external services, files, databases, and APIs. As of 2026-05-03, there are 22 local MCP servers registered in claude_desktop_config.json.

Custom-Built MCP Servers

Built specifically for Ed’s infrastructure. Source at ~/.mcp-servers/ (each in its own directory with a .venv).

Server Path Tools Purpose
Farm Data ~/.mcp-servers/farm-data/ 19 tools โ€” species CRUD, plantings, harvests, observations, collections, locations, suppliers, SQL PostgreSQL farm database (772 species, plantings, harvests). Bridges Tana knowledge to structured queries
Homelab Snapshot ~/.mcp-servers/homelab-snapshot/ docker_containers, disk_usage_ct100, zfs_pools, proxmox_cts, caddy_hostnames, mac_studio_launchd Cached snapshots of CT100 Docker, ZFS, Proxmox state. Fast reads without SSH round-trips
Structured Exec ~/.mcp-servers/structured-bash/ exec, ssh_exec, pct_exec Shell execution with argv arrays (no shell parsing). Replaces Desktop Commander for reliable SSH/pct chains
Docs Search ~/.mcp-servers/docs-search/ search Hugo/Caddy/Anthropic docs Site-scoped search via Brave API, fetches and extracts full page content
Wallabag ~/.mcp-servers/wallabag/ search, save, get, archive, tag articles, list tags Read-later integration with wallabag.edmd.me (OAuth2, user: delgross)
iNaturalist ~/.mcp-servers/inaturalist/ taxon lookup, observations by taxon/coords, pollinator species, county species Native plant + pollinator queries near Brownsville (39.947ยฐN, 82.256ยฐW)
USDA PLANTS ~/.mcp-servers/usda-plants/ search, lookup by symbol/name, native status, plants by state+category Verified taxonomic + native-status data for species validation
NWS Weather ~/.mcp-servers/nws-weather/ forecast, hourly, current conditions, alerts NOAA 7-day forecast at Brownsville coords, pairs with seasonal-calendar
Community / Third-Party MCP Servers

Installed from npm, uvx, or GitHub. Configured in claude_desktop_config.json.

Server Install Purpose
Tana Local npx mcp-remote http://127.0.0.1:8262/mcp Search, read, create Tana nodes. Requires Tana desktop running. Main workspace: rav2D0ijeq
Life Archive Custom (~/Sync/ED/life_archive/mcp_server.py) RAG over personal document archive. LanceDB + SQLite knowledge graph
Obsidian uvx mcp-obsidian Read/write/search Obsidian vault, periodic notes
Sequential Thinking npx @modelcontextprotocol/server-sequential-thinking Structured multi-step reasoning
Memory npx @modelcontextprotocol/server-memory Persistent knowledge graph across sessions
Exa npx mcp-remote https://mcp.exa.ai/mcp Web search and content extraction
Brave Search npx @modelcontextprotocol/server-brave-search Web search via Brave API (shared key with docs-search)
Kagi uvx kagimcp Kagi search and page summarization
Tavily npx tavily-mcp Web search and research
Firecrawl npx firecrawl-mcp Web scraping, crawling, structured extraction
Navidrome npx navidrome-mcp Music library queries (Subsonic API) โ€” search, playlists, listening history, ratings
TIDAL uv run --with requests at ~/.mcp-servers/tidal-mcp/ TIDAL streaming โ€” discovery, recommendations, playlist management. OAuth flow
YouTube Transcript npx @kimtaeyoon83/mcp-server-youtube-transcript Fetch video transcripts for research
Voicemode uvx voice-mode Voice conversation
Cowork-Provided Tools

These are available in Cowork mode (Claude Desktop app) without claude_desktop_config.json entries:

Tool Purpose
Desktop Commander Terminal, file ops, process management on Mac Studio
Filesystem Read/write/list/search files on Mac
Control your Mac AppleScript/osascript execution
Read and Send iMessages iMessage integration
PDF Tools PDF viewing, filling, merging, splitting
Drafts Drafts app integration
Computer Use Screenshot, mouse, keyboard control of desktop apps
Claude in Chrome Browser automation via Chrome extension
Cloud MCP Apps (Claude.ai)

Connected in Claude.ai Settings โ†’ Integrations:

App Purpose
Google Drive File search and access
Gmail Search threads, create drafts, manage labels
Google Calendar List, create, update, delete events
GitHub Issues, PRs, branches, file push (delgross repos)
Sentry Error monitoring and issue tracking
Mermaid Chart Diagram rendering
Hugging Face Model, dataset, paper search
S&P Global Financial data
BioRender Scientific illustration
Planned MCP Servers
Server Status Purpose
Home Assistant Planned โ€” eval community impls Query entity states (irrigation, sensors, weather, hives), trigger automations on farm HA
Weather Station Pending station selection Soil temp, rainfall, humidity, gust history. Davis / Tempest / Ambient Weather candidates
OPNsense Backlog vespo92/OPNSenseMCP โ€” direct API access to firewall, VLAN, gateway groups
Configuration

Claude Desktop Config

Location: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "tana-local": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://127.0.0.1:8262/mcp"]
    }
  }
}

Adding a New MCP Server

  1. Find or build the server (check MCP Server Registry)
  2. Add to claude_desktop_config.json
  3. Restart Claude Desktop
  4. Verify tools appear in the sidebar

Building Custom MCP Servers

Use the mcp-builder skill in Claude Code:

claude
# Then ask: "Build an MCP server that queries my PostgreSQL farm database"

The skill walks through: research โ†’ planning โ†’ implementation โ†’ testing โ†’ deployment.

Prompting & Workflows

Patterns and workflows that work well with Claude across the homelab, farm, and daily operations.

Homelab Operations

Checking Infrastructure

Claude accesses infrastructure through two dedicated MCP servers:

Homelab Snapshot provides cached reads โ€” Docker containers, disk usage, ZFS pools, Proxmox CTs, Caddy hostnames, Mac Studio launchd agents โ€” without SSH round-trips.

Structured Exec provides reliable shell execution with argv arrays. The pct_exec tool runs commands inside Proxmox containers through SSH without shell-escaping issues. Replaces Desktop Commander for homelab operations.

Disk space: “check disk space on CT100” โ€” uses homelab-snapshot for cached read or structured-exec for live data.

Docker status: “what containers are running” โ€” homelab-snapshot returns all 42 CT100 containers with status and ports.

ZFS health: “check ZFS pools” โ€” homelab-snapshot cached zpool data.

Service check: “is Plex running” โ€” homelab-snapshot or Uptime Kuma.

Media Management

With the arr-media-management skill loaded, Claude knows all API keys and endpoints:

  • “what’s downloading” โ€” checks Sonarr, Radarr, Lidarr queues
  • “search for [show name]” โ€” uses lookup API, offers to add
  • “is altHUB enabled on Lidarr” โ€” checks indexer settings
  • “how many missing movies” โ€” queries wanted/missing endpoint

Adding Cron Jobs

When adding automations, Claude should:

  1. Add the cron job to the appropriate system
  2. Update the Bee Hub cron-jobs docs page
  3. Verify with crontab -l
  4. Consider adding Gotify notification wrapper

Example: “add a weekly docker prune to CT100 and update the docs”

Farm & Property

Seasonal Planning

With the seasonal-calendar skill: “what should I be doing outside this month” gives a prioritized task list across all projects (berries, bees, mushrooms, irrigation, etc.)

Shopping Lists

Claude generates formatted xlsx shopping lists with pricing, sources, and “Ordered?” checkboxes. Effective prompts:

  • “put together a parts list for the drip irrigation”
  • “what do I need to expand the berry beds”
  • “shopping list for shiitake inoculation supplies”

Species and Planting Data

The farm-data MCP server exposes 19 tools against the PostgreSQL farm database (772 species, plantings, harvests, observations). Queries like “what berries do I have planted”, “show species in the Rubus collection”, or “log a harvest” go directly through the MCP โ€” no manual SQL needed. The Tana Brownsville workspace holds unstructured research notes and planning docs; structured data lives in Postgres.

Product Research

Claude is effective at comparative product research. The pattern:

  1. State the need and constraints (well water, 93 acres, Zone 6b, LoRa range, etc.)
  2. Claude searches, compares specs, identifies what fits
  3. Generates a recommendation with reasoning
  4. Builds a shopping list spreadsheet if needed

Works well for: irrigation components, homelab hardware, tools, farm supplies, appliances.

Documentation

Updating Bee Hub

Claude can edit Hugo content files directly via Filesystem tools:

  • “add this to the docs” โ€” updates the relevant Bee Hub page
  • “update the cron jobs page” โ€” edits /Users/bee/Sync/ED/homelab/bee_hub/content/homelab/cron-jobs/_index.md
  • “document the new container” โ€” adds to services page

The deploy cron (deploy-vps.sh) runs every 30 minutes, so changes appear on the site within half an hour.

Creating New Docs Pages

For new documentation, Claude creates the Hugo page with proper frontmatter:

---
title: "Page Title"
page_links:
  - { label: "Link Label", url: "https://example.com", external: true }
---

Content uses Hugo section shortcodes (with id and title attributes) for collapsible sections.

Effective Prompting Tips

Be Specific About Systems

“Check CT100” is better than “check the server” โ€” Claude has multiple systems to manage.

Reference Past Decisions

“We decided on Netafim HCVXR for the irrigation” โ€” Claude searches past conversations to find context.

Ask for Docs Updates

End infrastructure changes with “and update the docs” โ€” saves a separate step.

Use Structured Exec for Shell Work

The structured-exec MCP replaces Desktop Commander for homelab operations. Its pct_exec tool takes argv arrays and optional stdin for piping scripts into containers, avoiding the shell-escaping nightmares of nested SSH+pct exec+bash chains. Use bash_wrap=true when globs are needed inside the container.

Use Skills for Context

Skills load automatically based on keywords. Mentioning “berries” or “irrigation” triggers the seasonal-calendar skill. Mentioning “what’s downloading” triggers the arr skill. No need to explicitly invoke them.

Setup & Quick Reference

Claude is used across three interfaces:

Interface Purpose Config Location
Claude.ai Web/desktop chat with MCP apps, Cowork, artifacts Browser โ€” MCP apps configured in Settings
Claude Desktop Native app with local MCP servers ~/Library/Application Support/Claude/claude_desktop_config.json
Claude Code CLI agent for coding, file ops, homelab management ~/.claude/settings.json โ€” skills + plugins

Claude Code version: 2.1.63, installed at /Users/bee/.local/bin/claude

Quick Reference
Task Command
Open Claude Code claude
List installed plugins claude plugin list
List marketplaces claude plugin marketplace list
Update marketplace claude plugin marketplace update [name]
Install a plugin claude plugin install NAME@MARKETPLACE
Check version claude --version
Local MCP Servers (22 active)

Configured in claude_desktop_config.json. See MCP Servers for full details.

Custom-built (at ~/.mcp-servers/):

Server Purpose
Farm Data PostgreSQL farm database โ€” 19 tools, 772 species
Homelab Snapshot Cached Docker/ZFS/Proxmox state, fast reads
Structured Exec Shell execution with argv arrays, reliable SSH/pct chains
Docs Search Site-scoped search of Hugo/Caddy/Anthropic docs
Wallabag Read-later article management (wallabag.edmd.me)
iNaturalist Plant + pollinator observations near Brownsville
USDA PLANTS Taxonomic + native-status data
NWS Weather NOAA forecast at Brownsville coords

Community/third-party:

Server Purpose
Tana Local Tana node search, read, create
Life Archive Personal document RAG search
Obsidian Obsidian vault read/write
Sequential Thinking Structured multi-step reasoning
Memory Persistent knowledge graph across sessions
Exa Web search and content extraction
Brave Search Web search via Brave API
Kagi Kagi search and summarization
Tavily Web search and research
Firecrawl Web scraping and structured extraction
Navidrome Music library queries (Subsonic API)
TIDAL TIDAL streaming discovery + playlists
YouTube Transcript Fetch video transcripts
Voicemode Voice conversation
Skills & Plugins

Two distinct things both called “skills” live on this machine โ€” and as of 2026-05-02 they share a single root at ~/Sync/ED/skills/ (Syncthing-replicated, so the same tree is on every device).

Plugin skills are markdown packages (SKILL.md files) that Claude reads at session start. Claude triggers them automatically based on the description field. The local marketplace at ~/Sync/ED/skills/ is named bee-farm-skills.

Personal launchd skills are scheduled scripts in the same tree (each with a scripts/ subdirectory) that produce data snapshots Claude (and you) can read. They are not Claude plugins โ€” they’re automation that produces data Claude can consume.

This page lists both.

Custom Skills (bee-farm-skills marketplace)

Source: /Users/bee/Sync/ED/skills/ โ€” local marketplace named bee-farm-skills. These are the skills written specifically for Ed’s homelab and farm operations.

arr-media-management

The complete operating manual for the *arr media stack โ€” Sonarr, Radarr, Lidarr, Prowlarr โ€” plus the surrounding pipeline (Plex library, beets music importer, Transmission/Deluge seedbox, and the CWA + Shelfmark book ingest path). Knows every API key, port, endpoint, indexer (altHUB, NZBgeek, NZBFinder, TPB, IPTorrents, Headphones VIP), and the SOCKS-proxy / WireGuard egress topology. Triggers on “what’s downloading”, “queue status”, “search for [show/movie/album]”, “check Lidarr”, “is altHUB enabled”, “interactive search”, “beets import”, or even casual mentions like “anything downloading” or “check torrents”.

Edit: /Users/bee/Sync/ED/skills/arr-media-management/SKILL.md

automation-registry

Unified registry of every scheduled task and monitor across Ed’s infrastructure โ€” CT100 crontabs, Mac Studio launchd agents, Home Assistant automations, Uptime Kuma monitors, Watchtower image updates, deploy scripts, and backup schedules. Used both to answer “what’s running” questions and to spot conflicts/duplicates/gaps before adding a new automation. Triggers on “what runs at…”, “what cron jobs do I have”, “is anything monitoring…”, “is there a backup for…”, “show me all scheduled tasks”, or casual checks like “is anything handling X”.

Edit: /Users/bee/Sync/ED/skills/automation-registry/SKILL.md

bee-hub-docs

The skill for editing this Hugo documentation site. Knows the content tree at ~/Sync/ED/homelab/bee_hub/content/, the standard frontmatter pattern, the custom custom section shortcode, the cron-jobs / services / docs page conventions, and the deploy flow (deploy-vps.sh, every 30 min, pushes to VPS + CT103). Triggers when the user mentions “Bee Hub”, “homelab docs”, “update the docs”, “add this to the docs”, or after deploying a new container, adding a cron job, or making any infrastructure change worth documenting.

Edit: /Users/bee/Sync/ED/skills/bee-hub-docs/SKILL.md

brownsville-property

Knowledge base for the 93-acre Brownsville, Ohio property โ€” plant species, berry varieties, irrigation systems (Netafim drip, valve controllers), beekeeping, mushroom cultivation (shiitake on oak logs), permaculture planning, seasonal timing, equipment, soil/compost, weather station, and ecological stewardship. Triggers on any mention of the property, farm, berries, bees, asparagus, mushrooms, planting, drip line, Zone 6b, Licking County, or related shopping lists for farm supplies and irrigation parts.

Edit: /Users/bee/Sync/ED/skills/brownsville-property/SKILL.md

homelab-ops

Operational runbook for the Proxmox homelab โ€” disk space checks, Docker container status, ZFS pool health, *arr queue depth, Caddy reverse proxy, Pi-hole, Gotify, Uptime Kuma, NetBird mesh VPN, Cloudflare DNS, and the edmd.me domain layout. Triggers on “check the server”, “is Plex running”, “how much space do I have”, “what’s downloading”, or any direct mention of CT100/CT101/CT102/CT103, Proxmox, or a specific service name.

Edit: /Users/bee/Sync/ED/skills/homelab-ops/SKILL.md

seasonal-calendar

Zone 6b month-by-month calendar for the property, covering every active project: berry planting/pruning, asparagus, shiitake mushroom cultivation, beekeeping, drip irrigation maintenance, cover crops, native plantings, and pollinator habitat. Always checks today’s date and gives time-sensitive advice. Triggers on “when should I…”, “is it too late for…”, “what should I be doing this month”, “seasonal timing”, or casual prompts like “what’s coming up” and “anything I should be doing outside”.

Edit: /Users/bee/Sync/ED/skills/seasonal-calendar/SKILL.md

tana-pg-bridge

Blueprint and operating guide for the custom MCP server that bridges Tana to PostgreSQL for farm data. Covers what belongs in structured Postgres (species catalog, plantings, harvests, observations, sensor data) versus unstructured Tana (research notes, ecological ontology, planning docs). Includes the full schema, MCP tool definitions, deployment plan, and future extensions (PostGIS, Grafana, Immich integration). Triggers on “Tana bridge”, “farm database”, “PostgreSQL farm”, “plant database”, “farm MCP server”, “species lookup”, “planting records”, or “farm schema”.

Edit: /Users/bee/Sync/ED/skills/tana-pg-bridge/SKILL.md

secrets-vault

Vaultwarden patterns, credential rotation flows, env-var injection at container start, SSH key handling, and the “this credential just leaked into chat” incident response. Knows the active rotation backlog (Directus admin pw, DIRECTUS_KEY, NocoDB JWT, Headphones VIP) and the Vaultwarden setup state on CT104. Covers generating secure values, storing in Vaultwarden via bw CLI, three patterns for injecting secrets into Docker / LXC containers, SSH key rotation order, and the anti-patterns that cause leaks. Triggers on Vaultwarden, vault, credential, password, secret, API key, token, rotate, or “I leaked X what do I do”.

Edit: /Users/bee/Sync/ED/skills/secrets-vault/SKILL.md

network-ops

Network topology and operations โ€” OPNsense router, NetBird mesh VPN (100.123.0.0/16), Pi-hole DNS overrides, Caddy reverse proxy + wildcard cert pattern, WireGuard tunnels (CT100 โ†’ UltraCC NL with kill-switch + MSS clamp), the planned Verizon FWA multi-WAN failover, and the recipe for adding a new container with isolated egress (the “Hermes pattern”). Triggers on OPNsense, NetBird, Pi-hole, Caddy, WireGuard, VLAN, multi-WAN, failover, kill-switch, edmd.me hostnames, NL exit, UltraCC, MSS clamp, or any “how do I add a new isolated container” question.

Edit: /Users/bee/Sync/ED/skills/network-ops/SKILL.md

observability

Loki + Grafana Alloy log aggregation across 7 hosts, Grafana dashboards, Prometheus + Uptime Kuma monitoring, Gotify push notifications. Knows the storage layout (Loki on Biggest/loki, 90-day retention), the standard Alloy config patterns (journald, file-based, Docker container logs), LogQL query patterns for the homelab, how to add a new monitor in Uptime Kuma, and the backlog of enrichments (Docker logs on CT100, Caddy access, Pi-hole queries, smartd alerting, Prometheus dashboards, NetFlow). Triggers on Loki, Grafana, Alloy, Promtail, Prometheus, Uptime Kuma, Gotify, log aggregation, dashboard, LogQL, monitor, or “why isn’t X showing up in logs”.

Edit: /Users/bee/Sync/ED/skills/observability/SKILL.md

backup-recovery

Disaster recovery runbook + 3-2-1 backup plan + the config-as-code git repo on hpve. Covers what gets backed up where (vzdump, ZFS snapshots, nvmepool-backup, config-as-code, farm DB, Vaultwarden), what’s NOT backed up (gaps), restore procedures for five scenarios (single CT, single dataset, Crucial SSD failure, hpve catastrophic loss, site loss), credentials needed for recovery, and the pending tasks (offsite to farm, GitHub mirror, UPS, break-glass plan). Triggers on backup, restore, disaster recovery, DR, 3-2-1, ZFS snapshot, vzdump, “what if hpve dies”, “where is the backup of Y”, or “rebuild from scratch”.

Edit: /Users/bee/Sync/ED/skills/backup-recovery/SKILL.md

Document Skills (Anthropic)

Standard Anthropic-maintained skills for producing professional documents. These ship in the document-skills plugin.

docx

Create, read, edit, and manipulate Word documents (.docx). Handles tables of contents, headings, page numbers, letterheads, tracked changes, comments, embedded images, and find-and-replace at the XML level. Triggers on any mention of “Word doc”, “word document”, “.docx”, or requests to produce a “report”, “memo”, “letter”, or “template” as a Word file.

xlsx

Create, read, edit, and analyze Excel spreadsheets (.xlsx, .xls, .xlsm, .csv, .tsv). Supports formulas, formatting, charts, pivot tables, data cleaning, and conversion between tabular formats. Triggers on “Excel”, “spreadsheet”, “.xlsx”, “data table”, “budget”, “financial model”, “chart”, “graph”, or any reference to a spreadsheet file by name.

pptx

Create, read, edit PowerPoint presentations (.pptx) โ€” slides, layouts, speaker notes, comments, templates. Triggers on “deck”, “slides”, “presentation”, or any reference to a .pptx filename, regardless of what comes next.

pdf

Comprehensive PDF toolkit โ€” extract text and tables, create new PDFs, merge, split, rotate, watermark, fill forms, encrypt/decrypt, extract images, and OCR scanned PDFs. Triggers on any mention of PDF, .pdf, “form”, “extract”, “merge”, or “split”.

Meta-Skills (building & managing skills)

These help Claude build, evaluate, and manage other skills and MCP servers.

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers โ€” both Python (FastMCP) and Node/TypeScript (MCP SDK). Covers tool design, schema definition, error handling, testing, and packaging. Used when building a new MCP server to integrate an external API or service.

skill-creator

Create new skills, modify and improve existing ones, and measure performance. Includes an eval framework with variance analysis and tools for optimizing a skill’s description field for better triggering accuracy. Use when creating a skill from scratch, editing an existing one, or benchmarking before/after a change.

web-artifacts-builder

Build elaborate, multi-component claude.ai HTML artifacts using modern frontend web tech โ€” React, Tailwind CSS, shadcn/ui. For complex artifacts requiring state management, routing, or component libraries; not for simple single-file HTML/JSX artifacts.

consolidate-memory

Reflective pass over Claude’s memory files โ€” merge duplicates, fix stale facts, prune the index. Run periodically to keep the memory store coherent and useful.

setup-cowork

Guided Cowork setup โ€” install role-matched plugins, connect external tools, walk through trying a skill. Used during onboarding to a new Claude environment.

schedule

Create scheduled tasks that run on demand or automatically on an interval. Integrates with Cowork’s scheduled-tasks system so a saved task can be triggered later from chat or from an artifact’s Reload button.

Personal launchd Skills (~/Sync/ED/skills/)

Scheduled scripts on the Mac Studio that produce data snapshots Claude can read. Each lives in its own directory with a scripts/ subfolder. The auto-generated overview lives at ~/Sync/ED/SKILLS_INDEX.md.

mac-inventory

Captures a comprehensive snapshot of all installed software on the Mac Studio โ€” Homebrew formulas, casks, App Store apps, login items, launchd agents and daemons, and ~/Applications installs. Stored as date-stamped JSON, with a latest-inventory.json symlink. Companion diff_inventory.py script produces a human-readable diff between any two snapshots โ€” useful after a cleanup pass to confirm exactly what was removed.

Schedule: weekly, Sunday 6:00 AM (com.bee.mac-inventory.plist) Output: ~/Sync/ED/skills/mac-inventory/inventory-YYYY-MM-DD.json

browser-history

Copies the Brave History SQLite database to a temp file (so it can be read without locking the live DB), then produces a ranked report of the last N days: total visits, unique domains, top sites by visit count, and time-of-day distribution. Useful for the periodic “where did my time go” review and for spotting domains worth blocking at the Pi-hole layer.

Schedule: daily, 5:30 AM (com.bee.browser-history.plist) Output: ~/Sync/ED/skills/browser-history/history-YYYY-MM-DD.json

scripts/generate_index

Walks ~/Sync/ED/skills/, summarizes each skill (script count, snapshot count, size on disk, scheduled plist), and rewrites ~/Sync/ED/SKILLS_INDEX.md so it always reflects the current state of the skills tree. Runs after the data-collection agents so the index reflects the latest snapshot.

Schedule: daily, 5:45 AM (com.bee.skills-index.plist) Output: ~/Sync/ED/SKILLS_INDEX.md

doc-sync

Nightly documentation drift detector. Each morning at 4 AM it: (1) finds every Claude session JSONL modified the previous day, (2) extracts the conversations to a markdown bundle (filtering tool noise, keeping user instructions and assistant text), (3) reads TASKS.md, (4) invokes the Claude CLI in non-interactive mode with the analyze prompt, and (5) writes a structured report to ~/Sync/ED/.doc-sync-log/YYYY-MM-DD.md flagging “Done but not documented”, “Planned but not tracked”, and “Open questions”. Currently report-only โ€” does NOT auto-modify TASKS.md or Bee Hub. Promote to auto-patch once trust is built.

Schedule: daily, 4:00 AM (com.bee.doc-sync.plist) Output: ~/Sync/ED/.doc-sync-log/YYYY-MM-DD.md Manual run: ~/Sync/ED/skills/doc-sync/scripts/run.sh [YYYY-MM-DD] Notification: Gotify (priority 5 if drift flagged, 3 if clean). Requires ~/.config/gotify-token containing the app token; silent if absent.

See Cron Jobs & Scheduled Tasks for the full launchd table and launchctl reload commands.

Managing Skills

Adding a New Plugin Skill

  1. Create directory: mkdir /Users/bee/Sync/ED/skills/my-new-skill
  2. Write the skill: vim /Users/bee/Sync/ED/skills/my-new-skill/SKILL.md
  3. Add to marketplace manifest: edit /Users/bee/Sync/ED/skills/.claude-plugin/marketplace.json โ€” add "./my-new-skill" to the skills array in the farm-skills plugin
  4. Update the marketplace: claude plugin marketplace update bee-farm-skills
  5. Reinstall the plugin: claude plugin uninstall farm-skills@bee-farm-skills && claude plugin install farm-skills@bee-farm-skills
  6. Add the skill to this page

Editing an Existing Skill

Edit /Users/bee/Sync/ED/skills/SKILL-NAME/SKILL.md directly. Changes take effect when Claude Code next loads the skill (typically at session start).

SKILL.md Structure

---
name: skill-name
description: "When to trigger and what it does. Be specific and slightly pushy โ€” Claude tends to under-trigger skills."
---

# Skill Title

Instructions, reference data, workflows, templates.
Keep under 500 lines. For large reference data, use a references/ subdirectory.

Adding a New Personal launchd Skill

  1. mkdir -p ~/Sync/ED/skills/NEW-SKILL/scripts
  2. Write the collection script โ€” output JSON to ~/Sync/ED/skills/NEW-SKILL/NAME-YYYY-MM-DD.json
  3. Update the latest-*.json symlink at the end of the script
  4. Drop a launchd plist at ~/Library/LaunchAgents/com.bee.NEW-SKILL.plist
  5. launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.bee.NEW-SKILL.plist

The generate_index.py skill picks up new skills automatically on its next daily run.