Skip to main content
Version: Next

Quick Start

Prerequisites

  • Python 3.10+ (3.11 or 3.12 recommended)
  • macOS, Linux, or WSL on Windows
  • One LLM provider credential:
    • AWS Bedrock — AWS credentials (profile, env vars, or IAM role)
    • Anthropic APIANTHROPIC_API_KEY
    • OpenAI API (or compatible) — OPENAI_API_KEY
  • (Optional) a SeaTunnel installation for engine-level validation and job execution

Install

The shell wrapper installs Python dependencies automatically on first run:

# First run — installs dependencies, launches interactive setup
bin/seatunnel-ai.sh --init

# After init, launch directly
bin/seatunnel-ai.sh

SEATUNNEL_HOME is set automatically to the distribution root.

From source

cd seatunnel-cli
bash setup.sh # installs all providers + dev tools
seatunnel --init # interactive provider setup

Configure a Provider

# Option A: AWS Bedrock (default)
export AI_PROVIDER=bedrock
export AWS_REGION=us-east-1

# Option A2: OpenAI-family Bedrock models (bedrock-mantle) — see the
# dedicated section below for the full contract
export AI_PROVIDER=bedrock-mantle
export OPENAI_MODEL='openai.gpt-5.6-terra'

# Option B: Anthropic API
export AI_PROVIDER=anthropic
export ANTHROPIC_API_KEY=sk-ant-...

# Option C: OpenAI or compatible
export AI_PROVIDER=openai
export OPENAI_API_KEY=sk-...
# export OPENAI_BASE_URL=https://... # Azure OpenAI, DeepSeek, local vLLM, ...

bedrock-mantle: OpenAI-family models on Bedrock

Some OpenAI models on Bedrock (e.g. openai.gpt-5.6-terra, openai.gpt-5.6-sol) are not in the Bedrock foundation-model catalog and only support the OpenAI Responses API on the dedicated bedrock-mantle endpoint — the regular bedrock provider (Converse API) and the openai provider (Chat Completions) cannot reach them. Use the bedrock-mantle provider:

# 1. Install the provider extra (openai SDK >= 2.45 + AWS token generator)
pip install -e ".[bedrock-mantle]"

# 2. Configure — AWS credentials only, no OpenAI account or API key needed
export AI_PROVIDER=bedrock-mantle
export AWS_REGION=us-east-1 # us-east-1 / us-east-2 / us-west-2
export OPENAI_MODEL='openai.gpt-5.6-terra' # default if unset
# export OPENAI_SMALL_FAST_MODEL='openai.gpt-5.6-terra'

# 3. Generate as usual
seatunnel "Sync MySQL users table to S3 Parquet"

Provider contract:

  • Endpoint: https://bedrock-mantle.{region}.api.aws/openai/v1 — the model-specific openai/v1 path required by these models (the generic v1 Responses path rejects them).
  • Auth: a short-term bearer token is derived automatically from your AWS credentials (profile, env vars, or IAM role) via aws-bedrock-token-generator and refreshed every 30 minutes. No long-lived key is stored anywhere.
  • Data retention: every request is sent with store=false, so Bedrock does not retain your prompts or generated configs server-side (the service default would otherwise keep them for 30 days).
  • Parameters: these models reject temperature; the provider never sends it, so any configured temperature value is not applied.
  • Errors: truncated (incomplete), failed, and refused responses raise an explicit error instead of being returned as a normal answer.

The provider fully supports the CLI's internal tool-calling loop (connector lookups during planning) and multi-turn sessions, including replay of the model's reasoning output between tool calls.

API keys are read from environment variables only — they are never written to config files.

Generate Your First Pipeline

Single-shot mode

seatunnel "Sync MySQL users table to S3 Parquet"
seatunnel "从 Kafka 读取订单数据写入 ClickHouse" -o my_job.conf

Interactive mode

seatunnel
🐬 SeaTunnel > Sync PostgreSQL orders to Doris

📋 Generated SeaTunnel Config
Config saved to: .data/last_job.conf

🐬 SeaTunnel > Add a filter to only include orders where amount > 100

📋 Generated SeaTunnel Config (updated)

🐬 SeaTunnel > /check
[1] Local validation: PASS
[2] Engine --check: PASS
Dry-run PASSED — Config is ready to execute.

🐬 SeaTunnel > /run
Job submitted: 1234567890 (orders-sync)
Status: FINISHED

Useful commands

CommandDescription
/checkValidate the last config; auto-diagnoses and fixes on failure
/runExecute via REST API or seatunnel.sh; auto-repairs on failure
/connectorsList available sources, sinks, and transforms
/remember <text>Save a non-sensitive fact (hosts, ports, database names)
/sessions, /resumeList and resume previous conversations

Tips for Good Results

  • Include connection details in the prompt (host, port, database, table): the config comes back runnable instead of full of placeholders.
  • State batch vs real-time intent explicitly ("one-off full copy" vs "capture changes continuously") — this drives BATCH/STREAMING and CDC-connector selection.
  • Credentials are placeholdered by design: generated configs reference ${MYSQL_PASSWORD}-style variables; export them before /run.
  • For scenarios the models are measurably weak at (conditional routing, PostgreSQL-CDC prerequisites, Doris/StarRocks options — see the benchmark), review the generated config before running it in production.