- browser.launchheadless412 ms
- browser.goToshop.example.com/item/421.2 s
- browser.getElement.price → price86 ms
- flow.ifConditionalprice ≤ threshold
- system.messagePrice dropped to {{ price }}
Tipeline runs browser, file, AI, SSH, email, OCR and database steps from one YAML file. Build it in the Desktop app, then run it from the CLI, a schedule, an app or your team's server.
30+ action groups, real flow control and a run history you can resume from. No glue code, no plugin hunting for the basics.
Browser automation with Puppeteer, AI prompts, SSH, email, OCR, PDF, spreadsheets, databases and more.
Chain steps with loops, conditions and approvals. Every step's result flows into the next through variables.
Each step's result is saved to SQLite. Resume a failed run from the step that failed, or step through one action at a time.
Dashboards, forms and tools with tables, charts, kanban boards, calendars and chat. No front end to write.
The Assistant finds the right workflow, fills in its inputs from your request and runs it once you confirm.
Watch a run as it happens. Each step's result streams back as soon as it finishes, in the Desktop app, the CLI or over WebSocket.
A workflow is a plain YAML file you can read, diff and share. The same file runs the same way from the CLI, the Desktop app, an app, a schedule or the Assistant.
{{ name }}inserts a value as text{= name =}passes objects and handles as they are{{ _env.KEY }}reads environment files{{ _global.name }}reads global variablesname: Price Monitor
description: Alerts when a product's price drops.
pipeline:
variables:
- name: url
type: string
required: true
visibility: public
- name: threshold
type: number
value: 50
- name: browser
type: browser
- name: price
type: string
actions:
- group: browser
name: launch
params: { headless: true }
destination: browser
- group: browser
name: goTo
params:
browser: "{= browser =}"
url: "{{ url }}"
- group: browser
name: getElement
params:
browser: "{= browser =}"
selector: ".price"
attribute: text
destination: price
- group: flow
name: ifConditional
params:
firstOperand: "{= price =}"
compareAs: number
operator: lte
secondOperand: "{= threshold =}"
actions:
- group: system
name: message
params:
text: "Price dropped to {{ price }}"The Desktop app, the CLI, Tipeline Server and AI tools all talk to the same Core engine. Use whichever fits the moment.
Build workflows and apps visually, watch runs live and manage schedules.
Desktop guide →Run workflows, inspect pipelines and control the engine from any terminal or CI job.
CLI commands →Share one Core with your team: accounts, roles, webhooks and an audit log.
Tipeline Server →Ask in plain language, or let Claude and other MCP clients find and run your workflows.
Assistant →Download the Desktop app to build visually, or install the CLI to work from the terminal.