Pipe library / website-change
website-change
Hash a public page and emit when the hash changes.
Utilities
example.com
CLI
pipes run examples/website-change.pipe.yaml
MCP call
{
"name": "pipe__website-change",
"arguments": {}
}
Pipe file
examples/website-change.pipe.yaml
pipes: 0
name: website-change
version: 0.1.0
description: Hash a public page and emit when the hash changes.
permissions:
network: [example.com]
inputs:
type: object
properties:
url:
type: string
format: uri
default: https://example.com/
required: [url]
outputs:
type: object
properties:
text: { type: string }
count: { type: integer }
required: [text, count]
output:
text: "${steps.format.text}"
count: "${steps.format.count}"
steps:
- id: fetch
block: fetch_http
with:
url: "${inputs.url}"
max_bytes: 200000
retry: { max: 2, backoff_ms: 400 }
timeout_ms: 15000
- id: hashed
block: hash
in: "${steps.fetch}"
with:
fields: [url, body]
into: digest
- id: changed
block: diff_since_last
in: "${steps.hashed}"
with:
key: [url]
compare: [digest]
emit: [added, changed]
first_run: all
- id: shaped
block: map
in: "${steps.changed}"
with:
pick: [url, digest]
- id: format
block: format
in: "${steps.shaped}"
with:
header: "Page hash:\n"
item_template: "- ${item.url} ${item.digest}"
separator: "\n"
- id: print
block: emit_stdout
in: "${steps.format.text}"
with: { format: text }