Not in the top 1,000 by GitHub stars

TYH-labs/unsloth-buddy

Zero-friction LLM fine-tuning skill for Claude Code, Gemini CLI & any ACP agent. Unsloth on NVIDIA · TRL+MPS/MLX on Apple Silicon. Automates env setup, LoRA training (SFT, DPO, GRPO, vision), post-hoc GRPO log diagnostics, evaluation, and export end-to-end. Part of the Gaslamp AI platform.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

e8e461ff8944 → e8e461ff8944

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → e8e461ff8944

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit e8e461ff894481090eff44be91638d6723f7e9c0

git clone --filter=blob:none --no-checkout https://github.com/TYH-labs/unsloth-buddy.git .hotskills/tyh-labs-unsloth-buddy && git -C .hotskills/tyh-labs-unsloth-buddy checkout --detach e8e461ff894481090eff44be91638d6723f7e9c0 # Copy each selected skill directory from .hotskills/tyh-labs-unsloth-buddy into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/TYH-labs/unsloth-buddy.git .hotskills/tyh-labs-unsloth-buddy && git -C .hotskills/tyh-labs-unsloth-buddy checkout --detach e8e461ff894481090eff44be91638d6723f7e9c0 # Copy each selected skill directory from .hotskills/tyh-labs-unsloth-buddy into .agents/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/TYH-labs/unsloth-buddy.git .hotskills/tyh-labs-unsloth-buddy && git -C .hotskills/tyh-labs-unsloth-buddy checkout --detach e8e461ff894481090eff44be91638d6723f7e9c0 # Copy each selected skill directory from .hotskills/tyh-labs-unsloth-buddy into .gemini/skills/<skill-name>/
283GitHub stars
0stars in 7 days
1skill in this repository
0commits in 30 days

Heat

0.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 31, 2026284

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

unsloth-buddy

When your agent uses it

This skill should be used when users want to fine-tune language models or perform reinforcement learning (SFT, DPO, GRPO, ORPO, KTO, SimPO) using the highly optimized Unsloth library. Covers environment setup, LoRA patching, VRAM optimization, vision/multimodal fine-tuning, TTS, embedding training, and GGUF/vLLM/Ollama deployment. Should be invoked for tasks involving fast, memory-efficient local or cloud GPU training, specifically when the user mentions Unsloth or when hardware limits prevent standard training.

What it loads into context

Frontmatter

263 tokens

Always available to the agent

SKILL.md

15,984 tokens

When the skill is activated

Reference documents

38,021 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Overview
  2. Available Scripts & Templates
  3. The 7-Phase End-to-End Lifecycle (+Deploy)
  4. Integration with Gaslamp
  5. Auto-Environment Setup & Installation
  6. Hardware Selection & VRAM Requirements
  7. Model Loading
  8. LoRA Patching (PEFT)
  9. Training Methods
  10. Vision Fine-Tuning
  11. Exporting & Deployment
  12. Troubleshooting Common Errors
  13. Phase 3: Evaluation (mlx-tune / Apple Silicon)
  14. Example Scripts
  15. Resources

Scripts executed separately

  • eval/graders/__init__.py
  • eval/graders/common.py
  • eval/graders/filesystem.py
  • eval/graders/lifecycle.py
  • eval/graders/report.py
  • eval/graders/static_contract.py
  • eval/graders/trace.py
  • eval/run_skill_evals.py
  • eval/tests/test_filesystem_lifecycle.py
  • eval/tests/test_report.py
  • eval/tests/test_static_contract.py
  • eval/tests/test_trace.py
  • scripts/add_reflect_hint.py
  • scripts/colab_training.py
  • scripts/demo_server.py
  • scripts/detect_env.py
  • scripts/detect_system.py
  • scripts/gaslamp_callback.py
  • scripts/init_project.py
  • scripts/llamacpp.py
  • scripts/mlx_eval_template.py
  • scripts/mlx_eval_vision_template.py
  • scripts/mlx_gaslamp_dashboard.py
  • scripts/mps_grpo_example.py
  • scripts/reflect.py
  • scripts/search_design.py
  • scripts/setup_colab.py
  • scripts/terminal_dashboard.py
  • scripts/unsloth_dpo_example.py
  • scripts/unsloth_grpo_example.py
  • scripts/unsloth_mlx_sft_example.py
  • scripts/unsloth_mlx_vision_example.py
  • scripts/unsloth_sft_example.py
  • scripts/unsloth_vision_example.py

Files

  • .claude-plugin/marketplace.jsonasset2,120 bytes
  • .gitignoreasset256 bytes
  • AGENTS.mddoc4,512 bytes
  • LICENSEasset1,065 bytes
  • README.mddoc19,659 bytes
  • README_zh-Hans.mddoc19,443 bytes
  • README_zh-Hant.mddoc19,597 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • SKILL.mdcore60,785 bytes
  • demos/README.mddoc3,104 bytes
  • demos/README_zh-Hans.mddoc2,961 bytes
  • demos/README_zh-Hant.mddoc2,986 bytes
  • demos/gemma4_htr_sft_2026_04_07/README.mddoc613 bytes
  • demos/gemma4_htr_sft_2026_04_07/assets/compare_sample_1.pngasset47,118 bytes
  • demos/gemma4_htr_sft_2026_04_07/assets/compare_sample_2.pngasset48,196 bytes
  • demos/gemma4_htr_sft_2026_04_07/assets/compare_sample_3.pngasset43,115 bytes
  • demos/gemma4_htr_sft_2026_04_07/gaslamp.mddoc11,935 bytes
  • demos/gemma4_htr_sft_2026_04_07/index.htmlasset20,326 bytes
  • demos/qwen2.5-0.5b-chip2-sft/gaslamp.mddoc13,301 bytes
  • demos/qwen2.5-0.5b-chip2-sft/index.htmlasset21,560 bytes
  • demos/qwen2.5-0.5b-chip2-sft/index_zh-Hans.htmlasset21,577 bytes
  • demos/qwen2.5-0.5b-chip2-sft/index_zh-Hant.htmlasset21,577 bytes
  • eval/EVAL.mddoc2,347 bytes
  • eval/README.mddoc2,725 bytes
  • eval/fixtures/datasets/tiny_dpo_pairs.jsonlasset313 bytes
  • eval/fixtures/datasets/tiny_grpo_prompts.jsonlasset58 bytes
  • eval/fixtures/datasets/tiny_sft_messages.jsonlasset457 bytes
  • eval/fixtures/gaslamp_home/lessons.mddoc122 bytes
  • eval/fixtures/gaslamp_home/skills.mddoc149 bytes
  • eval/fixtures/gaslamp_home/user.mddoc106 bytes
  • eval/fixtures/resume_project/gaslamp.mddoc675 bytes
  • eval/fixtures/resume_project/logs/eval_compare.logasset116 bytes
  • eval/fixtures/resume_project/progress_log.mddoc132 bytes
  • eval/fixtures/resume_project/project_brief.mddoc214 bytes
  • eval/graders/__init__.pyruns46 bytes
  • eval/graders/common.pyruns1,364 bytes
  • eval/graders/filesystem.pyruns3,227 bytes
  • eval/graders/lifecycle.pyruns6,807 bytes
  • eval/graders/report.pyruns2,278 bytes
  • eval/graders/static_contract.pyruns9,270 bytes
  • eval/graders/trace.pyruns5,290 bytes
  • eval/prompts/lifecycle_smoke.csvasset2,047 bytes
  • eval/prompts/negative_controls.csvasset560 bytes
  • eval/prompts/skill_activation.csvasset704 bytes
  • eval/run_skill_evals.pyruns11,086 bytes
  • eval/schemas/unsloth_buddy_rubric.schema.jsonasset663 bytes
  • eval/tests/test_filesystem_lifecycle.pyruns2,576 bytes
  • eval/tests/test_report.pyruns1,002 bytes
  • eval/tests/test_static_contract.pyruns1,566 bytes
  • eval/tests/test_trace.pyruns2,853 bytes
  • gemini-extension.jsonasset1,439 bytes
  • images/unsloth_gaslamp.pngasset1,816,466 bytes
  • scripts/add_reflect_hint.pyruns5,196 bytes
  • scripts/colab_training.pyruns9,894 bytes
  • scripts/demo_server.pyruns6,984 bytes
  • scripts/detect_env.pyruns9,746 bytes
  • scripts/detect_system.pyruns8,137 bytes
  • scripts/gaslamp_callback.pyruns17,353 bytes
  • scripts/init_project.pyruns6,176 bytes
  • scripts/llamacpp.pyruns18,718 bytes
  • scripts/mlx_eval_template.pyruns7,645 bytes
  • scripts/mlx_eval_vision_template.pyruns6,436 bytes
  • scripts/mlx_gaslamp_dashboard.pyruns11,248 bytes
  • scripts/mps_grpo_example.pyruns10,872 bytes
  • scripts/reflect.pyruns46,016 bytes
  • scripts/search_design.pyruns1,924 bytes
  • scripts/setup_colab.pyruns3,805 bytes
  • scripts/terminal_dashboard.pyruns11,774 bytes
  • scripts/unsloth_dpo_example.pyruns3,546 bytes
  • scripts/unsloth_grpo_example.pyruns5,343 bytes
  • scripts/unsloth_mlx_sft_example.pyruns4,422 bytes
  • scripts/unsloth_mlx_vision_example.pyruns4,410 bytes
  • scripts/unsloth_sft_example.pyruns4,315 bytes
  • scripts/unsloth_vision_example.pyruns3,743 bytes
  • sub-skills/data.mddoc4,214 bytes
  • sub-skills/demo_builder.mddoc13,384 bytes
  • sub-skills/interview.mddoc3,758 bytes
  • templates/chat_ui.htmlasset15,995 bytes
  • templates/dashboard.htmlasset34,256 bytes
  • templates/demo_llm_crisp.htmlasset18,328 bytes
  • templates/demo_llm_dark.htmlasset19,148 bytes
  • templates/demo_vlm_crisp.htmlasset19,274 bytes
  • templates/demo_vlm_dark.htmlasset20,031 bytes
  • templates/gaslamp.pngasset295,499 bytes
  • templates/gaslamp_template.mddoc9,436 bytes
