Quick start: Coding agents

Use coding agents to scaffold, refine, and test Tinybird projects with Tinybird agent skills. The prompts below cover TypeScript SDK, Python SDK, and Tinybird CLI workflows.

Looking for other ways to start? See Quick starts.

Before you begin

To get started, you need the following:

  • A coding agent like Cursor, Claude Code, Amp, or Open Code

Install Tinybird agent skills

Install the Tinybird skills so your agent understands the project structure and the workflow you want.

npx skills add tinybirdco/tinybird-agent-skills

The Tinybird agent skills cover the CLI, TypeScript SDK, and Python SDK workflows.

Ask your agent to set up a Tinybird project

Use the following prompt with your agent:

I'm integrating Tinybird Forward into my project. Help me set up the Tinybird CLI workflow using datafiles.

Prerequisites
- Tinybird account available
- Git available

Step 1: Install the Tinybird CLI

Run the official install script:
    curl https://tinybird.co | sh

On Windows, run:
    powershell -ExecutionPolicy ByPass -c "irm https://tinybird.co | iex"

Step 2: Initialize project

Run:
    tb init

When prompted, use type=cli and dev mode=branch.

Step 3: Initialize git and branch

If repository is not initialized:
    git init

Create or switch to a feature branch:
    git checkout -b tinybird_intro

Step 4: Create base Data Source

Use the NYC taxi dataset to create `trips`.
    tb --cloud datasource create --url https://tbrd.co/taxi_data.parquet --name trips

Step 5: Create lookup Data Source
    tb --cloud datasource create --url https://d37ci6vzurychx.cloudfront.net/misc/taxi_zone_lookup.csv --name taxi_zone_lookup

Step 6: Create endpoint file

Create `endpoints/best_tip_zones.pipe` with:

TOKEN best_tips_read READ

DESCRIPTION >
    Endpoint that finds the zone most likely to have better tips for a given pickup location

NODE pickup_zone_lookup
SQL >
    %
    SELECT locationid
    FROM taxi_zone_lookup
    WHERE zone ILIKE concat('%', {{String(pickup_zone, 'JFK Airport')}}, '%')
    LIMIT 1

NODE tip_analysis
SQL >
    %
    SELECT
        t.DOLocationID,
        tz.zone as destination_zone,
        avg(t.tip_amount) as avg_tip,
        count(*) as trip_count,
        avg(t.tip_amount / nullif(t.total_amount, 0)) as tip_percentage
    FROM trips t
    LEFT JOIN taxi_zone_lookup tz ON t.DOLocationID = tz.locationid
    WHERE t.PULocationID = (SELECT locationid FROM pickup_zone_lookup)
      AND t.tip_amount > 0
      AND t.total_amount > 0
    GROUP BY t.DOLocationID, tz.zone
    HAVING trip_count >= 10
    ORDER BY avg_tip DESC
    LIMIT 10

TYPE endpoint

Step 7: Build

Run:
    tb build

Step 8: Load sample data

Use current git branch as BRANCH_NAME (for example tinybird_intro).
    tb --branch=$BRANCH_NAME datasource append trips --url https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2025-05.parquet
    tb --branch=$BRANCH_NAME datasource append taxi_zone_lookup --url https://d37ci6vzurychx.cloudfront.net/misc/taxi_zone_lookup.csv

Step 9: Test endpoint

    tb --branch=$BRANCH_NAME token copy "best_tips_read"
    TB_BRANCH_TOKEN=$(pbpaste)
    TB_BRANCH_HOST=$(cat .tinyb | jq -r ".host")
    curl -X GET "$TB_BRANCH_HOST/v0/pipes/best_tip_zones.json?token=$TB_BRANCH_TOKEN&pickup_zone=Newark+Airport"

Step 10: Deploy to Tinybird Cloud workspace

Run:
    tb deploy --wait --auto

Show the next steps:
    tb --cloud datasource append trips --url https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2025-05.parquet
    tb --cloud datasource append taxi_zone_lookup --url https://d37ci6vzurychx.cloudfront.net/misc/taxi_zone_lookup.csv
    tb --cloud open

If some issue appears, check the CLI reference: https://www.tinybird.co/docs/forward/dev-reference/commands

Next steps

Updated