Skip to content

Atomic

Low-level primitives: file I/O, git, HTTP, shell, SSH, process management, and testing.

44 modules

ModuleDescription
Array filternArray-Elemente nach Bedingung filtern
Array sortierenArray-Elemente auf- oder absteigend sortieren
Array eindeutigDoppelte Werte aus Array entfernen
OAuth2 Token ExchangeExchange authorization code, refresh token, or client credentials for an access token
DNS-AbfrageDNS-Abfrage für Domain-Einträge
TextunterschiedErzeuge einen Unterschied zwischen zwei Textzeichenfolgen
Datei bearbeitenErsetze Text in einer Datei durch exakte Zeichenfolgensuche
Datei-Existenz prüfenPrüfen, ob eine Datei oder ein Verzeichnis existiert
Datei lesenInhalt aus einer Datei lesen
Datei schreibenInhalt in eine Datei schreiben
Git KlonenEin Git-Repository klonen
Git-CommitEinen Git-Commit erstellen
Git-DiffGit-Diff abrufen
HTTP PaginateAutomatically iterate through paginated API endpoints and collect all results
HTTP-AnfrageHTTP-Anfrage senden und Antwort empfangen
HTTP-Antwort bestätigenHTTP-Antwort-Eigenschaften bestätigen und validieren
HTTP SessionSend a sequence of HTTP requests with persistent cookies (login → action → logout)
Webhook WaitStart a temporary server and wait for an incoming webhook callback
LLM-ChatMit LLM-APIs für intelligente Operationen interagieren
KI-Code-KorrekturAutomatisch Code-Korrekturen basierend auf Problemen generieren
BerechnenGrundlegende mathematische Operationen durchführen
HTTP-GesundheitscheckHTTP-Gesundheitscheck / Verfügbarkeitsmonitor
Port prüfenPrüfen, ob Netzwerk-Port(s) offen oder geschlossen sind
Auf Port wartenAuf Verfügbarkeit eines Netzwerk-Ports warten
Prozesse auflistenAlle laufenden Hintergrundprozesse auflisten
Hintergrundprozess startenHintergrundprozess starten (Server, Dienst usw.)
Prozess stoppenLaufenden Hintergrundprozess stoppen
Shell-Befehl ausführenShell-Befehl ausführen und Ausgabe erfassen
SSH AusführenBefehl auf entferntem Server via SSH ausführen
SFTP HerunterladenDatei von entferntem Server via SFTP herunterladen
SFTP HochladenDatei auf entfernten Server via SFTP hochladen
E2E-Schritte ausführenEnd-to-End-Testschritte sequentiell ausführen
Qualitäts-GateQualitätsmetriken gegen definierte Schwellenwerte auswerten
HTTP-Tests ausführenHTTP-API-Testsuite ausführen
Linter ausführenLinting-Prüfungen auf Quellcode ausführen
Bericht generierenTestausführungsbericht generieren
Szenario ausführenSzenariobasierten Test ausführen (BDD-Stil)
SicherheitsscanAuf Sicherheitslücken scannen
Testsuite ausführenTestsammlung ausführen
Unit-Tests ausführenUnit-Tests ausführen
Visueller VergleichVisuelle Ausgaben auf Unterschiede vergleichen
UI-Qualität bewertenUmfassende UI-Qualitätsbewertung mit mehrdimensionaler Punktevergabe
Bild mit KI analysierenBilder mit OpenAI Vision API (GPT-4V) analysieren
Bilder vergleichenZwei Bilder vergleichen und visuelle Unterschiede identifizieren

Modules

Array filtern

array.filter

Array-Elemente nach Bedingung filtern

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
conditionselect (eq, ne, gt, gte, lt, lte, contains, startswith, endswith, regex, in, notin, exists, empty, notempty)Yes-How to compare each item against the value
valuestringYes-Value to compare each item against (leave empty for exists/empty checks)

Output:

FieldTypeDescription
filteredarrayGefiltertes Array
countnumberGefiltertes Array

Example: Filter numbers greater than 5

yaml
array: [1, 5, 10, 15, 3]
condition: gt
value: 5

Array sortieren

array.sort

Array-Elemente auf- oder absteigend sortieren

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
orderselect (asc, desc)NoascDirection to sort items

Output:

FieldTypeDescription
sortedarraySortiertes Array
countnumberSortiertes Array

Example: Sort numbers ascending

yaml
array: [5, 2, 8, 1, 9]
order: asc

Array eindeutig

array.unique

Doppelte Werte aus Array entfernen

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
preserve_orderbooleanNoTrueKeep first occurrence order

Output:

FieldTypeDescription
uniquearrayArray mit eindeutigen Werten
countnumberArray mit eindeutigen Werten
duplicates_removednumberArray mit eindeutigen Werten

Example: Remove duplicates

yaml
array: [1, 2, 2, 3, 4, 3, 5]
preserve_order: true

OAuth2 Token Exchange

auth.oauth2

Exchange authorization code, refresh token, or client credentials for an access token

Parameters:

NameTypeRequiredDefaultDescription
token_urlstringYes-OAuth2 token endpoint URL
grant_typestringNoauthorization_codeOAuth2 grant type
client_idstringYes-OAuth2 application client ID
client_secretstringNo-OAuth2 application client secret
codestringNo-Authorization code received from the OAuth2 authorization flow
redirect_uristringNo-Redirect URI used in the authorization request (must match exactly)
refresh_tokenstringNo-Refresh token for obtaining a new access token
scopestringNo-Space-separated list of OAuth2 scopes
code_verifierstringNo-PKCE code verifier for public clients
client_auth_methodstringNobodyHow to send client credentials to the token endpoint
extra_paramsobjectNo{}Additional parameters to include in the token request
timeoutnumberNo15Maximum time to wait in seconds

