Tasks
Skill 5 of 6
Build a Tavily search or extraction that runs on a cadence, with a saved baseline.
3 minutes · 584 words · 4 sections
Install
npx skills add tavily-ai/skills --skill tavily-monitornpx skills add tavily-ai/skills/plugin marketplace add tavily-ai/skillsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Turn a watch into a search or an extraction that can run again unchanged, then run it once and save the baseline. The monitor file is the result.
Use tavily-search to run the check. If it isn’t installed, run npx skills add tavily-ai/skills --skill tavily-search and read its SKILL.md before continuing.
tavily-research. If it isn’t installed, run npx skills add tavily-ai/skills --skill tavily-research and read its SKILL.md before continuing.tavily-list. If it isn’t installed, run npx skills add tavily-ai/skills --skill tavily-list and read its SKILL.md before continuing.| You have | Kind | What “changed” means |
|---|---|---|
| A topic, and the pages are not known yet | search | A result URL that was not in the previous snapshot |
| One or more known URLs | extract | The hash of that page’s extracted content changed |
Use search for mentions, news, jobs, and anything where new pages appear. Use extract for a pricing page, a changelog, a docs page, or a status page.
tavily-search for how to shape it. Leave dates and “latest” out of the
query. The snapshot, not the wording, decides what is new.max_age_hours to that interval in hours,
so a cached copy older than the cadence is not returned. Daily is 24, weekly
is 168. Use 0 when the interval is under an hour, and 720 when it is
longer than 30 days. Read how the parameter works in the search reference of
tavily-search. Write the number in the monitor file and send it on every
run, including the first. Extract does not take max_age_hours.434, the run did not complete. Say so, and leave snapshot.json as
it was.snapshot.json.Create monitors/{name}/ in the working directory. The name is sentence case,
3 to 6 words, letters, numbers, and single spaces. Quote it in shell commands.
Do not start a scheduler unless the user asks for one. When they do, and the environment has a way to run on that cadence, point it at this folder.
A later change to the query or the URL list is a new monitor. It gets a new folder and a new baseline. Editing them in place makes the next diff meaningless.
monitors/{name}/monitor.md:
# {Name}
- Cadence: {daily | weekly on Monday | the schedule the user asked for}
- Kind: search | extract
- Query: {the query, for a search}
- URLs: {one per line, for an extract}
- max_age_hours: {the cadence in hours, search only}
- Alert when: {the change rule}
- Snapshot: snapshot.json
## Run again
Read this file. Use `tavily-search` to run the same search or extract. On a
search, pass `max_age_hours` from this file. Compare the result to
snapshot.json using the alert rule above. Report only the changes. Then
replace snapshot.json with this run. If the search is refused with `434`,
report that and keep the snapshot.monitors/{name}/snapshot.json:
{
"ran_at": "YYYY-MM-DD",
"kind": "search",
"query": "",
"items": [{ "url": "", "title": "", "snippet": "" }]
}For an extract, store pages instead of items: url, sha256 of the
extracted content, and a short excerpt of the part being watched.
In the reply, give the cadence, max_age_hours for a search, the query or the
URLs, the alert rule, and the folder path, plus what the baseline already shows.
Build a Tavily search or extraction that runs on a cadence, with a saved baseline. Search monitors set max_age_hours to the interval so a cached copy from before it is not returned. Use when the user wants to monitor, track, watch, or be alerted when something changes, or asks for a recurring check of a query or a page. For a deep comprehensive report use tavily-research. For a one-time lookup use tavily-search. For a one-time table use tavily-list.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
Bash(tvly*)skills/tasks/tavily-monitor/SKILL.mdmain, last pushed 6 November 2026.SKILL.md, not by matching a directory convention. 3 distinct layouts observed: skills/core/*/SKILL.md, skills/developers/*/SKILL.md, skills/tasks/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by Tavily, declaring 1 plugin. It is read for editorial metadata only — never as the skill index, which is always the repository tree./tavily-ai/skills.md, and each skill at its own .md URL.