Beta sign in

Pipe library / dev-brief

dev-brief

Chained brief. A changelog feed and a Hacker News keyword watch, merged into one note.

Developer monitoring Chained

blog.rust-lang.orghn.algolia.com

Sub-pipes

How chaining works

CLI

pipes run examples/dev-brief.pipe.yaml

MCP call

{
  "name": "pipe__dev-brief",
  "arguments": {}
}

Pipe file

examples/dev-brief.pipe.yaml

pipes: 0
name: dev-brief
version: 0.1.0
description: Chained brief. A changelog feed and a Hacker News keyword watch, merged into one note.
permissions:
  network: [blog.rust-lang.org, hn.algolia.com]
inputs:
  type: object
  properties:
    feed:
      type: string
      format: uri
      default: https://blog.rust-lang.org/feed.xml
    keyword:
      type: string
      minLength: 2
      default: rust
  required: [feed, keyword]
outputs:
  type: object
  properties:
    text: { type: string }
    count: { type: integer }
  required: [text, count]
output:
  text: "${steps.digest.text}"
  count: "${steps.digest.count}"
steps:
  - id: changelog
    block: pipe:changelog-rss-diff@^0.1
    with:
      feed: "${inputs.feed}"
  - id: stories
    block: pipe:hn-keyword-watch@^0.1
    with:
      keyword: "${inputs.keyword}"
      hits: 5
  - id: rows
    block: merge
    with:
      lists:
        - - kind: changelog
            text: "${steps.changelog.text}"
        - - kind: stories
            text: "${steps.stories.text}"
  - id: digest
    block: format
    in: "${steps.rows}"
    with:
      header: "Dev brief\n\n"
      item_template: "## ${item.kind}\n${item.text}"
      separator: "\n\n"
  - id: print
    block: emit_stdout
    in: "${steps.digest.text}"
    with: { format: text }