Output:

FieldTypeDescription
okbooleanWhether token exchange was successful
access_tokenstringThe access token for API requests
token_typestringToken type (usually "Bearer")
expires_innumberToken lifetime in seconds
refresh_tokenstringRefresh token (if provided by the OAuth2 server)
scopestringGranted scopes
rawobjectFull raw response from the token endpoint
duration_msnumberRequest duration in milliseconds

Example: Exchange authorization code (Google)

yaml
token_url: https://oauth2.googleapis.com/token
grant_type: authorization_code
client_id: ${env.GOOGLE_CLIENT_ID}
client_secret: ${env.GOOGLE_CLIENT_SECRET}
code: 4/0AX4XfWh...
redirect_uri: https://yourapp.com/callback

Example: Refresh an expired token

yaml
token_url: https://oauth2.googleapis.com/token
grant_type: refresh_token
client_id: ${env.GOOGLE_CLIENT_ID}
client_secret: ${env.GOOGLE_CLIENT_SECRET}
refresh_token: ${env.REFRESH_TOKEN}

Example: Client credentials (machine-to-machine)

yaml
token_url: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
grant_type: client_credentials
client_id: ${env.AZURE_CLIENT_ID}
client_secret: ${env.AZURE_CLIENT_SECRET}
scope: https://graph.microsoft.com/.default

Example: GitHub OAuth (code exchange)

yaml
token_url: https://github.com/login/oauth/access_token
grant_type: authorization_code
client_id: ${env.GITHUB_CLIENT_ID}
client_secret: ${env.GITHUB_CLIENT_SECRET}
code: abc123...

DNS-Abfrage

dns.lookup

DNS-Abfrage für Domain-Einträge

Parameters:

NameTypeRequiredDefaultDescription
domainstringYes-Domainname zur Abfrage
record_typeselect (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV)NoADNS-Eintragstyp zur Abfrage
timeoutnumberNo10Abfrage-Zeitlimit in Sekunden

Output:

FieldTypeDescription
okbooleanWhether lookup succeeded
dataobject

Example: A record lookup

yaml
domain: example.com
record_type: A

Example: MX record lookup

yaml
domain: example.com
record_type: MX

Textunterschied

file.diff

Erzeuge einen Unterschied zwischen zwei Textzeichenfolgen

Parameters:

NameTypeRequiredDefaultDescription
originalstringYes-Originaltext
modifiedstringYes-Geänderter Text
context_linesnumberNo3Anzahl der Kontextzeilen um Änderungen herum
filenamestringNofileDateiname für den Diff-Kopf

Output:

FieldTypeDescription
diffstringEinheitliche Diff-Ausgabe
changedbooleanOb Änderungen vorhanden sind
additionsnumberAnzahl der hinzugefügten Zeilen
deletionsnumberAnzahl der gelöschten Zeilen

Example: Diff two strings

yaml
original: hello
world
modified: hello
world!
filename: test.txt

Datei bearbeiten

file.edit

Ersetze Text in einer Datei durch exakte Zeichenfolgensuche

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Pfad zur zu bearbeitenden Datei
old_stringstringYes-Text zum Finden und Ersetzen
new_stringstringYes-Ersetzungstext
replace_allbooleanNoFalseAlle Vorkommen ersetzen, nicht nur das erste
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Dateicodierung

Output:

FieldTypeDescription
pathstringPfad der bearbeiteten Datei
replacementsnumberAnzahl der vorgenommenen Ersetzungen
diffstringDiff, das zeigt, was sich geändert hat

Example: Replace string in file

yaml
path: /tmp/example.py
old_string: def hello():
new_string: def hello_world():

Datei-Existenz prüfen

file.exists

Prüfen, ob eine Datei oder ein Verzeichnis existiert

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file

Output:

FieldTypeDescription
existsbooleanOb der Pfad existiert
is_filebooleanOb der Pfad existiert
is_directorybooleanOb der Pfad existiert

Example: Check file exists

yaml
path: /tmp/data.txt

Datei lesen

file.read

Inhalt aus einer Datei lesen

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file

Output:

FieldTypeDescription
contentstringDateiinhalt
sizenumberDateiinhalt

Example: Read text file

yaml
path: /tmp/data.txt
encoding: utf-8

Datei schreiben

file.write

Inhalt in eine Datei schreiben

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
contentstringYes-Text content to write to the file
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file
modeselect (overwrite, append)NooverwriteHow to write content to the file

Output:

FieldTypeDescription
pathstringDateipfad
bytes_writtennumberDateipfad

Example: Write text file

yaml
path: /tmp/output.txt
content: Hello World
mode: overwrite

Git Klonen

git.clone

Ein Git-Repository klonen

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-Git-Repository-URL (HTTPS oder SSH)
destinationstringYes-Lokaler Pfad zum Klonen
branchstringNo-Branch nach dem Klonen auschecken
depthnumberNo-Shallow-Klon-Tiefe (für vollständiges Klonen weglassen)
tokenstringNo-Persönlicher Zugriffstoken für private Repos

Output:

FieldTypeDescription
okbooleanWhether clone succeeded
dataobject

Example: Clone public repository

yaml
url: https://github.com/user/repo.git
destination: /tmp/repo

Example: Shallow clone specific branch

yaml
url: https://github.com/user/repo.git
destination: /tmp/repo
branch: develop
depth: 1

Git-Commit

git.commit

Einen Git-Commit erstellen

Parameters:

NameTypeRequiredDefaultDescription
repo_pathstringYes-Pfad zum Git-Repository
messagestringYes-Commit-Nachricht
add_allbooleanNoFalseAlle Änderungen vor dem Commit stagen (git add -A)
filesarrayNo-Spezifische Dateien vor dem Commit stagen
author_namestringNo-Commit-Autorenname überschreiben
author_emailstringNo-Commit-Autoren-E-Mail überschreiben

