Skip to content

Zer0Fit v1.0.0 — Initial Release

Choose a tag to compare

@porespellar porespellar released this 12 Jul 02:43
· 21 commits to main since this release

Zer0Fit v1.0.0 — Zero-Shot Forecasting & Tabular MCP Server

Zer0Fit exposes Google's TimesFM 2.5 (time-series forecasting) and TabFM v1.0.0 (tabular classification/regression) foundation models to AI assistants via the Model Context Protocol (SSE/Streamable HTTP).

Zero-shot means no training required — just attach a CSV and describe what you want to predict.

Features

  • 📈 Time-series forecasting via Google TimesFM 2.5 (200M params)
  • 📊 Tabular classification & regression via Google TabFM v1.0.0
  • 💬 Chat-attached file support — use Open WebUI file IDs directly
  • 📤 File upload tool for files not attached in chat (CSV, XLSX, XLS, JSON, JSONL)
  • 🔍 Automatic file inspection — column names, types, row counts
  • 📋 Pre-computed metrics — accuracy, per-class F1, confusion matrix, R², MAE, RMSE, MAPE
  • 🧹 Automatic file cleanup — uploads auto-delete after 6 hours (configurable)
  • 🔒 Security — path traversal protection, UUID-based filenames, allowed-directory restriction
  • 🖥️ VRAM management — TTL-based auto-unload, mutual exclusion, asyncio.to_thread offloading
  • 🏗️ Multi-architecture — ARM64 (DGX Spark / Blackwell) and x86_64 (RTX 3090 / H100)
  • 🚀 One-command install./install.sh detects architecture, builds, and launches

Clients Supported

  • Open WebUI (primary) — SSE + Streamable HTTP
  • Claude Code — SSE transport, includes auto-loaded CLAUDE.md + skill
  • Codex CLI — Streamable HTTP, includes auto-loaded AGENTS.md

Quick Start

git clone https://github.com/porespellar/Zer0Fit.git
cd Zer0Fit
./install.sh

Inference Limits

Limit Default Configurable
Forecast horizon 1–256 steps Yes (model_manager.py)
Max tabular chunks 10 (10K rows) Yes (server.py)
Chunk size 1,000 rows Yes (pipelines.py)
In-context size 512 rows Yes (pipelines.py)
VRAM TTL 300 seconds Yes (env var)
Upload TTL 6 hours Yes (env var)

See Limits & Configurability for tuning guide.

Security & Code Review

Two full code reviews were conducted using Google Antigravity (Gemini 3.1 Pro). All findings were addressed:

  • ✅ Path traversal vulnerability (Critical) — fixed
  • ✅ Event-loop blocking during model loads (High) — fixed via asyncio.to_thread
  • ✅ Race condition in TabFM task-type state (High) — fixed, task_type passed as parameter
  • ✅ Thread-unsafe state access outside lock (High) — fixed, all checks inside asyncio.Lock
  • ✅ Unbounded predictions OOM risk (High) — fixed, max_chunks capped at 10
  • ✅ Empty basename file resolution (High) — fixed
  • ✅ Unbounded forecast horizon (Medium) — fixed, validated 1–256
  • ✅ Blocking I/O in upload cleanup (Medium) — fixed, offloaded to thread
  • ✅ Unhandled NaNs in target column (Medium) — fixed, dropna before chunking
  • ✅ Weak upload filename entropy (Low) — fixed, full UUID

Disclaimer

Zer0Fit is provided "AS IS" without warranties of any kind, and is intended for research and educational purposes only. The developer is not responsible for the accuracy of predictions, classifications, or forecasts produced by the underlying models or the LLM interpreting them. TabFM model weights are non-commercial — see the full Disclaimer (DISCLAIMER.md).

License

  • Zer0Fit source code — Apache License 2.0
  • TimesFM 2.5 model weights — Apache License 2.0
  • TabFM v1.0.0 model weights — TabFM Non-Commercial License v1.0