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¶
- Learn how to define resources in TypeScript: TypeScript SDK resources
- Learn how to define resources in Python: Python SDK resources
- Review SDK commands: TypeScript SDK CLI commands
- Review Python SDK commands: Python SDK CLI commands
- Explore workflows with agent skills: Agent skills