Output:

FieldTypeDescription
okbooleanWhether commit succeeded
dataobject

Example: Commit all changes

yaml
repo_path: /home/user/project
message: feat: add user authentication
add_all: true

Example: Commit specific files

yaml
repo_path: /home/user/project
message: fix: correct typo in readme
files: ["README.md"]

Git-Diff

git.diff

Git-Diff abrufen

Parameters:

NameTypeRequiredDefaultDescription
repo_pathstringYes-Pfad zum Git-Repository
ref1stringNoHEADErste Referenz (Commit, Branch, Tag)
ref2stringNo-Zweite Referenz zum Vergleich
stagedbooleanNoFalseNur gestagte Änderungen anzeigen (--cached)
stat_onlybooleanNoFalseNur Dateistatistiken anzeigen (--stat)

Output:

FieldTypeDescription
okbooleanWhether diff succeeded
dataobject

Example: Show unstaged changes

yaml
repo_path: /home/user/project

Example: Compare branches

yaml
repo_path: /home/user/project
ref1: main
ref2: feature/login

Example: Show staged changes stats

yaml
repo_path: /home/user/project
staged: true
stat_only: true

HTTP Paginate

http.paginate

Automatically iterate through paginated API endpoints and collect all results

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to navigate to
methodselect (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)NoGETHTTP request method
headersobjectNo{}HTTP request headers as key-value pairs
authobjectNo-Authentication credentials for the HTTP request
strategystringNooffsetHow the API implements pagination
data_pathstringNo-Dot-notation path to the array of items in the response (e.g. "data", "results", "items")
offset_paramstringNooffsetQuery parameter name for offset
limit_paramstringNolimitQuery parameter name for page size
page_sizenumberNo100Number of items per page
page_paramstringNopageQuery parameter name for page number
start_pagenumberNo1First page number (usually 0 or 1)
cursor_paramstringNocursorQuery parameter name for cursor token
cursor_pathstringNo-Dot-notation path to the next cursor in the response (e.g. "meta.next_cursor", "pagination.next")
max_pagesnumberNo50Maximum number of pages to fetch (safety limit)
delay_msnumberNo0Milliseconds to wait between page requests (rate limiting)
timeoutnumberNo30Maximum time to wait in seconds
verify_sslbooleanNoTrueVerify SSL certificates

Output:

FieldTypeDescription
okbooleanWhether all pages were fetched successfully
itemsarrayAll collected items across all pages
total_itemsnumberTotal number of items collected
pages_fetchednumberNumber of pages fetched
duration_msnumberTotal duration in milliseconds

Example: Offset pagination (REST API)

yaml
url: https://api.example.com/users
strategy: offset
data_path: data
page_size: 100

Example: Page number pagination

yaml
url: https://api.example.com/products
strategy: page
data_path: results
page_param: page
page_size: 50
start_page: 1

Example: Cursor pagination (Slack, Notion)

yaml
url: https://api.notion.com/v1/databases/{db_id}/query
method: POST
strategy: cursor
data_path: results
cursor_path: next_cursor
cursor_param: start_cursor
auth: {"type": "bearer", "token": "${env.NOTION_TOKEN}"}

Example: Link header pagination (GitHub)

yaml
url: https://api.github.com/repos/octocat/hello-world/issues
strategy: link_header
page_size: 100
auth: {"type": "bearer", "token": "${env.GITHUB_TOKEN}"}

HTTP-Anfrage

http.request

HTTP-Anfrage senden und Antwort empfangen

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to navigate to
methodselect (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)NoGETHTTP request method
headersobjectNo{}HTTP request headers as key-value pairs
bodyanyNo-HTTP request body content (JSON, text, or form data)
queryobjectNo{}URL query string parameters as key-value pairs
content_typeselect (application/json, application/x-www-form-urlencoded, multipart/form-data, text/plain, text/html, application/xml)Noapplication/jsonContent type of the request body
authobjectNo-Authentication credentials for the HTTP request
timeoutnumberNo30Maximum time to wait in seconds
follow_redirectsbooleanNoTrueAutomatically follow HTTP redirects
verify_sslbooleanNoTrueVerify SSL certificates
response_typeselect (auto, json, text, binary)NoautoHow to parse the response body
retry_countnumberNo0Number of retries on failure or 429/503 status
retry_backoffstringNoexponentialBackoff strategy between retries
retry_delaynumberNo1Initial delay between retries in seconds

Output:

FieldTypeDescription
okbooleanOb die Anfrage erfolgreich war (2xx-Status)
statusnumberOb die Anfrage erfolgreich war (2xx-Status)
status_textstringOb die Anfrage erfolgreich war (2xx-Status)
headersobjectHTTP-Statuscode
bodyanyHTTP-Statustext
urlstringAntwortheader
duration_msnumberAntworttext (geparste JSON oder Text)
content_typestringEndgültige URL (nach Weiterleitungen)
content_lengthnumberAntwort-Content-Type

Example: Simple GET request

yaml
url: https://api.example.com/users
method: GET

Example: POST with JSON body

yaml
url: https://api.example.com/users
method: POST
body: {"name": "John", "email": "john@example.com"}

Example: Request with Bearer auth

yaml
url: https://api.example.com/protected
method: GET
auth: {"type": "bearer", "token": "${env.API_TOKEN}"}

Example: Request with query params

yaml
url: https://api.example.com/search
method: GET
query: {"q": "flyto", "limit": 10}

HTTP-Antwort bestätigen

http.response_assert

HTTP-Antwort-Eigenschaften bestätigen und validieren

Parameters:

