watcher
$
npx mdskill add vellum-ai/vellum-assistant/watcherCreate and manage watchers that poll external services for events and process them with an action prompt.
SKILL.md
.github/skills/watcherView on GitHub ↗
---
name: watcher
description: Create and manage polling watchers that monitor external services (Gmail, Google Calendar, GitHub, Linear, Outlook) for events and process them with custom action prompts
compatibility: "Designed for Vellum personal assistants"
metadata:
emoji: "👀"
vellum:
category: "productivity"
display-name: "Watcher"
---
Create and manage watchers that poll external services for events and process them with an action prompt.
## Concepts
- **Provider** - The external service to poll (e.g. "gmail"). Each provider defines how to fetch and parse events.
- **Action prompt** - LLM instructions for handling detected events. Sent along with event data to a background conversation.
- **Poll interval** - How often to check for new events (minimum 15 seconds, default 60 seconds).
- **Digest** - Summary of recent watcher activity, grouped by watcher with time-based filtering.
## Lifecycle
1. Create a watcher with `assistant watchers create`, specifying a name, provider, and action prompt.
2. The system polls the provider at the configured interval.
3. Detected events are processed according to the action prompt.
4. Use `assistant watchers digest` to review recent activity.
## Available Commands
### Create a watcher
```
assistant watchers create \
--name <name> \
--provider <provider> \
--action-prompt <prompt> \
[--poll-interval <ms>] \
[--config <json>] \
[--credential-service <service>]
```
| Flag | Required | Description |
| ---------------------- | -------- | ----------------------------------------------------------------------------------- |
| `--name` | Yes | A human-readable name for this watcher (e.g. "My Gmail") |
| `--provider` | Yes | The provider to poll (see Available Providers below) |
| `--action-prompt` | Yes | Instructions for the LLM on how to handle detected events |
| `--poll-interval` | No | How often to poll in milliseconds. Defaults to 60000 (1 minute). Minimum 15000 |
| `--config` | No | Provider-specific configuration as JSON (e.g. filter criteria) |
| `--credential-service` | No | Override the credential service to use. Defaults to the provider's required service |
**Example:**
```bash
assistant watchers create \
--name "My Gmail" \
--provider gmail \
--action-prompt "Summarize new emails and notify me if anything is urgent"
```
### List watchers
```
assistant watchers list [--id <watcherId>] [--enabled-only]
```
| Flag | Required | Description |
| ---------------- | -------- | ----------------------------------------------------------------- |
| `--id` | No | Show detailed info for a specific watcher including recent events |
| `--enabled-only` | No | Only show enabled watchers |
**Example:**
```bash
# List all watchers
assistant watchers list
# Show details for a specific watcher
assistant watchers list --id abc123
```
### Update a watcher
```
assistant watchers update <watcherId> \
[--name <name>] \
[--action-prompt <prompt>] \
[--poll-interval <ms>] \
[--enabled | --disabled] \
[--config <json>]
```
| Flag | Required | Description |
| ----------------- | -------- | ----------------------------------------------------- |
| `<watcherId>` | Yes | The ID of the watcher to update (positional argument) |
| `--name` | No | New name for the watcher |
| `--action-prompt` | No | New action prompt for event processing |
| `--poll-interval` | No | New poll interval in milliseconds (minimum 15000) |
| `--enabled` | No | Enable the watcher |
| `--disabled` | No | Disable the watcher |
| `--config` | No | New provider-specific configuration as JSON |
**Example:**
```bash
# Change the action prompt
assistant watchers update abc123 --action-prompt "Flag urgent emails and ignore newsletters"
# Disable a watcher temporarily
assistant watchers update abc123 --disabled
```
### Delete a watcher
```
assistant watchers delete <watcherId>
```
Permanently deletes a watcher and all its event history.
**Example:**
```bash
assistant watchers delete abc123
```
### View watcher digest
```
assistant watchers digest [--id <watcherId>] [--hours <n>] [--limit <n>]
```
| Flag | Required | Description |
| --------- | -------- | ------------------------------------------------------------------------------------ |
| `--id` | No | Filter to events from a specific watcher. If omitted, shows events from all watchers |
| `--hours` | No | How many hours back to look. Defaults to 24 |
| `--limit` | No | Maximum number of events to return. Defaults to 50 |
**Example:**
```bash
# See all watcher activity from the last 24 hours
assistant watchers digest
# See activity from a specific watcher over the last 8 hours
assistant watchers digest --id abc123 --hours 8
```
## Available Providers
| Provider | Description |
| ------------------ | -------------------------------------------------- |
| `gmail` | Monitor a Gmail inbox for new emails |
| `google-calendar` | Monitor Google Calendar for new or updated events |
| `github` | Monitor GitHub for repository activity |
| `linear` | Monitor Linear for issue updates |
| `outlook` | Monitor an Outlook inbox for new emails |
| `outlook-calendar` | Monitor Outlook Calendar for new or updated events |
## Usage Notes
- Use `assistant watchers create` when the user wants to monitor an external source (e.g. "watch my Gmail for important emails").
- `assistant watchers digest` is the go-to command when the user asks "what happened with my email?" or similar questions about watcher activity.
- Watchers can be enabled/disabled via `assistant watchers update` without deleting them -- use `--disabled` to pause and `--enabled` to resume.
- Each provider requires appropriate credentials to be configured. The `--credential-service` flag can override the default credential service if needed.
More from vellum-ai/vellum-assistant
- acpSpawn external coding agents via the Agent Client Protocol (ACP)
- amazonShop on Amazon and Amazon Fresh through your browser
- api-mappingRecord and analyze API surfaces of web services
- app-builderBuild and edit small, personal visual tools and artifacts — dashboards, trackers, calculators, data visualizations, charts, simple landing pages, and slide decks the user wants for THEMSELVES. This is the right skill whenever the user asks to "visualize this," "make a chart," or "build an artifact" for their own use, or to edit an app they already built here. Do NOT reach for a ui_show dynamic_page to fake an artifact — build a real persistent app here. NOT for complex, multi-user, or shippable products — those go to a real project folder with a coding agent (see Scope below).
- app-controlDrive a specific named macOS app via raw input bypassing the Accessibility tree
- assistant-migrationMigrate from ChatGPT, Claude, OpenClaw, Hermes, Manus, and other AI assistants into Vellum by inspecting their data exports, conversation archives, files, prompts, custom instructions, memory, saved memories, tools, GPTs, workflows, integrations, and relationships, then mapping as much as safely possible into Vellum primitives. Handles single-source and multi-source migrations with a unified, deduplicated inventory.
- chatgpt-importImport conversation history from ChatGPT into Vellum
- cli-discoverDiscover which CLI tools are installed, their versions, and authentication status
- computer-useControl the macOS desktop
- contactsManage contacts, communication channels, access control, and invite links