Beta sign in

Pipe library / lobsters-top

lobsters-top

Hottest Lobsters stories. Lobsters publishes this feed for readers. Reddit's Data API forbids unauthenticated automation, so this pipe uses Lobsters instead of a subreddit scrape.

News and research

lobste.rs

CLI

pipes run examples/lobsters-top.pipe.yaml

MCP call

{
  "name": "pipe__lobsters-top",
  "arguments": {}
}

Pipe file

examples/lobsters-top.pipe.yaml

pipes: 0
name: lobsters-top
version: 0.1.0
description: Hottest Lobsters stories. Lobsters publishes this feed for readers. Reddit's Data API forbids unauthenticated automation, so this pipe uses Lobsters instead of a subreddit scrape.
permissions:
  network: [lobste.rs]
inputs:
  type: object
  properties:
    feed:
      type: string
      format: uri
      default: https://lobste.rs/rss
    n:
      type: integer
      minimum: 1
      maximum: 20
      default: 8
  required: [feed]
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.feed}"
      max_bytes: 400000
    retry: { max: 2, backoff_ms: 500 }
    timeout_ms: 15000
  - id: entries
    block: parse_rss
    in: "${steps.fetch}"
  - id: capped
    block: limit
    in: "${steps.entries}"
    with: { n: "${inputs.n}" }
  - id: format
    block: format
    in: "${steps.capped}"
    with:
      header: "Lobsters:\n"
      item_template: "- ${item.title} ${item.link}"
      separator: "\n"
  - id: print
    block: emit_stdout
    in: "${steps.format.text}"
    with: { format: text }