NameTypeRequiredDefaultDescription
responseobjectYes-HTTP response object from http.request
statusanyNo-Expected status code (number, array of numbers, or range string "200-299")
body_containsanyNo-String or array of strings that body should contain
body_not_containsanyNo-String or array of strings that body should NOT contain
body_matchesstringYes-Regular expression pattern
json_pathobjectNo-Object mapping JSON paths to expected values (e.g., {"data.id": 123})
json_path_existsarrayNo-Array of JSON paths that should exist
header_containsobjectNo-Object mapping header names to expected values
content_typeselect (application/json, application/x-www-form-urlencoded, multipart/form-data, text/plain, text/html, application/xml)No-Content type of the request body
max_duration_msnumberNo-Maximum allowed response time in milliseconds
schemaobjectNo-JSON Schema to validate response body against
fail_fastbooleanNoFalseStop on first assertion failure

Output:

FieldTypeDescription
okbooleanOb alle Bestätigungen bestanden wurden
passednumberOb alle Bestätigungen bestanden wurden
failednumberOb alle Bestätigungen bestanden wurden
totalnumberAnzahl der bestandenen Bestätigungen
assertionsarrayAnzahl der fehlgeschlagenen Bestätigungen
errorsarrayDetaillierte Bestätigungsergebnisse

Example: Assert status 200

yaml
response: ${http_request.result}
status: 200

Example: Assert JSON structure

yaml
response: ${http_request.result}
status: 200
json_path: {"data.id": "${expected_id}", "data.name": "John"}
json_path_exists: ["data.created_at", "data.email"]

Example: Assert API response

yaml
response: ${api_result}
status: [200, 201]
content_type: application/json
max_duration_ms: 1000
json_path: {"success": true}

HTTP Session

http.session

Send a sequence of HTTP requests with persistent cookies (login → action → logout)

Parameters:

NameTypeRequiredDefaultDescription
requestsarrayYes-Ordered list of HTTP requests to execute with shared cookies
authobjectNo-Authentication applied to all requests in the session
stop_on_errorbooleanNoTrueStop executing remaining requests if one fails (non-2xx)
timeoutnumberNo30Maximum time per individual request
verify_sslbooleanNoTrueVerify SSL certificates

Output:

FieldTypeDescription
okbooleanWhether all requests succeeded
resultsarrayResults from each request in order
cookiesobjectFinal session cookies as key-value pairs
duration_msnumberTotal duration in milliseconds

Example: Login and fetch data

yaml
requests: [{"label": "Login", "url": "https://example.com/api/login", "method": "POST", "body": {"username": "${env.USER}", "password": "${env.PASS}"}}, {"label": "Get Profile", "url": "https://example.com/api/profile", "method": "GET"}]
stop_on_error: true

Example: CSRF token flow

yaml
requests: [{"label": "Get CSRF Token", "url": "https://example.com/csrf-token", "method": "GET"}, {"label": "Submit Form", "url": "https://example.com/api/submit", "method": "POST", "body": {"data": "value"}}]

Webhook Wait

http.webhook_wait

Start a temporary server and wait for an incoming webhook callback

Parameters:

NameTypeRequiredDefaultDescription
pathstringNo/webhookURL path to listen on (e.g. /webhook, /callback)
portnumberNo0Port to listen on (0 = auto-assign)
timeoutnumberNo300Maximum time to wait for the webhook callback
use_ngrokbooleanNoFalseCreate an ngrok tunnel for public access (requires pyngrok)
ngrok_tokenstringNo-ngrok authentication token (free at ngrok.com)
expected_methodstringNoPOSTOnly accept this HTTP method (empty = accept any)
response_statusnumberNo200HTTP status code to respond with when webhook is received
response_bodystringNo{"ok": true}Response body to send back to the webhook caller

Output:

FieldTypeDescription
okbooleanWhether webhook was received before timeout
webhook_urlstringThe URL to send webhooks to (public if ngrok enabled)
methodstringHTTP method of the received webhook
headersobjectHeaders from the received webhook
bodyanyBody from the received webhook (parsed JSON or raw text)
queryobjectQuery parameters from the received webhook
duration_msnumberTime waited for the webhook in milliseconds

Example: Wait for Stripe webhook (local)

yaml
path: /webhook/stripe
port: 8765
timeout: 120
use_ngrok: false

Example: Wait for webhook with ngrok tunnel

yaml
path: /webhook
timeout: 300
use_ngrok: true
ngrok_token: ${env.NGROK_AUTH_TOKEN}

LLM-Chat

llm.chat

Mit LLM-APIs für intelligente Operationen interagieren

Parameters:

NameTypeRequiredDefaultDescription
promptstringYes-The prompt or question to send to the AI model
system_promptstringNo-System instructions to set AI behavior and context
contextobjectNo-Additional context data to include
messagesarrayNo-Previous messages for multi-turn conversation
providerselect (openai, anthropic, ollama)NoopenaiAI model provider
modelstringNogpt-4oSpecific model to use
temperaturenumberNo0.7Creativity level (0=deterministic, 1=creative)
max_tokensnumberNo2000Maximum tokens in response
response_formatselect (text, json, code, markdown)NotextExpected format of the AI response
api_keystringNo-API key (defaults to provider env var)
base_urlstringNo-Custom API base URL (for Ollama or proxies)

Output:

FieldTypeDescription
okbooleanOb die Anfrage erfolgreich war
responsestringOb die Anfrage erfolgreich war
parsedanyOb die Anfrage erfolgreich war
modelstringDer LLM-Antworttext
tokens_usednumberGeparste Antwort (wenn JSON-Format angefordert)
finish_reasonstringVerwendetes Modell

Example: Code Review

yaml
prompt: Review this code for bugs and improvements:

${code}
system_prompt: You are an expert code reviewer. Be specific and actionable.
model: gpt-4o

