Skip to content

Example catalogue

The demo/ bundle contains 38 runnable tasks across 11 categories. Each is a self-contained .webtask recipe you can read in under a minute.


Run any example

# Start the server with the demo bundle
WEBTASKS_BUNDLE=$(pwd)/demo webtasks &

# List everything
curl -s http://127.0.0.1:8765/tasks | python3 -m json.tool

# Run any task by name
curl -s -X POST http://127.0.0.1:8765/tasks/basics/title \
  -H 'Content-Type: application/json' -d '{}'

# Stream live progress with SSE
curl -N -X POST http://127.0.0.1:8765/tasks/streaming/progress \
  -H 'Accept: text/event-stream' -d '{}'

The server hot-reloads the bundle on every request — edit a recipe and re-call it, no restart.


Browse by category

  • Basics · 5 tasks


    title · screenshot · inline-js · save-html · wait-then-click

  • Crawl & scrape · 5 tasks


    hackernews-top · github-trending · wikipedia-toc · trending-papers · quotes-paginated

  • Search · 2 tasks


    duckduckgo · hn-search

  • Interaction · 2 tasks


    form-fill · scroll-feed

  • Streaming (SSE) · 1 task


    progress

  • JS modules · 3 tasks


    meta-tags · page-stats · all-links

  • Downloads · 1 task


    grab-image

  • Rendering · 5 tasks


    pdf · snapshot · fullpage-shot · html-to-pdf · emulate-dark

  • Network · 4 tasks


    capture · cookies · console · idle

  • Backend & export · 4 tasks


    http-get · http-post · export-csv · export-formats

  • Control flow · 5 tasks


    call · loop · loop-fn · await-js · record-step

  • Recording · 1 task


    record

  • Real-world: Concio · 10+ tasks


    A production logged-in scrape: secrets, persistent sessions, blob capture.


Suggested learning path

Follow this order if you're new to webtasks:

  1. Basics → title — smallest possible task
  2. Basics → screenshot — capture a PNG
  3. Crawl → hackernews-top — list extraction
  4. Search → duckduckgo — input templating
  5. Interaction → form-fill — typing and clicking
  6. Streaming → progress — live SSE events
  7. Control → call — compose tasks
  8. Recording → record — GIF screencast

Hot-reload

The server reloads recipes from the bundle on every request. Edit any .webtask file under demo/tasks/, then immediately re-run — no restart needed.

The demo pool runs 3 concurrent windows so several tasks can run in parallel. → Pools & sessions


Add your own

cp demo/tasks/basics/title.webtask demo/tasks/basics/my-task.webtask
# edit the task name + steps, then call it
curl -s -X POST localhost:8765/tasks/basics/my-task -d '{}'

Learn the language: Writing tasks · Actions reference · Recipes