Read SKILL.md

# Unsloth Training & Optimization

## Overview

You are the `unsloth-buddy`, a specialized AI assistant that helps machine learning practitioners train and optimize large language models (LLMs) using the Unsloth library. 

**Unsloth provides massive advantages over standard Hugging Face training:**
- **Speed**: ~2x faster training speeds.
- **Memory**: Up to 80% less VRAM usage (enabling 70B models on a single 80GB GPU, or 8B models on 12GB).
- **Exact Math**: 0% loss in accuracy; Unsloth uses exact manual backprop kernels, not approximations.
- **Broad Support**: Text, Vision/Multimodal, TTS, Embedding fine-tuning. All RL methods.

## Available Scripts & Templates
View the complete source on GitHub

Skills included

  • unsloth-buddy

Repository facts

License
MIT
Created
Mar 15, 2026
Last pushed
Jun 28, 2026
Forks
14
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 65 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 359 signals by file

.claude-plugin/marketplace.json

  • Network accessline 1
    {   "name": "unsloth-buddy",   "owner": { "name": "Gaslamp", "url": "https://gaslamp.dev" },
  • Network accessline 2
    "name": "unsloth-buddy",   "owner": { "name": "Gaslamp", "url": "https://gaslamp.dev" },   "metadata": {
  • Network accessline 3
    "owner": { "name": "Gaslamp", "url": "https://gaslamp.dev" },
  • Network accessline 5
    "description": "Agentic LLM fine-tuning skill for Claude Code — Unsloth on NVIDIA, mlx-tune on Apple Silicon.",     "version": "1.0.5",     "repository": "https://github.com/TYH-labs/unsloth-buddy",
  • Network accessline 6
    "version": "1.0.5",     "repository": "https://github.com/TYH-labs/unsloth-buddy",     "documentation": "https://gaslamp.dev/unsloth"
  • Network accessline 7
    "repository": "https://github.com/TYH-labs/unsloth-buddy",
  • Network accessline 8
    "documentation": "https://gaslamp.dev/unsloth"

AGENTS.md

  • Network accessline 3
    > This file is read by [OpenClaw](https://github.com/openclaw/openclaw) and other ACP-compatible agents to understand how to operate unsloth-buddy.

README.md

  • Network accessline 5
    <p align="center">   <a href="https://github.com/TYH-labs/unsloth-buddy"><img src="https://img.shields.io/github/stars/TYH-labs/unsloth-buddy?style=flat&logo=github&color=181717&logoColor=white" alt="GitHub" /></a>
  • Network accessline 6
    <a href="https://github.com/TYH-labs/unsloth-buddy"><img src="https://img.shields.io/github/stars/TYH-labs/unsloth-buddy?style=flat&logo=github&color=181717&logoColor=white" alt="GitHub" /></a>
  • Network accessline 7
    <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="MIT License" /></a>
  • Network accessline 8
    <a href="#quick-start"><img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white" alt="Python 3.10+" /></a>
  • Network accessline 9
    <a href="https://gaslamp.dev/unsloth"><img src="https://img.shields.io/badge/%F0%9F%94%A5%20Gaslamp-Compatible-ff6b00?logoColor=white" alt="Gaslamp Compatible" /></a>
  • Network accessline 10
    <a href="#openclaw"><img src="https://img.shields.io/badge/%F0%9F%A6%9E%20OpenClaw-Compatible-ff4444" alt="OpenClaw Compatible" /></a>
  • Network accessline 11
    <a href="#quick-start"><img src="https://img.shields.io/badge/%F0%9F%A4%96%20Agent-Claude%20Code%20%2F%20Codex%20%2F%20Gemini-8b5cf6" alt="Agent Compatible" /></a>
  • Network accessline 12
    <a href="https://discord.gg/mZe4mbCQ6a"><img src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white" alt="Discord" /></a>
  • Network accessline 13
    <a href="#local-deploy"><img src="https://img.shields.io/badge/Backend-Unsloth%20%7C%20MLX%20%7C%20llama.cpp-00b4d8" alt="Backend: Unsloth / MLX / llama.cpp" /></a>
  • Network accessline 18
    <p align="center">   <a href="#quick-start"><img src="https://img.shields.io/badge/Try%20It-1%20minute-black?style=for-the-badge" alt="Try It" /></a>
  • Network accessline 19
    <a href="#quick-start"><img src="https://img.shields.io/badge/Try%20It-1%20minute-black?style=for-the-badge" alt="Try It" /></a>
  • Network accessline 20
    <a href="demos/"><img src="https://img.shields.io/badge/Demos-Examples-6e40c9?style=for-the-badge" alt="Demos" /></a>
  • Network accessline 21
    <a href="SKILL.md"><img src="https://img.shields.io/badge/10%2B%20Features-Details-0969da?style=for-the-badge" alt="Features" /></a>
  • Network accessline 24
    <p align="center">   <a href="https://youtu.be/wG28uxDGjHE"><img src="https://img.shields.io/badge/▶%20Demo-YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="YouTube Demo" /></a>
  • Network accessline 25
    <a href="https://youtu.be/wG28uxDGjHE"><img src="https://img.shields.io/badge/▶%20Demo-YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="YouTube Demo" /></a>
  • Network accessline 26
    <a href="https://www.bilibili.com/video/BV1VWAFzmECy/"><img src="https://img.shields.io/badge/▶%20演示-Bilibili-00A1D6?style=for-the-badge&logo=bilibili&logoColor=white" alt="Bilibili Demo" /></a>
  • Network accessline 39
    Runs on NVIDIA GPUs via [Unsloth](https://github.com/unslothai/unsloth), natively on Apple Silicon via [mlx-tune](https://github.com/ml-explore/mlx-lm), and on free cloud GPUs via [colab-mcp](https://github.com/googlecolab/colab-mcp). Part 
  • Network accessline 89
    gemini extensions install https://github.com/TYH-labs/unsloth-buddy --consent
  • Network accessline 92
    **Any agent supporting the [Agent Skills](https://agentskills.io/) standard**
  • Network accessline 94
    git clone https://github.com/TYH-labs/unsloth-buddy.git .agents/skills/unsloth-buddy
  • Network accessline 164
    Every local training run automatically opens a real-time dashboard at **http://localhost:8080/**:
  • Network accessline 187
    The demo builder is part of the [Gaslamp](https://gaslamp.dev/) platform's presentation toolkit. We've simplified it for unsloth-buddy with two built-in themes and automatic domain-specific color customization:
  • Network accessline 209
    This runs the full pipeline: quantize → benchmark → start an OpenAI-compatible server → open the Gaslamp Chat WebUI at `http://localhost:8081/`. Individual subcommands are also available:
  • Network accessline 219
    Requires [llama.cpp](https://github.com/ggml-org/llama.cpp) — installed automatically via `llamacpp.py install`.
  • Network accessline 229
    uv python install 3.13    claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 230
    claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 242
    `unsloth-buddy` works standalone or as part of a larger [Gaslamp](https://gaslamp.dev/) project — an agentic platform that orchestrates the full ML lifecycle from research to training to deployment. When called via Gaslamp, the project dire
  • Network accessline 246
    [gaslamp.dev/unsloth](https://gaslamp.dev/unsloth) — [gaslamp.dev](https://gaslamp.dev/)
  • Network accessline 252
    **unsloth-buddy is an [OpenClaw](https://github.com/openclaw/openclaw)-compatible skill.** Share the repo URL with OpenClaw, describe what you want to fine-tune — it reads `AGENTS.md`, understands the workflow, and runs everything automatic
  • Network accessline 255
    1. Share https://github.com/TYH-labs/unsloth-buddy with OpenClaw
  • Network accessline 277
    - **2026-04-14** — **Self-evolving memory** (Phase 7 + global inject): after each project, the agent synthesizes lessons, model-specific gotchas, and reusable scenario recipes into `~/.gaslamp/`. Every new project injects a frozen snapshot 
  • Network accessline 278
    - **2026-04-12** — Added **llama.cpp local deploy** (Phase 6.5): after GGUF export, if llama.cpp is installed, the agent offers a one-command pipeline — quantize → benchmark → serve + open the Gaslamp Chat WebUI (`templates/chat_ui.html`). 
  • Network accessline 279
    - **2026-04-10** — Added native **Vision SFT for Apple Silicon**: Integrated [mlx-vlm](https://github.com/Blaizzy/mlx-vlm) to support multimodal fine-tuning (e.g. Gemma 4 Vision, Qwen2.5-VL) on M-series chips. Added `scripts/unsloth_mlx_vis
  • Network accessline 280
    - **2026-04-09** — Demo Builder improvements: auto-resolves conceptual/movie keywords (e.g. "matrix" → nvidia, "star wars" → spacex) to the best-fit brand before calling the design search script; distinguishes shallow vs. deep DESIGN.md ove
  • Network accessline 281
    - **2026-04-04** — Added Demo Builder (Phase 5.5): after evaluation, generates a static HTML demo page showing base vs fine-tuned outputs side-by-side. Two themes (crisp-light, dark-signal) with automatic domain-specific accent colors. No s
  • Network accessline 283
    - **2026-03-21** — Enhanced training dashboard: task-aware panels (SFT/DPO/GRPO/Vision), GPU memory breakdown (baseline vs LoRA vs total), GRPO reward ± std and KL divergence charts, DPO chosen/rejected reward and KL charts, epoch tracking,
  • Network accessline 285
    - **2026-03-18** — Added Google Colab training support via [colab-mcp](https://github.com/googlecolab/colab-mcp): free T4/L4/A100 GPU access from Claude Code, background-thread training with live polling, and adapter download workflow.

README_zh-Hans.md

  • Network accessline 5
    <p align="center">   <a href="https://github.com/TYH-labs/unsloth-buddy"><img src="https://img.shields.io/github/stars/TYH-labs/unsloth-buddy?style=flat&logo=github&color=181717&logoColor=white" alt="GitHub" /></a>
  • Network accessline 6
    <a href="https://github.com/TYH-labs/unsloth-buddy"><img src="https://img.shields.io/github/stars/TYH-labs/unsloth-buddy?style=flat&logo=github&color=181717&logoColor=white" alt="GitHub" /></a>
  • Network accessline 7
    <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="MIT License" /></a>
  • Network accessline 8
    <a href="#快速开始"><img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white" alt="Python 3.10+" /></a>
  • Network accessline 9
    <a href="https://gaslamp.dev/unsloth"><img src="https://img.shields.io/badge/%F0%9F%94%A5%20Gaslamp-Compatible-ff6b00?logoColor=white" alt="Gaslamp Compatible" /></a>
  • Network accessline 10
    <a href="#openclaw"><img src="https://img.shields.io/badge/%F0%9F%A6%9E%20OpenClaw-Compatible-ff4444" alt="OpenClaw Compatible" /></a>
  • Network accessline 11
    <a href="#快速开始"><img src="https://img.shields.io/badge/%F0%9F%A4%96%20Agent-Claude%20Code%20%2F%20Codex%20%2F%20Gemini-8b5cf6" alt="Agent Compatible" /></a>
  • Network accessline 12
    <a href="https://discord.gg/mZe4mbCQ6a"><img src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white" alt="Discord" /></a>
  • Network accessline 13
    <a href="#本地部署"><img src="https://img.shields.io/badge/后端-Unsloth%20%7C%20MLX%20%7C%20llama.cpp-00b4d8" alt="后端:Unsloth / MLX / llama.cpp" /></a>
  • Network accessline 18
    <p align="center">   <a href="#快速开始"><img src="https://img.shields.io/badge/立即体验-1 分钟-black?style=for-the-badge" alt="立即体验" /></a>
  • Network accessline 19
    <a href="#快速开始"><img src="https://img.shields.io/badge/立即体验-1 分钟-black?style=for-the-badge" alt="立即体验" /></a>
  • Network accessline 20
    <a href="demos/"><img src="https://img.shields.io/badge/演示案例-示例-6e40c9?style=for-the-badge" alt="演示案例" /></a>
  • Network accessline 21
    <a href="SKILL.md"><img src="https://img.shields.io/badge/10%2B%20功能-功能详情-0969da?style=for-the-badge" alt="10+ 功能" /></a>
  • Network accessline 24
    <p align="center">   <a href="https://www.bilibili.com/video/BV1VWAFzmECy/"><img src="https://img.shields.io/badge/▶%20演示-Bilibili-00A1D6?style=for-the-badge&logo=bilibili&logoColor=white" alt="Bilibili 演示" /></a>
  • Network accessline 25
    <a href="https://www.bilibili.com/video/BV1VWAFzmECy/"><img src="https://img.shields.io/badge/▶%20演示-Bilibili-00A1D6?style=for-the-badge&logo=bilibili&logoColor=white" alt="Bilibili 演示" /></a>
  • Network accessline 26
    <a href="https://youtu.be/wG28uxDGjHE"><img src="https://img.shields.io/badge/▶%20Demo-YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="YouTube Demo" /></a>
  • Network accessline 39
    支持通过 [Unsloth](https://github.com/unslothai/unsloth) 在 NVIDIA GPU 上运行,也支持通过 [mlx-tune](https://github.com/ml-explore/mlx-lm) 在 Apple Silicon 上原生运行。隶属于 [Gaslamp](https://gaslamp.dev/) AI 开发平台 — [文档](https://gaslamp.dev/unsloth)。
  • Network accessline 89
    gemini extensions install https://github.com/TYH-labs/unsloth-buddy --consent
  • Network accessline 92
    **任何支持 [Agent Skills](https://agentskills.io/) 标准的 Agent**
  • Network accessline 94
    git clone https://github.com/TYH-labs/unsloth-buddy.git .agents/skills/unsloth-buddy
  • Network accessline 164
    每次本地训练都会自动在 **http://localhost:8080/** 打开实时看板:
  • Network accessline 187
    演示生成器是 [Gaslamp](https://gaslamp.dev/) 平台展示工具的一部分。我们为 unsloth-buddy 做了简化,内置两套主题并支持基于领域的自动配色:
  • Network accessline 209
    将运行完整流水线:量化 → 基准测试 → 启动 OpenAI 兼容服务器 → 在浏览器中打开 Gaslamp Chat WebUI(`http://localhost:8081/`)。也可单独使用各子命令:
  • Network accessline 219
    需要安装 [llama.cpp](https://github.com/ggml-org/llama.cpp) — 可通过 `llamacpp.py install` 自动安装。
  • Network accessline 229
    uv python install 3.13    claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 230
    claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 242
    `unsloth-buddy` 可独立使用,也可作为 [Gaslamp](https://gaslamp.dev/) 大型项目的一部分运行 — Gaslamp 是一个协调从研究到训练再到部署整个 ML 生命周期的 Agentic 平台。通过 Gaslamp 调用时,项目目录和状态在各个技能之间共享,结果会自动传递到下一阶段。
  • Network accessline 246
    [gaslamp.dev/unsloth](https://gaslamp.dev/unsloth) — [gaslamp.dev](https://gaslamp.dev/)
  • Network accessline 252
    **unsloth-buddy 是一个 [OpenClaw](https://github.com/openclaw/openclaw) 兼容技能。** 将仓库 URL 分享给 OpenClaw,描述你想微调的内容 — 它会读取 `AGENTS.md`,理解流程,并自动运行一切。
  • Network accessline 255
    1. 将 https://github.com/TYH-labs/unsloth-buddy 分享给 OpenClaw
  • Network accessline 277
    - **2026-04-14** — **自进化记忆**(第 7 阶段 + 全局注入):每次项目完成后,Agent 将经验、模型特有注意事项与可复用场景配方提炼至 `~/.gaslamp/`。每个新项目启动时自动注入冻结快照,静默应用历史知识。实现了代理记忆研究中的冻结快照模式。详见 `ref/self_evolve_plan.md`。 - **2026-04-12** — 新增 **llama.cpp 本地部署**(第 6.5 阶段):GGUF 导出完成后,若检测到 lla
  • Network accessline 278
    - **2026-04-12** — 新增 **llama.cpp 本地部署**(第 6.5 阶段):GGUF 导出完成后,若检测到 llama.cpp,Agent 将提供一键流水线 — 量化 → 基准测试 → 启动服务 + 打开 Gaslamp Chat WebUI(`templates/chat_ui.html`)。`scripts/llamacpp.py` 提供 7 个子命令(`install`、`quantize`、`bench`、`ppl`、`serve`、`cha
  • Network accessline 279
    - **2026-04-10** — 新增 Apple Silicon 原生**视觉 SFT 支持**:集成 [mlx-vlm](https://github.com/Blaizzy/mlx-vlm) 以支持在 M 系列芯片上进行多模态微调(如 Gemma 4 Vision、Qwen2.5-VL)。新增 `scripts/unsloth_mlx_vision_example.py` 训练模板和 `mlx_eval_vision_template.py` 视觉对比评估脚本。演示
  • Network accessline 280
    - **2026-04-09** — 演示生成器改进:自动将概念/电影类关键词(如 "matrix" → nvidia,"star wars" → spacex)解析并映射至最匹配的品牌;区分浅层与深层 DESIGN.md 覆盖 —— 深层覆盖(如全黑或局部大面积结构性分割布局)将跳过 CSS 注入点,从头开始写入演示文件。将 `scripts/search_design.py` 补充至技能脚本汇总,即使环境内无 `npx` 也可直接获取品牌设计模板。 - **2026-04
  • Network accessline 281
    - **2026-04-04** — 新增演示生成器(第 5.5 阶段):评估完成后生成静态 HTML 演示页面,并排展示基础模型与微调模型输出。内置两套主题(crisp-light、dark-signal),支持基于领域的自动强调色。无需服务器 — 在任意浏览器中直接打开。属于 [Gaslamp](https://gaslamp.dev/) 展示工具的简化版本。访谈从 5 点合同简化为 2 个问题(任务 + 数据),同时捕获用户领域/受众以用于演示主题选择。
  • Network accessline 283
    - **2026-03-21** — 增强训练看板:任务感知面板(SFT/DPO/GRPO/Vision)、GPU 内存分解(基线 vs LoRA vs 总量)、GRPO 奖励 ± 标准差及 KL 散度图表、DPO 选中/拒绝奖励及 KL 图表、轮次追踪、训练完成摘要横幅、终端 DPO/GRPO 2×2 布局,以及新增 `scripts/demo_server.py` 无需 GPU 即可预览所有面板的模拟服务器。 - **2026-03-19** — 新增终端训练看板(`sc
  • Network accessline 285
    - **2026-03-18** — 新增通过 [colab-mcp](https://github.com/googlecolab/colab-mcp) 的 Google Colab 云端训练支持:可在 Claude Code 中直接使用免费 T4/L4/A100 GPU,支持后台线程训练、实时轮询进度及适配器下载流程。

README_zh-Hant.md

  • Network accessline 5
    <p align="center">   <a href="https://github.com/TYH-labs/unsloth-buddy"><img src="https://img.shields.io/github/stars/TYH-labs/unsloth-buddy?style=flat&logo=github&color=181717&logoColor=white" alt="GitHub" /></a>
  • Network accessline 6
    <a href="https://github.com/TYH-labs/unsloth-buddy"><img src="https://img.shields.io/github/stars/TYH-labs/unsloth-buddy?style=flat&logo=github&color=181717&logoColor=white" alt="GitHub" /></a>
  • Network accessline 7
    <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="MIT License" /></a>
  • Network accessline 8
    <a href="#快速開始"><img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white" alt="Python 3.10+" /></a>
  • Network accessline 9
    <a href="https://gaslamp.dev/unsloth"><img src="https://img.shields.io/badge/%F0%9F%94%A5%20Gaslamp-Compatible-ff6b00?logoColor=white" alt="Gaslamp Compatible" /></a>
  • Network accessline 10
    <a href="#openclaw"><img src="https://img.shields.io/badge/%F0%9F%A6%9E%20OpenClaw-Compatible-ff4444" alt="OpenClaw Compatible" /></a>
  • Network accessline 11
    <a href="#快速開始"><img src="https://img.shields.io/badge/%F0%9F%A4%96%20Agent-Claude%20Code%20%2F%20Codex%20%2F%20Gemini-8b5cf6" alt="Agent Compatible" /></a>
  • Network accessline 12
    <a href="https://discord.gg/mZe4mbCQ6a"><img src="https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white" alt="Discord" /></a>
  • Network accessline 13
    <a href="#本地部署"><img src="https://img.shields.io/badge/後端-Unsloth%20%7C%20MLX%20%7C%20llama.cpp-00b4d8" alt="後端:Unsloth / MLX / llama.cpp" /></a>
  • Network accessline 18
    <p align="center">   <a href="#快速開始"><img src="https://img.shields.io/badge/立即體驗-1 分鐘-black?style=for-the-badge" alt="立即體驗" /></a>
  • Network accessline 19
    <a href="#快速開始"><img src="https://img.shields.io/badge/立即體驗-1 分鐘-black?style=for-the-badge" alt="立即體驗" /></a>
  • Network accessline 20
    <a href="demos/"><img src="https://img.shields.io/badge/示範案例-範例-6e40c9?style=for-the-badge" alt="示範案例" /></a>
  • Network accessline 21
    <a href="SKILL.md"><img src="https://img.shields.io/badge/10%2B%20功能-功能詳情-0969da?style=for-the-badge" alt="10+ 功能" /></a>
  • Network accessline 24
    <p align="center">   <a href="https://www.bilibili.com/video/BV1VWAFzmECy/"><img src="https://img.shields.io/badge/▶%20演示-Bilibili-00A1D6?style=for-the-badge&logo=bilibili&logoColor=white" alt="Bilibili 演示" /></a>
  • Network accessline 25
    <a href="https://www.bilibili.com/video/BV1VWAFzmECy/"><img src="https://img.shields.io/badge/▶%20演示-Bilibili-00A1D6?style=for-the-badge&logo=bilibili&logoColor=white" alt="Bilibili 演示" /></a>
  • Network accessline 26
    <a href="https://youtu.be/wG28uxDGjHE"><img src="https://img.shields.io/badge/▶%20Demo-YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="YouTube Demo" /></a>
  • Network accessline 39
    支援透過 [Unsloth](https://github.com/unslothai/unsloth) 在 NVIDIA GPU 上執行,也支援透過 [mlx-tune](https://github.com/ml-explore/mlx-lm) 在 Apple Silicon 上原生執行。隸屬於 [Gaslamp](https://gaslamp.dev/) AI 開發平台 — [文件](https://gaslamp.dev/unsloth)。
  • Network accessline 89
    gemini extensions install https://github.com/TYH-labs/unsloth-buddy --consent
  • Network accessline 92
    **任何支援 [Agent Skills](https://agentskills.io/) 標準的 Agent**
  • Network accessline 94
    git clone https://github.com/TYH-labs/unsloth-buddy.git .agents/skills/unsloth-buddy
  • Network accessline 164
    每次本地訓練都會自動在 **http://localhost:8080/** 開啟即時儀表板:
  • Network accessline 187
    展示生成器是 [Gaslamp](https://gaslamp.dev/) 平台展示工具的一部分。我們為 unsloth-buddy 做了簡化,內建兩套主題並支援基於領域的自動配色:
  • Network accessline 209
    將執行完整流水線:量化 → 基準測試 → 啟動 OpenAI 相容伺服器 → 在瀏覽器中開啟 Gaslamp Chat WebUI(`http://localhost:8081/`)。也可單獨使用各子指令:
  • Network accessline 219
    需要安裝 [llama.cpp](https://github.com/ggml-org/llama.cpp) — 可透過 `llamacpp.py install` 自動安裝。
  • Network accessline 229
    uv python install 3.13    claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 230
    claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 242
    `unsloth-buddy` 可獨立使用,也可作為 [Gaslamp](https://gaslamp.dev/) 大型專案的一部分執行 — Gaslamp 是一個協調從研究到訓練再到部署整個 ML 生命週期的 Agentic 平台。透過 Gaslamp 呼叫時,專案目錄和狀態在各個技能之間共享,結果會自動傳遞到下一階段。
  • Network accessline 246
    [gaslamp.dev/unsloth](https://gaslamp.dev/unsloth) — [gaslamp.dev](https://gaslamp.dev/)
  • Network accessline 252
    **unsloth-buddy 是一個 [OpenClaw](https://github.com/openclaw/openclaw) 相容技能。** 將儲存庫 URL 分享給 OpenClaw,描述你想微調的內容 — 它會讀取 `AGENTS.md`,理解流程,並自動執行一切。
  • Network accessline 255
    1. 將 https://github.com/TYH-labs/unsloth-buddy 分享給 OpenClaw
  • Network accessline 277
    - **2026-04-14** — **自進化記憶**(第 7 階段 + 全域注入):每次專案完成後,Agent 將經驗、模型特有注意事項與可重複使用場景配方提煉至 `~/.gaslamp/`。每個新專案啟動時自動注入凍結快照,靜默套用歷史知識。實現了代理記憶研究中的凍結快照模式。詳見 `ref/self_evolve_plan.md`。 - **2026-04-12** — 新增 **llama.cpp 本地部署**(第 6.5 階段):GGUF 匯出完成後,若偵測到 l
  • Network accessline 278
    - **2026-04-12** — 新增 **llama.cpp 本地部署**(第 6.5 階段):GGUF 匯出完成後,若偵測到 llama.cpp,Agent 將提供一鍵流水線 — 量化 → 基準測試 → 啟動服務 + 開啟 Gaslamp Chat WebUI(`templates/chat_ui.html`)。`scripts/llamacpp.py` 提供 7 個子指令(`install`、`quantize`、`bench`、`ppl`、`serve`、`cha
  • Network accessline 279
    - **2026-04-10** — 新增 Apple Silicon 原生**視覺 SFT 支援**:整合 [mlx-vlm](https://github.com/Blaizzy/mlx-vlm) 以支援在 M 系列晶片上進行多模態微調(如 Gemma 4 Vision、Qwen2.5-VL)。新增 `scripts/unsloth_mlx_vision_example.py` 訓練範本和 `mlx_eval_vision_template.py` 視覺對比評估腳本。展示
  • Network accessline 280
    - **2026-04-09** — 展示生成器改進:在呼叫設計搜尋腳本前,自動將概念/電影類關鍵字(如 "matrix" → nvidia,"star wars" → spacex)解析並對應至最匹配的品牌;區分淺層與深層 DESIGN.md 覆蓋 —— 深層覆蓋(如全黑或局部大面積結構性分割佈局)將跳過 CSS 注入點,從頭開始寫入展示檔案。將 `scripts/search_design.py` 補充至技能資源,即使環境內無 `npx` 也可直接獲取品牌設計範本。 - 
  • Network accessline 281
    - **2026-04-04** — 新增展示生成器(第 5.5 階段):評估完成後產生靜態 HTML 展示頁面,並排展示基礎模型與微調模型輸出。內建兩套主題(crisp-light、dark-signal),支援基於領域的自動強調色。無需伺服器 — 在任意瀏覽器中直接開啟。屬於 [Gaslamp](https://gaslamp.dev/) 展示工具的簡化版本。訪談從 5 點合約簡化為 2 個問題(任務 + 資料),同時擷取使用者領域/受眾以用於展示主題選擇。
  • Network accessline 283
    - **2026-03-21** — 增強訓練儀表板:任務感知面板(SFT/DPO/GRPO/Vision)、GPU 記憶體分解(基線 vs LoRA vs 總量)、GRPO 獎勵 ± 標準差及 KL 散度圖表、DPO 選取/拒絕獎勵及 KL 圖表、輪次追蹤、訓練完成摘要橫幅、終端 DPO/GRPO 2×2 配置,以及新增 `scripts/demo_server.py` 無需 GPU 即可預覽所有面板的模擬伺服器。 - **2026-03-19** — 新增終端訓練儀表板(
  • Network accessline 285
    - **2026-03-18** — 新增透過 [colab-mcp](https://github.com/googlecolab/colab-mcp) 的 Google Colab 雲端訓練支援:可在 Claude Code 中直接使用免費 T4/L4/A100 GPU,支援背景執行緒訓練、即時輪詢進度及適配器下載流程。

SKILL.md

  • Network accessline 7
    version: "1.0.3"   category: machine-learning   repository: https://github.com/TYH-labs/unsloth-buddy
  • Network accessline 8
    category: machine-learning   repository: https://github.com/TYH-labs/unsloth-buddy compatibility: "Apple Silicon (M1/M2/M3/M4): requires Python ≤ 3.12 and mlx-tune (not CUDA). Linux/WSL with NVIDIA GPU: CUDA 11.8, 12.1, or 12.4+, Python 3.1
  • Network accessline 9
    repository: https://github.com/TYH-labs/unsloth-buddy
  • Network accessline 185
    # 2. Add colab-mcp to Claude Code claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 186
    claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 194
    "colab-mcp": {   "command": "uvx",   "args": ["--from", "git+https://github.com/googlecolab/colab-mcp",
  • Network accessline 195
    "command": "uvx",   "args": ["--from", "git+https://github.com/googlecolab/colab-mcp",            "--python", "3.13", "colab-mcp"],
  • Network accessline 196
    "args": ["--from", "git+https://github.com/googlecolab/colab-mcp",
  • Network accessline 210
    1. Tell the user to open a new notebook at https://colab.research.google.com and connect to a GPU runtime (Runtime → Change runtime type → T4 GPU → Save → Connect).
  • Network accessline 329
    trainer.train()     ```     Dashboard serves at **http://localhost:8080/** with loss, learning rate, val loss, Peak mem (GB), tokens/sec.
  • Network accessline 330
    ```     Dashboard serves at **http://localhost:8080/** with loss, learning rate, val loss, Peak mem (GB), tokens/sec. - **Terminal Dashboard** — ALWAYS install and present this to the user before starting training, regardless of response la
  • Network accessline 331
    Dashboard serves at **http://localhost:8080/** with loss, learning rate, val loss, Peak mem (GB), tokens/sec.
  • Network accessline 347
    - Remind the user of live monitoring options (the HTTP server starts automatically with training):     - **Web dashboard**: Open **http://localhost:8080/** in a browser for the live interactive dashboard.
  • Network accessline 348
    - **Web dashboard**: Open **http://localhost:8080/** in a browser for the live interactive dashboard.
  • Dangerous shell operationline 526
    wget -qO- https://raw.githubusercontent.com/unslothai/unsloth/main/unsloth/_auto_install.py | python -
  • Network accessline 526
    wget -qO- https://raw.githubusercontent.com/unslothai/unsloth/main/unsloth/_auto_install.py | python -
  • Network accessline 569
    Guide the user to: 1. Create environment: `conda create --name unsloth_env python==3.12 -y` & `conda activate unsloth_env` 2. Install PyTorch for their CUDA version (e.g. `pip3 install torch torchvision torchaudio --index-url https://downlo
  • Network accessline 570
    1. Create environment: `conda create --name unsloth_env python==3.12 -y` & `conda activate unsloth_env` 2. Install PyTorch for their CUDA version (e.g. `pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/
  • Network accessline 571
    2. Install PyTorch for their CUDA version (e.g. `pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121`)
  • Network accessline 578
    Tell them to access Jupyter Lab at `http://localhost:8888`.
  • Network accessline 590
    "colab-mcp": {       "command": "uvx",       "args": ["git+https://github.com/googlecolab/colab-mcp"],
  • Network accessline 591
    "command": "uvx",       "args": ["git+https://github.com/googlecolab/colab-mcp"],       "timeout": 30000
  • Network accessline 592
    "args": ["git+https://github.com/googlecolab/colab-mcp"],
  • Network accessline 703
    **Model Naming Convention**: Always suggest Unsloth's pre-quantized models (e.g., `unsloth/llama-3-8b-bnb-4bit`) for 4x faster downloading and avoiding OOM during the download phase. Browse the full catalog at https://unsloth.ai/docs/get-st
  • Network accessline 947
    {"messages": [     {"role": "user", "content": [         {"type": "image", "image": "https://example.com/image.jpg"},
  • Network accessline 948
    {"role": "user", "content": [         {"type": "image", "image": "https://example.com/image.jpg"},         {"type": "text",  "text": "Describe this image."}
  • Network accessline 949
    {"type": "image", "image": "https://example.com/image.jpg"},
  • Network accessline 1101
    ### 7. Gradient accumulation bug - **Fix**: Use Unsloth's patched trainers. Standard HuggingFace trainers have a known gradient accumulation bug that Unsloth fixes automatically. See: https://unsloth.ai/blog/gradient
  • Network accessline 1102
    - **Fix**: Use Unsloth's patched trainers. Standard HuggingFace trainers have a known gradient accumulation bug that Unsloth fixes automatically. See: https://unsloth.ai/blog/gradient
  • Network accessline 1242
    - [Unsloth Documentation](https://unsloth.ai/docs)
  • Network accessline 1243
    - [Model Catalog](https://unsloth.ai/docs/get-started/unsloth-model-catalog)
  • Network accessline 1244
    - [Fine-tuning Guide](https://unsloth.ai/docs/get-started/fine-tuning-llms-guide)
  • Network accessline 1245
    - [RL Guide](https://unsloth.ai/docs/get-started/reinforcement-learning-rl-guide)
  • Network accessline 1246
    - [Vision Guide](https://unsloth.ai/docs/basics/vision-fine-tuning)
  • Network accessline 1247
    - [TTS Guide](https://unsloth.ai/docs/basics/text-to-speech-tts-fine-tuning)
  • Network accessline 1248
    - [Saving to GGUF](https://unsloth.ai/docs/basics/inference-and-deployment/saving-to-gguf)
  • Network accessline 1249
    - [vLLM Deployment](https://unsloth.ai/docs/basics/inference-and-deployment/vllm-guide)
  • Network accessline 1250
    - [All Notebooks](https://unsloth.ai/docs/get-started/unsloth-notebooks)

demos/README.md

  • Network accessline 5
    Every example is a single file. Hand it to any agent running [unsloth-buddy](https://gaslamp.dev/unsloth) and the entire project reproduces end-to-end: data download, environment setup, training, and evaluation.
  • Network accessline 41
    /install-plugin https://github.com/TYH-labs/unsloth-buddy

demos/README_zh-Hans.md

  • Network accessline 5
    每个示例只有一个文件。将它交给运行 [unsloth-buddy](https://gaslamp.dev/unsloth) 的 Agent,整个项目即可端到端复现:数据下载、环境配置、训练和评估。
  • Network accessline 41
    /install-plugin https://github.com/TYH-labs/unsloth-buddy

demos/README_zh-Hant.md

  • Network accessline 5
    每個範例只有一個檔案。將它交給執行 [unsloth-buddy](https://gaslamp.dev/unsloth) 的 Agent,整個專案即可端到端重現:資料下載、環境設定、訓練與評估。
  • Network accessline 41
    /install-plugin https://github.com/TYH-labs/unsloth-buddy

demos/gemma4_htr_sft_2026_04_07/gaslamp.md

  • Network accessline 1
    # gaslamp.md — Roadbook for `gemma4_htr_sft` # Powered by Gaslamp · https://gaslamp.dev
  • Network accessline 2
    # Powered by Gaslamp · https://gaslamp.dev

demos/gemma4_htr_sft_2026_04_07/index.html

  • Network accessline 11
    <style>     /* === FONT IMPORT === */     @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 13
    @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 217
    transition: border-color 0.2s ease, box-shadow 0.2s ease;         appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5
  • Network accessline 218
    appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linec
  • Network accessline 219
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")
  • Network accessline 462
    <footer>             Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>
  • Network accessline 463
    Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>

demos/qwen2.5-0.5b-chip2-sft/gaslamp.md

  • Network accessline 1
    # gaslamp.md — Roadbook for `qwen_chip2_sft` # Powered by Gaslamp · https://gaslamp.dev
  • Network accessline 2
    # Powered by Gaslamp · https://gaslamp.dev
  • Network accessline 75
    **Source:** `laion/OIG` — `unified_chip2.jsonl` via HuggingFace **URL:** `https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl`
  • Network accessline 76
    **URL:** `https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl`

demos/qwen2.5-0.5b-chip2-sft/index.html

  • Network accessline 11
    <style>     /* === FONT IMPORT === */     @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 13
    @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 175
    transition: border-color 0.2s ease, box-shadow 0.2s ease;         appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5
  • Network accessline 176
    appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linec
  • Network accessline 177
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")
  • Network accessline 411
    <footer>             Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>
  • Network accessline 412
    Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>

demos/qwen2.5-0.5b-chip2-sft/index_zh-Hans.html

  • Network accessline 11
    <style>     /* === FONT IMPORT === */     @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 13
    @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 175
    transition: border-color 0.2s ease, box-shadow 0.2s ease;         appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5
  • Network accessline 176
    appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linec
  • Network accessline 177
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")
  • Network accessline 411
    <footer>             Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>
  • Network accessline 412
    Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>

demos/qwen2.5-0.5b-chip2-sft/index_zh-Hant.html

  • Network accessline 11
    <style>     /* === FONT IMPORT === */     @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 13
    @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 175
    transition: border-color 0.2s ease, box-shadow 0.2s ease;         appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5
  • Network accessline 176
    appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linec
  • Network accessline 177
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")
  • Network accessline 411
    <footer>             Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>
  • Network accessline 412
    Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>

eval/graders/__init__.py

  • Executable scriptline 1
    Executable file

eval/graders/common.py

  • Executable scriptline 1
    Executable file

eval/graders/filesystem.py

  • Executable scriptline 1
    Executable file

eval/graders/lifecycle.py

  • Executable scriptline 1
    Executable file

eval/graders/report.py

  • Executable scriptline 1
    Executable file

eval/graders/static_contract.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 143
    [Credential-related source omitted]

eval/graders/trace.py

  • Executable scriptline 1
    Executable file

eval/run_skill_evals.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 114
    [Credential-related source omitted]

eval/tests/test_filesystem_lifecycle.py

  • Executable scriptline 1
    Executable file

eval/tests/test_report.py

  • Executable scriptline 1
    Executable file

eval/tests/test_static_contract.py

  • Executable scriptline 1
    Executable file

eval/tests/test_trace.py

  • Executable scriptline 1
    Executable file

scripts/add_reflect_hint.py

  • Executable scriptline 1
    Executable file

scripts/colab_training.py

  • Executable scriptline 1
    Executable file
  • Network accessline 212
    2. Add colab-mcp to Claude Code:      claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 213
    claude mcp add colab-mcp -- uvx --from git+https://github.com/googlecolab/colab-mcp --python 3.13 colab-mcp
  • Network accessline 217
    "colab-mcp": {        "command": "uvx",        "args": ["--from", "git+https://github.com/googlecolab/colab-mcp",
  • Network accessline 218
    "command": "uvx",        "args": ["--from", "git+https://github.com/googlecolab/colab-mcp",                 "--python", "3.13", "colab-mcp"],
  • Network accessline 219
    "args": ["--from", "git+https://github.com/googlecolab/colab-mcp",
  • Network accessline 229
    4. Open a new Colab notebook at https://colab.research.google.com

scripts/demo_server.py

  • Executable scriptline 1
    Executable file
  • Network accessline 161
    _PAYLOAD = make_payload(args.task, args.hardware)     httpd = HTTPServer(("localhost", args.port), Handler)     print(f"🚀  Demo dashboard at  http://localhost:{args.port}/  (task={args.task}, hardware={args.hardware})")
  • Network accessline 162
    httpd = HTTPServer(("localhost", args.port), Handler)     print(f"🚀  Demo dashboard at  http://localhost:{args.port}/  (task={args.task}, hardware={args.hardware})")     print("    Press Ctrl+C to stop.")
  • Network accessline 163
    print(f"🚀  Demo dashboard at  http://localhost:{args.port}/  (task={args.task}, hardware={args.hardware})")

scripts/detect_env.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 88
    [Credential-related source omitted]
  • Access to secretsline 137
    [Credential-related source omitted]

scripts/detect_system.py

  • Executable scriptline 1
    Executable file

scripts/gaslamp_callback.py

  • Executable scriptline 1
    Executable file
  • Network accessline 201
    time.sleep(0.5)             print("\n" + "=" * 60)             print(f"🚀 Gaslamp Live Training Dashboard: http://localhost:{self.port}/")
  • Network accessline 202
    print("\n" + "=" * 60)             print(f"🚀 Gaslamp Live Training Dashboard: http://localhost:{self.port}/")             print("=" * 60 + "\n")
  • Network accessline 203
    print(f"🚀 Gaslamp Live Training Dashboard: http://localhost:{self.port}/")

scripts/init_project.py

  • Executable scriptline 1
    Executable file

scripts/llamacpp.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 134
    os.makedirs(build_dir, exist_ok=True)             _run(["git", "clone", "--depth=1",                   "https://github.com/ggml-org/llama.cpp.git", build_dir],
  • Network accessline 135
    _run(["git", "clone", "--depth=1",                   "https://github.com/ggml-org/llama.cpp.git", build_dir],                  check=False)
  • Network accessline 136
    "https://github.com/ggml-org/llama.cpp.git", build_dir],
  • Network accessline 142
    else:         print(f"⚠<U+FE0F>  Auto-install not supported on {system}.")         print("    Download from: https://github.com/ggml-org/llama.cpp/releases")
  • Network accessline 143
    print(f"⚠<U+FE0F>  Auto-install not supported on {system}.")         print("    Download from: https://github.com/ggml-org/llama.cpp/releases")         sys.exit(1)
  • Network accessline 144
    print("    Download from: https://github.com/ggml-org/llama.cpp/releases")
  • Network accessline 151
    else:         print("❌  Installation failed. Try manual install:")         print("    https://github.com/ggml-org/llama.cpp/releases")
  • Network accessline 152
    print("❌  Installation failed. Try manual install:")         print("    https://github.com/ggml-org/llama.cpp/releases")         sys.exit(1)
  • Network accessline 153
    print("    https://github.com/ggml-org/llama.cpp/releases")
  • Network accessline 293
    try:             import urllib.request             resp = urllib.request.urlopen(f"http://localhost:{args.port}/health", timeout=2)
  • Network accessline 294
    import urllib.request             resp = urllib.request.urlopen(f"http://localhost:{args.port}/health", timeout=2)             if resp.status == 200:
  • Network accessline 295
    resp = urllib.request.urlopen(f"http://localhost:{args.port}/health", timeout=2)
  • Network accessline 308
    print(f"✅  Server ready!")     print(f"    API:    http://localhost:{args.port}/v1/chat/completions")
  • Network accessline 309
    print(f"    API:    http://localhost:{args.port}/v1/chat/completions")
  • Network accessline 310
    print(f"    WebUI:  http://localhost:{args.port}/")
  • Network accessline 321
    webbrowser.open(f"http://localhost:{args.port}/")

scripts/mlx_eval_template.py

  • Executable scriptline 1
    Executable file

scripts/mlx_eval_vision_template.py

  • Executable scriptline 1
    Executable file

scripts/mlx_gaslamp_dashboard.py

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    Dashboard → http://localhost:8080/
  • Network accessline 173
    """     Context manager that wraps mlx-tune's trainer.train() to provide a live     Gaslamp dashboard at http://localhost:{port}/.
  • Network accessline 175
    Gaslamp dashboard at http://localhost:{port}/.
  • Network accessline 236
    time.sleep(0.3)             print(f"\n{'='*60}")             print(f"🚀 Gaslamp Live Training Dashboard: http://localhost:{self.port}/")
  • Network accessline 237
    print(f"\n{'='*60}")             print(f"🚀 Gaslamp Live Training Dashboard: http://localhost:{self.port}/")             print(f"{'='*60}\n")
  • Network accessline 238
    print(f"🚀 Gaslamp Live Training Dashboard: http://localhost:{self.port}/")

scripts/mps_grpo_example.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 230
    print("[train] Starting GRPO training...")     print("[train] Dashboard → http://localhost:8080/")
  • Network accessline 231
    print("[train] Dashboard → http://localhost:8080/")

scripts/reflect.py

  • Executable scriptline 1
    Executable file

scripts/search_design.py

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    def fetch_json(url):     req = urllib.request.Request(url, headers={'User-Agent': 'unsloth-buddy/1.0'})
  • Network accessline 8
    req = urllib.request.Request(url, headers={'User-Agent': 'unsloth-buddy/1.0'})
  • Network accessline 9
    with urllib.request.urlopen(req) as resp:
  • Network accessline 12
    def fetch_text(url):     req = urllib.request.Request(url, headers={'User-Agent': 'unsloth-buddy/1.0'})
  • Network accessline 13
    req = urllib.request.Request(url, headers={'User-Agent': 'unsloth-buddy/1.0'})
  • Network accessline 14
    with urllib.request.urlopen(req) as resp:
  • Network accessline 23
    manifest_url = "https://unpkg.com/getdesign@latest/templates/manifest.json"
  • Network accessline 43
    if args.fetch:         print(f"\n--- DESIGN.md for {match['brand']} ---\n")         design_url = f"https://unpkg.com/getdesign@latest/templates/{match['file']}"
  • Network accessline 44
    print(f"\n--- DESIGN.md for {match['brand']} ---\n")         design_url = f"https://unpkg.com/getdesign@latest/templates/{match['file']}"         try:
  • Network accessline 45
    design_url = f"https://unpkg.com/getdesign@latest/templates/{match['file']}"

scripts/setup_colab.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 11
    exec(open("setup_colab.py").read())
  • Network accessline 68
    ok2, out2 = _run(             "wget -qO- https://raw.githubusercontent.com/unslothai/unsloth/main/unsloth/_auto_install.py | python -"
  • Dangerous shell operationline 69
    "wget -qO- https://raw.githubusercontent.com/unslothai/unsloth/main/unsloth/_auto_install.py | python -"
  • Network accessline 69
    "wget -qO- https://raw.githubusercontent.com/unslothai/unsloth/main/unsloth/_auto_install.py | python -"

scripts/terminal_dashboard.py

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    def fetch_metrics(port=8080):     try:         r = requests.get(f"http://localhost:{port}/api/metrics", timeout=2)
  • Network accessline 28
    try:         r = requests.get(f"http://localhost:{port}/api/metrics", timeout=2)         r.raise_for_status()
  • Network accessline 29
    r = requests.get(f"http://localhost:{port}/api/metrics", timeout=2)
  • Network accessline 262
    print(f"Connecting to Gaslamp training process on http://localhost:{args.port}...")

scripts/unsloth_dpo_example.py

  • Executable scriptline 1
    Executable file

scripts/unsloth_grpo_example.py

  • Executable scriptline 1
    Executable file

scripts/unsloth_mlx_sft_example.py

  • Executable scriptline 1
    Executable file

scripts/unsloth_mlx_vision_example.py

  • Executable scriptline 1
    Executable file
  • Network accessline 56
    # {"messages": [ #     {"role": "user", "content": [ #         {"type": "image", "image": "https://..."},
  • Network accessline 57
    #     {"role": "user", "content": [ #         {"type": "image", "image": "https://..."}, #         {"type": "text", "text": "Describe this image."}
  • Network accessline 58
    #         {"type": "image", "image": "https://..."},
  • Network accessline 100
    # 5. Train with Gaslamp Dashboard # ============================================================ # Web dashboard available at http://localhost:8080/
  • Network accessline 102
    # Web dashboard available at http://localhost:8080/

scripts/unsloth_sft_example.py

  • Executable scriptline 1
    Executable file

scripts/unsloth_vision_example.py

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    # {"messages": [ #     {"role": "user", "content": [ #         {"type": "image", "image": "https://..."},
  • Network accessline 47
    #     {"role": "user", "content": [ #         {"type": "image", "image": "https://..."}, #         {"type": "text", "text": "Describe this image."}
  • Network accessline 48
    #         {"type": "image", "image": "https://..."},

templates/chat_ui.html

  • Network accessline 28
    @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');
  • Network accessline 397
    function getBaseUrl() { return `http://localhost:${portSlider.value}`; }
  • Network accessline 419
    async function checkConnection() {   try {     const r = await fetch(`${getBaseUrl()}/v1/models`, { signal: AbortSignal.timeout(3000) });
  • Network accessline 420
    try {     const r = await fetch(`${getBaseUrl()}/v1/models`, { signal: AbortSignal.timeout(3000) });     if (r.ok) {
  • Network accessline 421
    const r = await fetch(`${getBaseUrl()}/v1/models`, { signal: AbortSignal.timeout(3000) });
  • Network accessline 487
    try {     const resp = await fetch(`${getBaseUrl()}/v1/chat/completions`, {
  • Network accessline 488
    const resp = await fetch(`${getBaseUrl()}/v1/chat/completions`, {

templates/dashboard.html

  • Network accessline 6
    <meta name="viewport" content="width=device-width, initial-scale=1.0">   <title>Gaslamp | Training Dashboard</title>   <script src="https://cdn.tailwindcss.com"></script>
  • Network accessline 7
    <title>Gaslamp | Training Dashboard</title>   <script src="https://cdn.tailwindcss.com"></script>   <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
  • Network accessline 8
    <script src="https://cdn.tailwindcss.com"></script>
  • Network accessline 9
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
  • Network accessline 11
    @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
  • Network accessline 97
    <div class="flex items-center space-x-4">         <div class="w-14 h-14 rounded-xl bg-gray-900 border border-gray-700 shadow-lg shadow-emerald-500/20 flex items-center justify-center p-1">           <svg viewBox="0 0 64 64" fill="none" xmln
  • Network accessline 98
    <div class="w-14 h-14 rounded-xl bg-gray-900 border border-gray-700 shadow-lg shadow-emerald-500/20 flex items-center justify-center p-1">           <svg viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" class="w-10 h-10"> 
  • Network accessline 99
    <svg viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg" class="w-10 h-10">
  • Network accessline 363
    <footer class="text-center text-xs text-gray-600 pb-4">     Gaslamp Training Dashboard · Powered by Unsloth-buddy ·     <a href="https://github.com/TYH-labs/unsloth-buddy" class="underline hover:text-gray-400">GitHub</a>
  • Network accessline 364
    Gaslamp Training Dashboard · Powered by Unsloth-buddy ·     <a href="https://github.com/TYH-labs/unsloth-buddy" class="underline hover:text-gray-400">GitHub</a>   </footer>
  • Network accessline 365
    <a href="https://github.com/TYH-labs/unsloth-buddy" class="underline hover:text-gray-400">GitHub</a>
  • Network accessline 716
    pollTimer = setInterval(async () => {     try {       const r = await fetch(`http://localhost:${port}/api/metrics`);
  • Network accessline 717
    try {       const r = await fetch(`http://localhost:${port}/api/metrics`);       if (r.ok) {
  • Network accessline 718
    const r = await fetch(`http://localhost:${port}/api/metrics`);
  • Network accessline 728
    function connect(port=8080) {   const connBadge = document.getElementById('conn-badge');   const es = new EventSource(`http://localhost:${port}/api/stream`);
  • Network accessline 730
    const es = new EventSource(`http://localhost:${port}/api/stream`);
  • Network accessline 747
    es.onopen = () => {     // Also do an immediate HTTP fetch to get the full snapshot (handles reconnection)     fetch(`http://localhost:${port}/api/metrics`)
  • Network accessline 748
    // Also do an immediate HTTP fetch to get the full snapshot (handles reconnection)     fetch(`http://localhost:${port}/api/metrics`)       .then(r => r.ok ? r.json() : null)
  • Network accessline 749
    fetch(`http://localhost:${port}/api/metrics`)
  • Network accessline 756
    // Detect port from URL hash, e.g. http://localhost:8080/#port=9090

templates/demo_llm_crisp.html

  • Network accessline 11
    <style>     /* === FONT IMPORT === */     @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 13
    @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 181
    transition: border-color 0.2s ease, box-shadow 0.2s ease;         appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5
  • Network accessline 182
    appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linec
  • Network accessline 183
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")
  • Network accessline 418
    <footer>             Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>
  • Network accessline 419
    Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>

templates/demo_llm_dark.html

  • Network accessline 11
    <style>     /* === FONT IMPORT === */     @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
  • Network accessline 13
    @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
  • Network accessline 199
    transition: border-color 0.2s ease, box-shadow 0.2s ease;         appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5
  • Network accessline 200
    appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8a8a' stroke-width='1.5' fill='none' stroke-linec
  • Network accessline 201
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8a8a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")
  • Network accessline 427
    <footer>             Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>
  • Network accessline 428
    Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>

templates/demo_vlm_crisp.html

  • Network accessline 11
    <style>     /* === FONT IMPORT === */     @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 13
    @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap');
  • Network accessline 217
    transition: border-color 0.2s ease, box-shadow 0.2s ease;         appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5
  • Network accessline 218
    appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linec
  • Network accessline 219
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")
  • Network accessline 459
    <footer>             Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>
  • Network accessline 460
    Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>

templates/demo_vlm_dark.html

  • Network accessline 11
    <style>     /* === FONT IMPORT === */     @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
  • Network accessline 13
    @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
  • Network accessline 235
    transition: border-color 0.2s ease, box-shadow 0.2s ease;         appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5
  • Network accessline 236
    appearance: none;         background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8a8a' stroke-width='1.5' fill='none' stroke-linec
  • Network accessline 237
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8a8a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")
  • Network accessline 468
    <footer>             Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>
  • Network accessline 469
    Built with <a href="https://github.com/TYH-labs/unsloth-buddy" target="_blank">unsloth-buddy</a> · <a href="https://gaslamp.dev" target="_blank">Gaslamp 🔥</a>

templates/gaslamp_template.md

  • Network accessline 1
    # gaslamp.md — Roadbook for `{project_name}` # Powered by Gaslamp · https://gaslamp.dev
  • Network accessline 2
    # Powered by Gaslamp · https://gaslamp.dev

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Combined signals: 1 fact
  • Passes content downloaded from raw.githubusercontent.com to an interpreterSKILL.md:526High confidence
Declared and executed: 1 fact
Signal confidence: 269 facts

and 219 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLINativeManifest gemini-extension.json.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.