Example: Generate Fix

yaml
prompt: The UI evaluation found these issues: ${issues}

Generate code fixes.
system_prompt: You are a frontend developer. Return only valid code.
response_format: code

Example: Decision Making

yaml
prompt: Based on these test results, should we deploy? ${test_results}
system_prompt: You are a DevOps engineer. Return JSON: {"decision": "yes/no", "reason": "..."}
response_format: json

KI-Code-Korrektur

llm.code_fix

Automatisch Code-Korrekturen basierend auf Problemen generieren

Parameters:

NameTypeRequiredDefaultDescription
issuesarrayYes-List of issues to fix (from ui.evaluate, test results, etc.)
source_filesarrayYes-Files to analyze and potentially fix
fix_modeselect (suggest, apply, dry_run)NosuggestHow to handle the suggested fixes
backupbooleanNoTrueCreate .bak backup before modifying files
contextstringNo-Text content to process
modelstringNogpt-4oSpecific model to use
api_keystringNo-API key (defaults to provider env var)

Output:

FieldTypeDescription
okbooleanOb die Operation erfolgreich war
fixesarrayOb die Operation erfolgreich war
appliedarrayOb die Operation erfolgreich war
failedarrayListe der generierten Korrekturen
summarystringListe der angewandten Korrekturen (wenn fix_mode apply ist)

Example: Fix UI Issues

yaml
issues: ${ui_evaluation.issues}
source_files: ["./src/components/Footer.tsx", "./src/styles/footer.css"]
fix_mode: suggest
context: React + Tailwind CSS project

Example: Auto-fix and Apply

yaml
issues: ${test_results.failures}
source_files: ["./src/App.tsx"]
fix_mode: apply
backup: true

Berechnen

math.calculate

Grundlegende mathematische Operationen durchführen

Parameters:

NameTypeRequiredDefaultDescription
operationselect (add, subtract, multiply, divide, power, modulo, sqrt, abs)Yes-Operation to perform
anumberYes-First operand
bnumberNo-Second operand (not required for sqrt and abs)
precisionnumberNo2Number of decimal places

Output:

FieldTypeDescription
resultnumberBerechnungsergebnis
operationstringBerechnungsergebnis
expressionstringBerechnungsergebnis

Example: Add two numbers

yaml
operation: add
a: 10
b: 5

Example: Calculate power

yaml
operation: power
a: 2
b: 8

HTTP-Gesundheitscheck

monitor.http_check

HTTP-Gesundheitscheck / Verfügbarkeitsmonitor

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-Zu überprüfende URL
methodselect (GET, HEAD, POST)NoGETHTTP-Methode
expected_statusnumberNo200Erwarteter HTTP-Statuscode
timeout_msnumberNo10000Anfrage-Timeout in Millisekunden
headersobjectNo-Benutzerdefinierte Anfrage-Header
bodystringNo-Anfrage-Body (für POST)
check_sslbooleanNoTrueSSL-Zertifikatsgültigkeit und Ablauf prüfen
containsstringNo-Antwort-Body muss diesen String enthalten
follow_redirectsbooleanNoTrueHTTP-Weiterleitungen folgen

Output:

FieldTypeDescription
okbooleanWhether check completed
dataobject

Example: Basic health check

yaml
url: https://api.example.com/health
expected_status: 200

Example: Check with content validation

yaml
url: https://api.example.com/health
contains: "status":"ok"
timeout_ms: 5000

Port prüfen

port.check

Prüfen, ob Netzwerk-Port(s) offen oder geschlossen sind

Parameters:

NameTypeRequiredDefaultDescription
portanyYes-Portnummer oder Array von Ports zum Prüfen
hoststringNolocalhostPortnummer oder Array von Ports zum Prüfen
connect_timeoutnumberNo2Host zum Verbinden
expect_openbooleanNo-Timeout für jeden Verbindungsversuch

Output:

FieldTypeDescription
okbooleanAuf true setzen, um offene Ports zu bestätigen, false für geschlossene
resultsarrayOb alle Prüfungen bestanden wurden (wenn expect_open gesetzt ist)
open_portsarrayOb alle Prüfungen bestanden wurden (wenn expect_open gesetzt ist)
closed_portsarrayArray von Port-Prüfungsergebnissen
summaryobjectListe der offenen Ports

Example: Check single port

yaml
port: 3000

Example: Check multiple ports

yaml
port: [3000, 8080, 5432]
host: localhost

Example: Assert ports are open

yaml
port: [80, 443]
host: example.com
expect_open: true

Auf Port warten

port.wait

Auf Verfügbarkeit eines Netzwerk-Ports warten

Parameters:

NameTypeRequiredDefaultDescription
portnumberYes-Portnummer zum Warten
hoststringNolocalhostHost zum Verbinden
timeoutnumberNo60Host zum Verbinden
intervalnumberNo500Maximale Wartezeit
expect_closedbooleanNoFalseZeit zwischen Verbindungsversuchen in Millisekunden

Output:

FieldTypeDescription
okbooleanStattdessen auf Nichtverfügbarkeit des Ports warten
availablebooleanOb Port im erwarteten Zustand ist
hoststringOb Port im erwarteten Zustand ist
portnumberOb Port aktuell verfügbar ist
wait_time_msnumberHost, der geprüft wurde
attemptsnumberPort, der geprüft wurde

Example: Wait for dev server

yaml
port: 3000
timeout: 30

Example: Wait for database

yaml
port: 5432
host: localhost
timeout: 60

Example: Wait for port to close

yaml
port: 8080
expect_closed: true
timeout: 10

Prozesse auflisten

process.list

Alle laufenden Hintergrundprozesse auflisten

Parameters:

NameTypeRequiredDefaultDescription
filter_namestringNo-Filter processes by name (substring match)
include_statusbooleanNoTrueInclude running/stopped status check for each process

