Install Tabsdata
Deploy a Tabsdata Server on your Machine in under 5 minutes.
Tabsdata is published as a python package, installable with pip
- Machine with a supported OS
- Linux (x86)
- macOS (Apple Silicon/ARM64)
- Windows (x86)
- Python 3.12
- An LLM API key from Anthropic or OpenAI (Required for AI features)
Create a Python virtual environment
Using a virtual environment provides a layer of isolation and prevents interference from other python environments on your machine.
- macOS / Linux
- Windows (PowerShell)
- conda
- uv
- pyenv
- venv
conda create -n tabsdata python=3.12 -y
conda activate tabsdata
uv venv --python 3.12 .venv
source .venv/bin/activate
pyenv install 3.12
pyenv local 3.12
python -m venv .venv
source .venv/bin/activate
python3 -m venv .venv
source .venv/bin/activate
- conda
- uv
- pyenv
- venv
conda create -n tabsdata python=3.12 -y
conda activate tabsdata
uv venv --python 3.12 .venv
.venv\Scripts\activate
pyenv install 3.12
pyenv local 3.12
python -m venv .venv
.venv\Scripts\activate
python -m venv .venv
.venv\Scripts\activate
Temporary installation requirements for 2.0.0
Tabsdata 2.0.0 is temporarily hosted on the Tabsdata package index rather than
PyPI due to an operational upload limit. Until 2.0.0 is available on PyPI,
configure pip and uv to use the Tabsdata index and explicitly install
version 2.0.0.
- macOS / Linux
- Windows (PowerShell)
export PIP_EXTRA_INDEX_URL=https://pypi.tabsdata.com/simple/
export UV_INDEX=https://pypi.tabsdata.com/simple/
export UV_INDEX_STRATEGY=unsafe-best-match
$env:PIP_EXTRA_INDEX_URL = "https://pypi.tabsdata.com/simple/"
$env:UV_INDEX = "https://pypi.tabsdata.com/simple/"
$env:UV_INDEX_STRATEGY = "unsafe-best-match"
Keep these environment variables set until the Tabsdata Instance has been created and run successfully. tdkserver quickstart creates a separate Python environment within the Tabsdata server and also needs access to the Tabsdata index.
These additional steps can be removed once Tabsdata 2.0.0 is available on PyPI.
Install Tabsdata
Until 2.0.0 is fully hosted on pypi, please make sure to specify ==2.0.0 and install tabsdata-agent to enable AI features. Future releases will not have this requirement
- uv
- pip
uv pip install "tabsdata[all]"==2.0.0 tabsdata-agent==2.0.0
pip install "tabsdata[all]"==2.0.0 tabsdata-agent==2.0.0
Set LLM key as environment variable in terminal
- macOS / Linux
- Windows (PowerShell)
- Anthropic
- OpenAI
export ANTHROPIC_KEY="sk-ant-..."
export OPENAI_KEY="sk-..."
- Anthropic
- OpenAI
$env:ANTHROPIC_KEY = "sk-ant-..."
$env:OPENAI_KEY = "sk-..."
Start the Tabsdata server
tdkserver quickstart initializes and deploys a Tabsdata Instance. The command should take around 30 seconds to fully execute.
- Anthropic
- OpenAI
tdkserver quickstart --anthropic-key $ANTHROPIC_KEY
tdkserver quickstart --openai-key $OPENAI_KEY
Tabsdata runs on a Kubernetes cluster, and this install uses kminus: a lightweight Kubernetes that runs pods as native processes in your Python environment instead of Docker containers, so it needs no root or admin access. The --provider option allows configuring through Amazon EKS instead. To run Tabsdata on AWS EKS, start with AWS Services Setup, then Install on EKS.
If you plan to use the MySQL or PostgreSQL CDC connectors, they need database drivers that Tabsdata cannot redistribute. Please review Installing Third-Party Database Drivers for more information.
Check Tabsdata server status
View all your Tabsdata Instances
tdkserver list
Instances ┌──────────┬──────────────────────────────────────────────────┬──────────┬─────────┬─────────┬─────────┬─────────────────┬───────────────┬───────────────────────┐ │ Name │ Folder │ Provider │ Version │ State │ Status │ API Server Port │ Database Port │ API Server URL │ ├──────────┼──────────────────────────────────────────────────┼──────────┼─────────┼─────────┼─────────┼─────────────────┼───────────────┼───────────────────────┤ │ tabsdata │ ~/.tabsdata/instances/tabsdata │ kminus │ 2.0.0 │ created │ Running │ 2457 │ 2460 │ http://localhost:2457 │ └──────────┴──────────────────────────────────────────────────┴──────────┴─────────┴─────────┴─────────┴─────────────────┴───────────────┴───────────────────────┘
View the status of the Tabsdata Instance you just deployed.
tdkserver status
Deployments ┌───────────────┬─────────┬───────┬─────┐ │ Name │ Status │ Ready │ Age │ ├───────────────┼─────────┼───────┼─────┤ │ srv-aiagent │ Running │ 1/1 │ 15s │ │ srv-apiserver │ Running │ 1/1 │ 15s │ │ srv-database │ Running │ 1/1 │ 24s │ └───────────────┴─────────┴───────┴─────┘ Pods ┌────────────────────────────────┬─────────┬───────┬─────┐ │ Name │ Status │ Ready │ Age │ ├────────────────────────────────┼─────────┼───────┼─────┤ │ srv-aiagent-7476c88484-4klx8 │ Running │ 2/2 │ 15s │ │ srv-apiserver-56bbbb559d-8cnxl │ Running │ 1/1 │ 15s │ │ srv-database-fd4f8f85-dsxcj │ Running │ 1/1 │ 24s │ └────────────────────────────────┴─────────┴───────┴─────┘ CronJobs ┌──────────────────┬─────────┬─────────────┬─────────────────┬─────┐ │ Name │ Status │ Expression │ Explanation │ Age │ ├──────────────────┼─────────┼─────────────┼─────────────────┼─────┤ │ srv-aiembeddings │ Running │ */5 * * * * │ Every 5 minutes │ 6s │ │ srv-aimetadata │ Running │ */5 * * * * │ Every 5 minutes │ 6s │ └──────────────────┴─────────┴─────────────┴─────────────────┴─────┘ Jobs ┌────────────────┬──────────┬─────────────┬─────┐ │ Name │ Status │ Completions │ Age │ ├────────────────┼──────────┼─────────────┼─────┤ │ ini-inspector │ Complete │ 1/1 │ 16s │ │ ini-venvloader │ Complete │ 1/1 │ 17s │ └────────────────┴──────────┴─────────────┴─────┘
tdkserver commands usually require an --instance flag that specifies the specific instance you want to interact with. If no --instance flag is passed, Tabsdata defaults the instance name to tabsdata
Log in
tdk login --server localhost --user admin --password tabsdata
Or access the UI at http://localhost:2457/login
Next: Connect an AI Agent. Point your LLM at the MCP server, then run your first pipeline.