Internal site. Jolli authentication required to view.
Skip to Content
🛠️ SDKs and APIsCli Reference

Last Updated: 3/19/2026


CLI Reference (fda)

The fda command-line tool provides a convenient interface for managing Feldera pipelines from the terminal. This guide covers installation, configuration, and common workflows.

Installation

Quick Install

Linux:

curl -fsSL https://feldera.com/install-fda | bash

Supported platforms:

  • linux-x86_64
  • linux-aarch64

Requires glibc >= 2.39 (Ubuntu 24.04+, Debian 13+, Fedora 40+, RHEL 10+).

Windows:

powershell -ExecutionPolicy Bypass -NoProfile -c "irm https://feldera.com/install-fda.ps1 | iex"

Supported platforms:

  • windows-x86_64
  • windows-arm64 (via emulation)

Requires Windows 10 or later with PowerShell 5.1+. Installs fda.exe to %USERPROFILE%\.feldera\bin and adds it to the user’s PATH.

Installing a Specific Version

To install a specific version, pass the release git tag to the install script:

Linux:

curl -fsSL https://feldera.com/install-fda | FDA_VERSION=v0.270.0 bash

Windows:

powershell -c "$env:FDA_VERSION='v0.270.0'; irm https://feldera.com/install-fda.ps1 | iex"

Custom Installation Directory

Linux:

curl -fsSL https://feldera.com/install-fda | FDA_VERSION=v0.270.0 FELDERA_INSTALL=/opt/feldera bash

Windows:

powershell -c "$env:FELDERA_INSTALL='C:\tools\feldera'; irm https://feldera.com/install-fda.ps1 | iex"

Using Cargo (macOS and other platforms)

If you have Rust installed, you can install fda using Cargo:

# Install from crates.io cargo install fda # Install from GitHub main branch cargo install --git https://github.com/feldera/feldera fda # Install from local repository cd crates/fda cargo install --path .

Shell Completion

Enable command completion for your shell:

Bash:

echo "source <(COMPLETE=bash fda)" >> ~/.bashrc

Zsh:

echo "source <(COMPLETE=zsh fda)" >> ~/.zshrc

Fish:

echo "source (COMPLETE=fish fda | psub)" >> ~/.config/fish/config.fish

PowerShell:

mkdir -Force (Split-Path $PROFILE) '$env:COMPLETE="powershell"; (fda | Out-String) | Invoke-Expression; Remove-Item Env:\COMPLETE -ErrorAction SilentlyContinue' >> $PROFILE . $PROFILE

Configuration

Connecting to Feldera

Configure the Feldera host and authentication using environment variables or command-line arguments.

Environment variables:

export FELDERA_HOST=https://try.feldera.com export FELDERA_API_KEY=apikey:your_key_here

Command-line arguments:

fda --host https://try.feldera.com --auth apikey:your_key_here pipelines

Creating API Keys

To create an API key for authentication:

  1. Log into the Feldera Web Console
  2. Click on your profile in the top right
  3. Go to Manage API Keys
  4. Click Generate new key

Common Commands

List Pipelines

# List all pipelines fda pipelines

Create a Pipeline

# Create from a SQL file fda create my_pipeline program.sql # Create from stdin echo "CREATE TABLE example (id INT);" | fda create my_pipeline -s

Example SQL file:

-- program.sql CREATE TABLE orders ( order_id BIGINT NOT NULL PRIMARY KEY, customer_id BIGINT, amount DECIMAL(10, 2) ) WITH ('materialized' = 'true'); CREATE MATERIALIZED VIEW total_revenue AS SELECT SUM(amount) AS revenue FROM orders;

Get Pipeline Program

# Get the SQL program for a pipeline fda program get my_pipeline # Copy program from one pipeline to another fda program get pipeline1 | fda create pipeline2 -s

Configure a Pipeline

# Enable storage for a pipeline fda set-config my_pipeline storage true # Disable storage fda set-config my_pipeline storage false

Add UDF Code

# Add Rust UDF code to a pipeline fda program set my_pipeline --udf-toml udf.toml --udf-rs udf.rs

Start and Stop Pipelines

# Start a pipeline fda start my_pipeline # Stop a pipeline fda shutdown my_pipeline # Restart a pipeline fda restart my_pipeline

Pipeline Status and Statistics

# Get pipeline statistics fda stats my_pipeline # View pipeline logs fda logs my_pipeline

Transactions

# Start a transaction fda start-transaction my_pipeline # Commit a transaction fda commit-transaction my_pipeline

Support Bundle

# Download a support bundle for debugging fda support-bundle my_pipeline

Delete a Pipeline

# Delete a pipeline (must be stopped first) fda delete my_pipeline

Ad-Hoc SQL Queries

Execute SQL queries on a running or paused pipeline:

# Execute a query fda exec my_pipeline "SELECT * FROM total_revenue;" # Execute from stdin cat query.sql | fda exec my_pipeline -s # Execute from a file fda exec my_pipeline -s < query.sql

Query Examples

# Insert data fda exec my_pipeline "INSERT INTO orders VALUES (1, 100, 99.99);" # Query results fda exec my_pipeline "SELECT * FROM orders WHERE amount > 50;" # Delete data fda exec my_pipeline "DELETE FROM orders WHERE order_id = 1;"

Interactive Shell

The fda shell provides an interactive environment for working with a pipeline:

# Enter the shell for a pipeline fda shell my_pipeline

Inside the shell, you can:

  • Execute SQL queries without repeating the pipeline name
  • Use shell commands like start, restart, shutdown
  • Type help for available commands

Example shell session:

fda> SELECT * FROM total_revenue; +----------+ | revenue | +----------+ | 1499.95 | +----------+ fda> INSERT INTO orders VALUES (2, 101, 149.99); 1 row inserted fda> SELECT * FROM total_revenue; +----------+ | revenue | +----------+ | 1649.94 | +----------+ fda> help Available commands: start - Start the pipeline restart - Restart the pipeline shutdown - Shutdown the pipeline help - Show this help message exit - Exit the shell fda> exit

Common Workflows

Create and Run a Pipeline

# Create the pipeline echo "CREATE TABLE events (id INT, msg VARCHAR);" > program.sql fda create my_pipeline program.sql # Start the pipeline fda start my_pipeline # Insert data fda exec my_pipeline "INSERT INTO events VALUES (1, 'Hello');" # Query results fda exec my_pipeline "SELECT * FROM events;" # Stop and delete fda shutdown my_pipeline fda delete my_pipeline

Copy a Pipeline

# Copy pipeline configuration from one to another fda program get source_pipeline | fda create target_pipeline -s

Monitor a Running Pipeline

# Watch statistics in real-time watch -n 1 fda stats my_pipeline # Tail logs fda logs my_pipeline | tail -f

Debug a Pipeline

# Get detailed statistics fda stats my_pipeline # View recent logs fda logs my_pipeline # Download support bundle fda support-bundle my_pipeline

Working with Multiple Environments

You can manage multiple Feldera environments by switching the FELDERA_HOST and FELDERA_API_KEY environment variables:

# Development environment export FELDERA_HOST=http://localhost:8080 fda pipelines # Production environment export FELDERA_HOST=https://prod.example.com export FELDERA_API_KEY=apikey:prod_key fda pipelines # Or use command-line arguments fda --host https://staging.example.com --auth apikey:staging_key pipelines

Tips and Best Practices

Use Shell Aliases

Create aliases for frequently used commands:

# Add to ~/.bashrc or ~/.zshrc alias fda-local='fda --host http://localhost:8080' alias fda-prod='fda --host https://prod.example.com --auth apikey:prod_key'

Script Pipeline Management

Automate pipeline creation and management with shell scripts:

#!/bin/bash # deploy-pipeline.sh PIPELINE_NAME="my_pipeline" SQL_FILE="program.sql" # Create or update pipeline fda delete $PIPELINE_NAME 2>/dev/null || true fda create $PIPELINE_NAME $SQL_FILE # Enable storage fda set-config $PIPELINE_NAME storage true # Start pipeline fda start $PIPELINE_NAME echo "Pipeline $PIPELINE_NAME deployed successfully"

Combine with Other Tools

Use fda with standard Unix tools:

# Count pipelines fda pipelines | wc -l # Find pipelines by name fda pipelines | grep "production" # Export pipeline SQL to file fda program get my_pipeline > backup.sql # Process query results with jq fda exec my_pipeline "SELECT * FROM orders;" | jq '.[] | select(.amount > 100)'

Troubleshooting

Connection Issues

If you can’t connect to Feldera:

# Verify the host is reachable curl $FELDERA_HOST/v0/pipelines # Check environment variables echo $FELDERA_HOST echo $FELDERA_API_KEY # Test with explicit parameters fda --host http://localhost:8080 pipelines

Authentication Errors

If you get authentication errors:

  1. Verify your API key is correct
  2. Check that the API key hasn’t expired
  3. Ensure you have the necessary permissions

Command Not Found

If fda is not found after installation:

Linux/macOS:

# Add to PATH export PATH="$HOME/.feldera/bin:$PATH" # Or reinstall curl -fsSL https://feldera.com/install-fda | bash

Windows:

Restart your terminal or run:

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","User")

What’s Next

  • Python Sdk: Learn how to manage pipelines programmatically using the Feldera Python SDK
  • First Pipeline: Create a complete data pipeline with SQL tables, views, and connectors
  • REST API Overview: Explore the full REST API for programmatic pipeline management