Output:

FieldTypeDescription
okbooleanOperationserfolg
processesarrayOperationserfolg
countnumberOperationserfolg
runningnumberListe von Prozessinformationen
stoppednumberGesamtanzahl der Prozesse

Example: List all processes

yaml

Example: Filter by name

yaml
filter_name: dev

Hintergrundprozess starten

process.start

Hintergrundprozess starten (Server, Dienst usw.)

Parameters:

NameTypeRequiredDefaultDescription
commandstringYes-Shell command to execute
cwdstringNo-Directory to execute command in
envobjectNo-Additional environment variables to set
namestringNo-Friendly name to identify the process
wait_for_outputstringNo-String to wait for in stdout before returning
wait_timeoutnumberNo60Maximum time to wait in seconds
capture_outputbooleanNoTrueCapture stdout/stderr output from the process
log_filestringNo-File path to write process output to
auto_restartbooleanNoFalseAutomatically restart the process if it exits

Output:

FieldTypeDescription
okbooleanOb Prozess erfolgreich gestartet wurde
pidnumberOb Prozess erfolgreich gestartet wurde
process_idstringOb Prozess erfolgreich gestartet wurde
namestringProzess-ID
commandstringInterne Prozesskennung für process.stop
cwdstringProzessname
started_atstringDer ausgeführte Befehl
initial_outputstringISO-Zeitstempel wann Prozess gestartet wurde

Example: Start dev server

yaml
command: npm run dev
cwd: ./frontend
name: frontend-dev
wait_for_output: ready on
wait_timeout: 30

Example: Start Python HTTP server

yaml
command: python -m http.server 8000
name: static-server

Example: Start with environment

yaml
command: node server.js
env: {"PORT": "3000", "NODE_ENV": "test"}
name: api-server
wait_for_output: listening

Prozess stoppen

process.stop

Laufenden Hintergrundprozess stoppen

Parameters:

NameTypeRequiredDefaultDescription
process_idstringNo-Internal process identifier (from process.start)
namestringNo-Friendly name to identify the process
pidnumberNo-System process ID (PID) of the process
signalselect (SIGTERM, SIGKILL, SIGINT)NoSIGTERMSignal to send to the process
timeoutnumberNo10Maximum time to wait in seconds
forcebooleanNoFalseForce kill the process immediately with SIGKILL
stop_allbooleanNoFalseStop all tracked processes

Output:

FieldTypeDescription
okbooleanOb alle Prozesse erfolgreich gestoppt wurden
stoppedarrayOb alle Prozesse erfolgreich gestoppt wurden
failedarrayListe der gestoppten Prozessinfos
countnumberListe der gestoppten Prozessinfos

Example: Stop by process ID

yaml
process_id: ${start_result.process_id}

Example: Stop by name

yaml
name: dev-server

Example: Force kill by PID

yaml
pid: 12345
force: true

Example: Stop all processes

yaml
stop_all: true

Shell-Befehl ausführen

shell.exec

Shell-Befehl ausführen und Ausgabe erfassen

Parameters:

NameTypeRequiredDefaultDescription
commandstringYes-Shell command to execute
cwdstringNo-Directory to execute command in
envobjectNo-Additional environment variables to set
timeoutnumberNo300Maximum time to wait in seconds
shellbooleanNoFalseExecute command through shell (enables pipes, redirects)
capture_stderrbooleanNoTrueCapture stderr separately from stdout
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file
raise_on_errorbooleanNoFalseRaise exception if command returns non-zero exit code

Output:

FieldTypeDescription
okbooleanOb Befehl erfolgreich ausgeführt wurde (Exit-Code 0)
exit_codenumberOb Befehl erfolgreich ausgeführt wurde (Exit-Code 0)
stdoutstringOb Befehl erfolgreich ausgeführt wurde (Exit-Code 0)
stderrstringBefehls-Exit-Code
commandstringStandardausgabe
cwdstringStandardfehlerausgabe
duration_msnumberDer ausgeführte Befehl

Example: Run npm install

yaml
command: npm install
cwd: ./my-project

Example: Run tests with pytest

yaml
command: python -m pytest tests/ -v
timeout: 120

Example: Git status

yaml
command: git status --porcelain

Example: Build project

yaml
command: npm run build
cwd: ./frontend
env: {"NODE_ENV": "production"}

SSH Ausführen

ssh.exec

Befehl auf entferntem Server via SSH ausführen

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-SSH-Server-Hostname oder IP
portnumberNo22SSH-Port
usernamestringYes-SSH-Benutzername
passwordstringNo-SSH-Passwort
private_keystringNo-Privater Schlüssel im PEM-Format
commandstringYes-Befehl auf entferntem Server ausführen
timeoutnumberNo30Befehlszeitüberschreitung in Sekunden

Output:

FieldTypeDescription
okbooleanWhether command succeeded
dataobject

Example: List files on remote server

yaml
host: 192.168.1.100
username: deploy
command: ls -la /var/www

Example: Restart service

yaml
host: 10.0.0.5
username: root
command: systemctl restart nginx

SFTP Herunterladen

ssh.sftp_download

Datei von entferntem Server via SFTP herunterladen

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-SSH-Server-Hostname oder IP
portnumberNo22SSH-Port
usernamestringYes-SSH-Benutzername
passwordstringNo-SSH-Passwort
private_keystringNo-Privater Schlüssel im PEM-Format
remote_pathstringYes-Pfad zur Datei auf dem Remote-Server
local_pathstringYes-Zielpfad auf dem lokalen Rechner

Output:

FieldTypeDescription
okbooleanWhether download succeeded
dataobject

Example: Download server log

