Unsloth Studio is a web UI for training and running open models like Gemma 4, Qwen3.5, DeepSeek, gpt-oss locally.
Find a file
2026-03-01 13:05:10 +00:00
cli rename cli studio command to use new FastAPI backend and add unsloth-ui alias for backwards compatibility 2026-02-19 17:59:22 +00:00
studio Fix llama-server binary lookup for Windows (.exe, Release dir, ~/.unsloth) 2026-03-01 13:05:10 +00:00
.gitignore Merge branch 'nightly' into feat/gguf-llama-cpp-inference 2026-02-25 16:06:03 +04:00
__init__.py git repo skeleton structure 2026-01-31 08:27:01 +00:00
cli.py add export command, nested reorg commands 2025-12-15 18:37:26 -05:00
install_python_stack.py Fix Windows frontend build, add setup.bat, ANSI colors, aliases 2026-03-01 13:05:10 +00:00
README.md Update README.md 2026-02-18 03:58:44 +04:00
setup.bat add setup.bat 2026-03-01 13:05:10 +00:00
setup.ps1 Auto-detect driver CUDA version, install compatible toolkit instead of latest 2026-03-01 13:05:10 +00:00
setup.sh Extract shared install_python_stack.py for cross-platform setup 2026-03-01 13:05:10 +00:00
test_llama_cpp.ps1 Fix non-ASCII chars in test script for Windows PS 5.1 2026-03-01 13:05:10 +00:00
Unsloth_Studio_Colab.ipynb removed branch from colab git clone 2026-02-20 19:15:03 +00:00

Unsloth Studio

🦥 Unsloth Studio

A modern, full-stack web interface for fine-tuning, managing, and chatting with large language models — locally or in the cloud.

FeaturesQuick StartAPI ReferenceProject Structure


Features

Area Capabilities
Training Configure and launch LoRA / QLoRA fine-tuning jobs with real-time SSE progress streaming, live loss charts, and one-click stop / resume
Model Management Browse, load, and manage Hugging Face hub models and local checkpoints
Inference Interactive chat playground for testing fine-tuned models
Dataset Tools Upload, preview, and prepare datasets (JSON, CSV, Parquet, PDF, DOCX)
Export Export & push trained adapters to the Hugging Face Hub
Auth Token-based authentication with JWT access / refresh flow and first-time setup token

Quick Start

One-command setup

bash setup.sh

This script will:

  1. Install Node.js ≥ 20 via nvm (if needed)
  2. Build the frontend to studio/frontend/dist
  3. Create a Python virtual environment and install all dependencies (including unsloth)
  4. Register a convenient unsloth-ui shell alias

Launch the studio

# After setup, open a new terminal (or source ~/.bashrc), then inside your working directory:
unsloth-ui -H 0.0.0.0 -p 8000

On first launch, a one-time setup token is printed to the console. Use it in the browser to create your admin account.

As this repo is in continuous development, please make sure to run the setup.sh file everytime you pull new changes from the repo.

API Reference

All endpoints require a valid JWT Authorization: Bearer <token> header (except /api/auth/* and /api/health).

Method Endpoint Description
GET /api/health Health check
GET /api/system System info (GPU, CPU, memory)
POST /api/auth/signup Create account (requires setup token on first run)
POST /api/auth/login Login and receive JWT tokens
POST /api/auth/refresh Refresh an expired access token
GET /api/auth/status Check if auth is initialized
POST /api/train/start Start a training job
POST /api/train/stop Stop a running training job
POST /api/train/reset Reset training state
GET /api/train/status Get current training status
GET /api/train/metrics Get training metrics (loss, LR, steps)
GET /api/train/stream SSE stream of real-time training progress
GET /api/models/ List available models
POST /api/inference/chat Send a chat message for inference
GET /api/datasets/ List / manage datasets

Full interactive docs are available at /docs (Swagger UI) and /redoc when the server is running.

CLI Commands

The Unsloth CLI (cli.py) provides the following commands:

Usage: cli.py [COMMAND]

Commands:
  train             Fine-tune a model
  inference         Run inference on a trained model
  export            Export a trained adapter
  list-checkpoints  List saved checkpoints
  ui                Launch the Unsloth Studio web UI
  studio            Launch the studio (alias)

Project Structure

new-ui-prototype/
├── cli.py                     # CLI entry point
├── cli/                       # Typer CLI commands
│   └── commands/
│       ├── train.py
│       ├── inference.py
│       ├── export.py
│       ├── ui.py
│       └── studio.py
├── setup.sh                   # One-command bootstrap script
└── studio/
    ├── backend/
    │   ├── main.py            # FastAPI app & middleware
    │   ├── run.py             # Server launcher (uvicorn)
    │   ├── auth/              # Auth storage & JWT logic
    │   ├── routes/            # API route handlers
    │   │   ├── training.py
    │   │   ├── models.py
    │   │   ├── inference.py
    │   │   ├── datasets.py
    │   │   └── auth.py
    │   ├── models/            # Pydantic request/response schemas
    │   ├── core/              # Training engine & config
    │   ├── utils/             # Hardware detection, helpers
    │   └── requirements.txt
    ├── frontend/
    │   ├── src/
    │   │   ├── features/      # Feature modules
    │   │   │   ├── auth/      # Login / signup flow
    │   │   │   ├── training/  # Training config & monitoring
    │   │   │   ├── studio/    # Main studio workspace
    │   │   │   ├── chat/      # Inference chat UI
    │   │   │   ├── export/    # Model export flow
    │   │   │   └── onboarding/# Onboarding wizard
    │   │   ├── components/    # Shared UI components (shadcn)
    │   │   ├── hooks/         # Custom React hooks
    │   │   ├── stores/        # Zustand state stores
    │   │   └── types/         # TypeScript type definitions
    │   ├── package.json
    │   └── vite.config.ts
    └── tests/                 # Backend test suite

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

Copyright © 2026 Unsloth AI.