Skip to content
Agentmart
Submit a tool

build-expanso-pipeline

Write or adapt an Expanso pipeline job spec (YAML with type pipeline and a config block of input, Bloblang mapping processors and output).

Skill by expanso-io

IndexedMIT
Write a review

Chalk Labs

Need help deploying build-expanso-pipeline?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/expanso-io-build-expanso-pipeline

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Write or adapt an Expanso pipeline job spec (YAML with type pipeline and a config block of input, Bloblang mapping processors and output). Use when the user asks to create, write, modify or convert an Expanso pipeline or job, write Bloblang for Expanso, move processing to the edge, filter, parse, dedupe, route or fan out data with Expanso, or turn a stdin skill into one a Cloud-scheduled node can run.

Use cases: data, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Nov 1, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/build-expanso-pipeline
  • /var/tmp/my-pipeline/in/input.jsonl
  • /var/tmp/my-pipeline/out/output.jsonl

What's inside

Skill name
build-expanso-pipeline
Description
Write or adapt an Expanso pipeline job spec (YAML with type pipeline and a config block of input, Bloblang mapping processors and output). Use when the user asks to create, write, modify or convert an Expanso pipeline or job, write Bloblang for Expanso, move processing to the edge, filter, parse, dedupe, route or fan out data with Expanso, or turn a stdin skill into one a Cloud-scheduled node can run.
License
MIT
Instructions
76 lines in SKILL.md · view on GitHub

Files (5)

  • SKILL.md
  • pipeline-template.yaml · assets/
  • bloblang.md · references/
  • components.md · references/
  • job-spec.md · references/

SKILL.md (first lines)

# Build an Expanso pipeline

An Expanso pipeline is a **job spec**: a YAML file you submit to the Expanso
Cloud control plane, which schedules it onto one of the user's edge nodes. The
node runs it next to the data. Design for that: filter, reduce and redact on the
node, and send only what the destination needs.

## Before you write anything

1. Check for an existing job or recipe with the `find-expanso-skill` skill. A
   proven job adapted beats a new file.
2. Pin down, asking only for what you can't infer:
   - **Source**: where the data is, as seen *from the node* (a path on the
     node, a port the node listens on, a broker, a URL the node can reach).
   - **Shape**: one example record.
   - **Destination**: where results go, and in what format.
   - **Bounded or streaming**: a file or batch that ends, or a stream that
     doesn't.
   - **Which node**: the label that picks it (for example
     `pipeline_role: logs`).

## Write the spec

Start from `assets/pipeline-template.yaml`. The required shape is in
`references/job-spec.md`. Rules that are easy to miss:

- Top level: `name`, `type: pipeline`, and a `config:` block holding `input`,
  `pipeline.processors` and `output`. Add `selector.match_labels` to pin the
  job to intended nodes, with **underscores, not hyphens, in label keys**.
- **Bounded input** (a file read once, `generate` with a `count`, a
  `sql_select`): set top-level `restart_policy: never`. Otherwise a failing
  bounded job is restarted every few seconds and keeps reading `running`.
- **No `stdin` input for a Cloud-scheduled job.** The remote node has no
  connection to anyone's terminal. Use `file`, `http_server`, `generate`,
  `mqtt`, `kafka`, an object store or a SQL input.
- **`stdout` output: write `stdout: {}`.** Do not add `codec: json_object`; it
  passed both validators and was then rejected at runtime in testing.
- **Credentials**: never write a secret into the file. Reference an environment
  variable that is set **on the node that runs the job**, not on the machine
  that deploys it, and tell the user which variable to set where.
- Prefer components that have been run end to end. `references/components.md`
  lists them with working snippets taken from the proven jobs.

## Write the Bloblang

Mappings are Bloblang. Follow `references/bloblang.md`. The errors the strict
validator reports most often in this catalog are:

- A variable read without its `$`: after `let line = ...`, write `$line`, not
  `line` (a bare name is a field path).
- `let` or `meta` inside an `if`/`else`/`match` used as an **expression**
  (`root = if ... { let x = ... }`). Hoist the `let` above the expression.
- Wrong argument counts: `filter`, `map_each`, `or`, `merge`, `re_find_all`
  each take **one** argument; `filter`/`map_each` take a lambda
  (`x -> x > 10`).
- `this.items[0]` style dynamic indexing: use `this.items.index(0)`.
- Methods that don't exist at v2.1.21, such as `ts_add`,
  `format_timestamp_iso8601`, `parse_timestamp_iso8601`. Only use methods you
  have seen validate; check <https://docs.expanso.io/guides/bloblang/methods>.

## Hand it over

1. Save the file (default `pipeline.yaml`) and put a header comment on it:
   what it does, which values to edit, which env vars must be set on the node,
   and what leaves the host.
2. Validate it with the `validate-expanso-pipeline` skill. Do not report the
   pipeline as done until `expanso-edge validate` passes, and if the CLIs are
   not installed, say plainly that it is unvalidated.
3. Tell the user, in one short list: what leaves the node and to where,
   which env vars to set on the node, and that it has not been executed yet.
   Offer the `deploy-expanso-job` skill to run it.

Never claim a pipeline "works" or "is production ready" on validation alone.
Validation is not execution.

From expanso-io/skills.expanso.io, MIT.

More from expanso-io/skills.expanso.io

Signals

Stars
0
Forks
1
Open issues
0
Last commit (this folder)
Sep 26, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
Website
expanso.io
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from expanso-io

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get build-expanso-pipeline running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying build-expanso-pipeline?

CallGet help
Cite this page

build-expanso-pipeline skill. Agent Mart. https://agentmart.dev/skills/expanso-io-build-expanso-pipeline (last updated 2026-10-24)