yaml
host: 10.0.0.5
username: deploy
remote_path: /var/log/nginx/access.log
local_path: /tmp/access.log

SFTP Hochladen

ssh.sftp_upload

Datei auf entfernten Server via SFTP hochladen

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-SSH-Server-Hostname oder IP
portnumberNo22SSH-Port
usernamestringYes-SSH-Benutzername
passwordstringNo-SSH-Passwort
private_keystringNo-Privater Schlüssel im PEM-Format
local_pathstringYes-Pfad zur lokalen Datei zum Hochladen
remote_pathstringYes-Zielpfad auf entferntem Server
overwritebooleanNoTrueVorhandene entfernte Datei überschreiben

Output:

FieldTypeDescription
okbooleanWhether upload succeeded
dataobject

Example: Upload deployment archive

yaml
host: 10.0.0.5
username: deploy
local_path: /tmp/app.tar.gz
remote_path: /opt/releases/app.tar.gz

E2E-Schritte ausführen

testing.e2e.run_steps

End-to-End-Testschritte sequentiell ausführen

Parameters:

NameTypeRequiredDefaultDescription
stepsarrayYes-Array von Testschritt-Definitionen
stop_on_failurebooleanNoTrueWhether to stop on failure
timeout_per_stepnumberNo30000Timeout Per Step value

Output:

FieldTypeDescription
okbooleanOb die Operation erfolgreich war
passednumberOb die Operation erfolgreich war
failednumberOb die Operation erfolgreich war
resultsarrayAnzahl der bestandenen Tests

Qualitäts-Gate

testing.gate.evaluate

Qualitätsmetriken gegen definierte Schwellenwerte auswerten

Parameters:

NameTypeRequiredDefaultDescription
metricsobjectYes-Zu bewertende Metriken
thresholdsobjectYes-Zu bewertende Metriken
fail_on_breachbooleanNoTrueWhether to fail on breach

Output:

FieldTypeDescription
okbooleanSchwellenwerte für jede Metrik
passedbooleanOb die Operation erfolgreich war
resultsarrayOb die Operation erfolgreich war
summarystringAnzahl der bestandenen Tests

HTTP-Tests ausführen

testing.http.run_suite

HTTP-API-Testsuite ausführen

Parameters:

NameTypeRequiredDefaultDescription
testsarrayYes-Array von HTTP-Test-Definitionen
base_urlstringNo-Base URL for API requests
headersobjectNo{}HTTP request headers

Output:

FieldTypeDescription
okbooleanOb die Operation erfolgreich war
passednumberOb die Operation erfolgreich war
failednumberOb die Operation erfolgreich war
resultsarrayAnzahl der bestandenen Tests

Linter ausführen

testing.lint.run

Linting-Prüfungen auf Quellcode ausführen

Parameters:

NameTypeRequiredDefaultDescription
pathsarrayYes-Zu lintende Dateien oder Verzeichnisse
linterstringNoautoLinter
fixbooleanNoFalseWhether to fix

Output:

FieldTypeDescription
okbooleanOb die Operation erfolgreich war
errorsnumberOb die Operation erfolgreich war
warningsnumberOb die Operation erfolgreich war
issuesarrayAnzahl der aufgetretenen Fehler

Bericht generieren

testing.report.generate

Testausführungsbericht generieren

Parameters:

NameTypeRequiredDefaultDescription
resultsobjectYes-Results data
formatstringNojsonFormat
titlestringNoTest ReportTitle

Output:

FieldTypeDescription
okbooleanOb die Operation erfolgreich war
reportstringOb die Operation erfolgreich war
formatstringOb die Operation erfolgreich war
summaryobjectDer Bericht

Szenario ausführen

testing.scenario.run

Szenariobasierten Test ausführen (BDD-Stil)

Parameters:

NameTypeRequiredDefaultDescription
scenarioobjectYes-Szenario-Definition mit given/when/then
contextobjectNo{}Additional context data

Output:

FieldTypeDescription
okbooleanSzenario-Definition mit given/when/then
passedbooleanOb die Operation erfolgreich war
stepsarrayOb die Operation erfolgreich war

Sicherheitsscan

testing.security.scan

Auf Sicherheitslücken scannen

Parameters:

NameTypeRequiredDefaultDescription
targetsarrayYes-Zu scannende Dateien, URLs oder Pfade
scan_typestringNoallScan Type
severity_thresholdstringNomediumSeverity Threshold

Output:

FieldTypeDescription
okbooleanOb die Operation erfolgreich war
vulnerabilitiesarrayOb die Operation erfolgreich war
summaryobjectOb die Operation erfolgreich war

Testsuite ausführen

testing.suite.run

Testsammlung ausführen

Parameters:

NameTypeRequiredDefaultDescription
testsarrayYes-Array von Test-Definitionen
parallelbooleanNoFalseWhether to parallel
max_failuresnumberNo0Array von Test-Definitionen

Output:

FieldTypeDescription
okboolean0 = kein Limit
passednumber0 = kein Limit
failednumberOb die Operation erfolgreich war
skippednumberAnzahl der bestandenen Tests
resultsarrayAnzahl der fehlgeschlagenen Tests

Unit-Tests ausführen

testing.unit.run

Unit-Tests ausführen

Parameters:

NameTypeRequiredDefaultDescription
pathsarrayYes-Pfade zu Testdateien oder Verzeichnissen
patternstringNotest_*.pyPattern
verbosebooleanNoFalseWhether to verbose

Output:

FieldTypeDescription
okbooleanOb die Operation erfolgreich war
passednumberOb die Operation erfolgreich war
failednumberOb die Operation erfolgreich war
errorsnumberAnzahl der bestandenen Tests
resultsarrayAnzahl der fehlgeschlagenen Tests

Visueller Vergleich

testing.visual.compare

