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:
- Basics → title — smallest possible task
- Basics → screenshot — capture a PNG
- Crawl → hackernews-top — list extraction
- Search → duckduckgo — input templating
- Interaction → form-fill — typing and clicking
- Streaming → progress — live SSE events
- Control → call — compose tasks
- 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