Skip to content

tabctx

The serving engine for tabular foundation models.

Fit a table once, keep it on the GPU, and answer later predictions typically well under a second, for many tables and many users, on hardware you control.

Get started Why a server GitHub

pip install "tabctx[standalone,tabicl,client]"
TABCTX_BACKEND=tabicl python -m tabctx.serve
from tabctx import TabctxClassifier, TabctxClient

clf = TabctxClassifier(client=TabctxClient("http://127.0.0.1:8000"))
clf.fit(X_train, y_train)      # encodes the table once, on the server
clf.predict_proba(X_test)      # reuses the cached context

What tabctx does

TabPFN and TabICL often beat gradient boosting with no training loop: the training table is the model's input. Encoding that table is the expensive part, and it is the same work on every prediction. tabctx encodes each table once and serves predictions against the result. Why a server, need by need →

Fit time grows with the training table; predict time against the cached context stays near 0.3 s Fit time grows with the training table; predict time against the cached context stays near 0.3 s

  • Fit once, predict many


    A fitted table becomes a context, addressed by id. Every later predict skips the re-encode.

    How it works

  • Many tables, one GPU


    Contexts share a byte-budgeted cache. The coldest is evicted or spilled to disk, and a fit that would run the GPU out of memory is refused before it runs.

    The context cache

  • Three models, one endpoint


    tabicl-v2, tabpfn-3.5 and tabdpt-1.3 behind GET /v1/models (two licensed for commercial use); pick one per request. Adding a model is one backend class and a few lines of wiring.

    Add a model

  • Prediction intervals


    Regression predicts a distribution, so ask for its quantiles, such as a 90% interval per row, from the same model call as the mean.

    Prediction intervals

  • Drop-in scikit-learn


    TabctxClassifier and TabctxRegressor take DataFrames with text, dates and missing values, and work in pipelines and cross_val_score.

    Python guide

  • Tools for coding agents


    tabctx-mcp lets Claude Code, Codex and Gemini CLI fit, predict, explain and run what-ifs on a CSV.

    Coding agents

  • Built for production


    Multi-GPU placement, multi-replica routing on Ray Serve or one plain process, tenant isolation, list and delete, and a container image.

    Serving guide

Compared with the alternatives

Model in your process Hosted API tabctx
Data stays on your machines
Many tables cached at once, per tenant
Refuses a fit before it runs out of GPU memory n/a
Models from several labs behind one endpoint
Open source, no per-call metering
You can list and delete what the server holds n/a varies

Models

Model id Model Weights license
tabicl-v2 TabICLv2 (Inria) BSD-3-Clause: commercial use OK
tabpfn-3.5 TabPFN-3.5 (Prior Labs) Non-commercial; production use needs a license from Prior Labs
tabdpt-1.3 TabDPT (Layer 6) Apache-2.0: commercial use OK

tabctx itself is Apache 2.0; each model's weights keep their own license.