Visuelle Ausgaben auf Unterschiede vergleichen

Parameters:

NameTypeRequiredDefaultDescription
actualstringYes-Pfad oder base64 des tatsächlichen Bildes
expectedstringYes-Pfad oder base64 des tatsächlichen Bildes
thresholdnumberNo0.1Pfad oder base64 des erwarteten Bildes
output_diffbooleanNoTrueWhether to output diff

Output:

FieldTypeDescription
okbooleanMaximal erlaubte Differenz (0-1)
matchbooleanOb die Operation erfolgreich war
differencenumberOb die Operation erfolgreich war
diff_imagestringDie Übereinstimmung

UI-Qualität bewerten

ui.evaluate

Umfassende UI-Qualitätsbewertung mit mehrdimensionaler Punktevergabe

Parameters:

NameTypeRequiredDefaultDescription
screenshotstringYes-Screenshot-Pfad oder URL zur Bewertung
app_typestringNoweb_appScreenshot-Pfad oder URL zur Bewertung
page_typestringNo-Typ der zu bewertenden Seite
evaluation_criteriaarrayNo['visual_design', 'usability', 'accessibility', 'consistency', 'responsiveness']Spezifische zu bewertende Kriterien (Standard: alle)
target_audiencestringNo-Beschreibung der Zielbenutzer
brand_guidelinesstringNo-Kurze Markenrichtlinien zum Prüfen
min_scorenumberNo70Mindestpunktzahl zum Bestehen (0-100)
api_keystringNo-OpenAI-API-Schlüssel (Standard: OPENAI_API_KEY env-Variable)

Output:

FieldTypeDescription
okbooleanOpenAI-API-Schlüssel (Standard: OPENAI_API_KEY env-Variable)
passedbooleanOb Bewertung erfolgreich war
overall_scorenumberOb Bewertung erfolgreich war
scoresobjectGesamte UI-Qualitätspunktzahl (0-100)
strengthsarrayGesamte UI-Qualitätspunktzahl (0-100)
issuesarrayPunktzahlen nach Bewertungskriterien
recommendationsarrayListe der UI-Stärken
summarystringSpezifische Verbesserungsempfehlungen

Example: Evaluate Dashboard

yaml
screenshot: ./screenshots/dashboard.png
app_type: dashboard
page_type: analytics dashboard
target_audience: business analysts
min_score: 75

Example: E-commerce Page Review

yaml
screenshot: ./screenshots/product.png
app_type: e_commerce
page_type: product detail
evaluation_criteria: ["usability", "cta_effectiveness", "visual_design"]

Bild mit KI analysieren

vision.analyze

Bilder mit OpenAI Vision API (GPT-4V) analysieren

Parameters:

NameTypeRequiredDefaultDescription
imagestringYes-Image file path, URL, or base64 data
promptstringYes-What to analyze in the image
analysis_typeselect (general, ui_review, accessibility, bug_detection, comparison, data_extraction)NogeneralType of analysis to perform
contextstringNo-Additional context about the image
output_formatselect (text, structured, json, checklist)NostructuredFormat of the analysis output
modelstringNogpt-4oSpecific model to use
max_tokensnumberNo1000Maximum tokens in response
api_keystringYes-API key for authentication
header_namestringNoX-API-KeyHTTP header name
detailselect (low, high, auto)NohighLevel of detail for image analysis

Output:

FieldTypeDescription
okbooleanOb Analyse erfolgreich war
analysisstringOb Analyse erfolgreich war
structuredobjectDas KI-Analyseergebnis
modelstringStrukturierte Analysedaten (wenn output_format structured/json ist)
tokens_usednumberFür Analyse verwendetes Modell

Example: UI Review

yaml
image: ./screenshots/dashboard.png
prompt: Review this dashboard UI. Evaluate: 1) Visual hierarchy 2) Color contrast 3) Button visibility 4) Overall usability. Suggest specific improvements.
analysis_type: ui_review
output_format: structured

Example: Bug Detection

yaml
image: ./screenshots/form.png
prompt: Find any visual bugs, layout issues, or broken elements in this form
analysis_type: bug_detection

Example: Accessibility Check

yaml
image: ./screenshots/page.png
prompt: Evaluate accessibility: color contrast, text readability, button sizes, clear labels
analysis_type: accessibility

Bilder vergleichen

vision.compare

Zwei Bilder vergleichen und visuelle Unterschiede identifizieren

Parameters:

NameTypeRequiredDefaultDescription
image_beforestringYes-Path to baseline/before image
image_afterstringYes-Path to current/after image
comparison_typeselect (visual_regression, layout_diff, content_diff, full_analysis)Novisual_regressionType of comparison to perform
thresholdnumberNo5Acceptable difference percentage
focus_areasarrayNo-Specific areas to focus on
ignore_areasarrayNo-Areas to ignore (dynamic content, ads, etc.)
modelstringNogpt-4oSpecific model to use
api_keystringYes-API key for authentication
header_namestringNoX-API-KeyHTTP header name

Output:

FieldTypeDescription
okbooleanOb Vergleich erfolgreich war
has_differencesbooleanOb Vergleich erfolgreich war
similarity_scorenumberOb signifikante Unterschiede gefunden wurden
differencesarrayÄhnlichkeitsprozentsatz (0-100)
summarystringListe der identifizierten Unterschiede
recommendationstringZusammenfassung der Vergleichsergebnisse

Example: Visual Regression Test

yaml
image_before: ./screenshots/baseline/home.png
image_after: ./screenshots/current/home.png
comparison_type: visual_regression
threshold: 5

Example: Layout Comparison

yaml
image_before: ./design/mockup.png
image_after: ./screenshots/implementation.png
comparison_type: layout_diff
focus_areas: ["header", "main content"]

Released under the Apache 2.0 License.