---
title: "Launch Week: CLI 4.0, Python SDK, redesigned UI, unified logs, and data previews"
seo_title: "Launch Week: CLI 4.0, SDK and Unified Logs"
excerpt: "Everything we shipped during Launch Week March 2026. Five days, five releases."
date: "2026-03-14"
---

Everything from [Launch Week March 2026](https://tbrd.co/launch-week). Five days, five releases.

## CLI 4.0

A better workflow for both coding agents and humans.

Configure your environment once in `tinybird.config.json`, and then run `tb build` and `tb deploy`. No more `--cloud`, `--branch`, or `--local` flags.

```bash
tb init          # scaffold your project and dev env
tb build         # builds against your configured environment
tb deploy        # deploys to production
```

Three modes:

- **`branch`**: `tb build` reads your git branch and targets an isolated Tinybird branch. Creates it if it doesn't exist.
- **`local`**: `tb build` runs against Tinybird Local. `tb deploy` routes to Cloud production.
- **`manual`**: Same as CLI 3.x. Pass `--cloud`, `--local`, or `--branch` explicitly.

Also new: SDK bridges for TypeScript and Python projects (auto-generates datafiles before build/deploy/preview), clear command boundaries (`tb workspace`, `tb branch`, `tb local`), and zero AI dependencies (the embedded agent module is gone, ~5,500 lines removed).

Read the full post: [CLI 4.0: a better workflow](https://www.tinybird.co/blog-posts/cli-4)

## Python SDK

Define Data Sources, Pipes, API Endpoints, Connections, Materialized Views, and Copy Pipes as Python code.

```python
from tinybird import datasource, types as t, engine

page_views = datasource(
    "page_views",
    schema={
        "timestamp": t.DateTime(),
        "session_id": t.String(),
        "pathname": t.String(),
    },
    engine=engine.MergeTree(sorting_key=["pathname", "timestamp"]),
)
```

Full type support with IDE autocomplete. Works with Pydantic (`BaseModel` as a datasource schema). Typed ingestion catches wrong fields or types before runtime via mypy/pyright. Full ClickHouse® type system with chainable modifiers: `.nullable()`, `.low_cardinality()`, `.default()`, `.codec()`.

Incremental migration: `tb migrate` converts existing `.datasource` and `.pipe` files to Python. Both formats work side by side.

```bash
uv add tinybird-python-sdk
```

Read the full post: [Tinybird, now Python-native too](https://www.tinybird.co/blog-posts/python-sdk)

## A redesigned UI

A faster, information-dense UI to understand, observe, and operate your Tinybird Workspaces.

**Overview page.** Your Workspace landing page now shows project resources, errors from the last 7 days, usage metrics (vCPU, requests, ingested rows), last deployment status, and an AI-generated Workspace summary. An Integrate section has tabs for API host, MCP server URL, ClickHouse® interface, and a copy-pasteable AI prompt describing your Workspace.

**Unified Resources page.** Every Data Source, Pipe, Endpoint, and connection in one table with inline metrics. Filter by type, errors, deployment ID, or usage conditions like `Avg latency > 100ms`. Toggle between list view and lineage view.

**Split-screen inspection.** Select any resource to open its detail panel. Browse the list and inspect the selected resource at the same time. Filters and scroll position are preserved.

**Collapsible sidebar.** `Cmd+B` collapses the sidebar to 12px. Full viewport for queries, data flows, and Explorations.

**Header breadcrumb.** `Organization / Workspace / Environment`. Switch between Cloud, Local, or any branch without leaving the page.

Read the full post: [A redesigned Tinybird UI for developers and operators](https://www.tinybird.co/blog-posts/new-ui)

## Unified logs

A single Logs page that merges Endpoint requests, Data Source operations, Kafka activity, sink executions, and job runs into one timeline.

**Composable filters.** Time range (15 minutes to 30 days), source toggles, errors only, specific HTTP status codes, free-text search. All filters persist in the URL for sharing and bookmarking.

**Split-screen detail.** Select any log entry to open the resource panel or a structured detail view with formatted values (durations in ms, row counts with separators, bytes in human units).

**`tb logs` in the CLI.** Same unified view from your terminal. Queries all 9 service Data Sources at once.

```bash
tb logs --start -30m --source '*'
```

Supports `--expand`, `--verbose`, `--output json`, relative times (`-1h`, `-7d`), and up to 1,000 rows.

Read the full post: [A unified logs viewer for your entire Tinybird Workspace](https://www.tinybird.co/blog-posts/new-logs-explorer)

## Data previews

Every PR gets its own isolated Tinybird environment.

One command in CI creates a Cloud branch per PR, builds your resources, and deploys them:

```yaml
- run: tinybird preview
  env:
    TINYBIRD_TOKEN: ${{ secrets.TINYBIRD_TOKEN }}
```

The TypeScript and Python SDKs detect preview environments and resolve the correct branch token automatically. Your Vercel preview app queries the Tinybird preview branch without extra env vars or token wiring.

Supported by default: Vercel, GitHub Actions, GitLab CI, CircleCI, Azure Pipelines, Bitbucket Pipelines, Travis CI, Jenkins.

The full cycle: `tb build` locally, push, CI validates and creates preview, Vercel preview auto-resolves to the Tinybird branch, reviewer sees the result with real data, merge to main, `tinybird deploy` to production.

Read the full post: [Data Previews](https://www.tinybird.co/blog/previews-branches)

## Bug fixes and improvements

- [All]: Fixed partition quoting for `FixedString` columns.
- [All]: Fixed CSV import delimiter not being applied when the API sets `delimiter=None`.
- [All]: Fixed invalid `schedule_cron` values not being caught during validation.
- [All]: Kafka connections now support `json_with_schema` as a value format.
- [All]: `PREWHERE` is now allowed in initial Workspace setup in Tinybird Local.
- [Forward]: Pending jobs are now correctly marked as `ERROR` when the parent Workspace is deleted.
- [Forward]: Fixed Playground export not considering parameter values when exporting JSON/CSV.

{% callout type="info" %}
Still on Tinybird Classic? [Migrate to Forward](https://www.tinybird.co/docs/forward/migrations/migrate-from-classic).
{% /callout %}
