sundial-org/awesome-openclaw-skills

lmstudio-subagents

Reduces token usage from paid providers by offloading work to local LM Studio models. Use when: (1) Cutting costs—use local models for summarization, extraction, classification, rewriting, first-pass review, brainstorming when quality suffices, (2) Avoiding paid API calls for high-volume or repetitive tasks, (3) No extra model configuration—JIT loading and REST API work with existing LM Studio setup, (4) Local-only or privacy-sensitive work. Requires LM Studio 0.4+ with server (default :1234). …

First seen Mar 6, 2026

Installation

$ npx skills add sundial-org/awesome-openclaw-skills --skill lmstudio-subagents

Summary

  • Reduces token usage from paid providers by offloading work to local LM Studio models.
  • Use when: (1) Cutting costs—use local models for summarization, extraction, classification, rewriting, first-pass review, brainstorming when quality suffices, (2) Avoiding paid API calls for high-volume or repetitive tasks, (3) No extra model configuration—JIT loading and REST API work with existing LM Studio setup, (4) Local-only or privacy-sensitive work.
  • Requires LM Studio 0.4+ with server (default :1234).
  • No CLI required.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from sundial-org/awesome-openclaw-skills · top by installs.

npx skills add sundial-org/awesome-openclaw-skills

Browse all from sundial-org/awesome-openclaw-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 660
License LICENSE
Default branch main
Open issues 12
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseMIT
Declared agents clawdbot

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,685 B
  • docs SUMMARY.md 545 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

LM Studio Models

Offload tasks to local models when quality suffices; avoid web/proprietary/high-stakes.

Key Terms

  • model: From GET models key; use in chat and optional load.
  • lmstudioapi_url: Default http://127.0.0.1:1234 (paths /api/v1/...).
  • responseid / previousresponseid: Chat returns responseid; pass as previousresponseid for stateful.
  • instanceid: loadedinstances[].id or modelinstanceid; for unload.

Trigger in frontmatter; below = implementation.

Prerequisites

LM Studio 0.4+, server :1234, models on disk; load/unload via API (JIT optional); Node for script (curl ok).

Complete Workflow

Step 0: Preflight

GET <base>/api/v1/models; non-200 or connection error = server not ready.

exec command:"curl -s -o /dev/null -w '%{http_code}' -H 'Authorization: Bearer lmstudio' http://127.0.0.1:1234/api/v1/models"

Step 1: List Models and Check Loaded

exec command:"curl -s -H 'Authorization: Bearer lmstudio' http://127.0.0.1:1234/api/v1/models"

Parse models[] (key, type, loadedinstances, maxcontextlength, capabilities, paramsstring). If a model has loadedinstances.length > 0 and fits task, skip to Step 5; else pick key for chat (and optional load). Note loadedinstances[].id for optional unload.

Step 2: Model Selection

Pick key from GET response; use as model in chat (optional load). Constraints: vision -> capabilities.vision; embedding -> type=embedding; context -> maxcontextlength. Prefer loaded (loaded_instances non-empty), smaller for speed/larger for reasoning; fallback primary. Optional POST load; else JIT on first chat.

Step 3: Load Model (optional)

Optional: POST /api/v1/models/load { model, context_length?, ... }. JIT: first chat loads; explicit load only for specific options.

Step 4: Verify Loaded (optional)

If explicit load: GET models, confirm loadedinstances. If JIT: no verify; first chat returns modelinstanceid, stats.modelloadtimeseconds.

Step 5: Call API

From the skill folder: node scripts/lmstudio-api.mjs &lt;model&gt; '&lt;task&gt;' [options].

exec command:"node scripts/lmstudio-api.mjs <model> '<task>' --temperature=0.7 --max-output-tokens=2000"

Stateful: add --previous-response-id=<responseid>. Curl: POST <base>/api/v1/chat, body model, input, store, temperature, maxoutputtokens; optional previousresponseid. Parse: output (type message) -> content; responseid, modelinstanceid, stats. Script outputs content, modelinstanceid, response_id, usage.

Step 6: Unload (optional)

Optional: POST /api/v1/models/unload { instanceid }. instanceid from loadedinstances[].id or chat modelinstance_id. JIT+TTL auto-unload; explicit when needed.

exec command:"curl -s -X POST http://127.0.0.1:1234/api/v1/models/unload -H 'Content-Type: application/json' -H 'Authorization: Bearer lmstudio' -d '{\"instance_id\": \"<instance_id>\"}'"

Error Handling

  • Model not found -> pick another model from GET response.
  • API/server errors -> GET models, check URL.
  • Invalid output -> retry.
  • Memory -> unload or smaller model.
  • Unload fails -> instanceid must match loadedinstances[].id.

Examples

GET /api/v1/models, then script with model key and task. Optional unload per Step 6 (instance_id from response or GET).

exec command:"curl -s -H 'Authorization: Bearer lmstudio' http://127.0.0.1:1234/api/v1/models"
exec command:"node scripts/lmstudio-api.mjs meta-llama-3.1-8b-instruct 'Summarize and extract 5 key points' --temperature=0.7 --max-output-tokens=2000"

LM Studio API Details

Helper/API: see Step 5. Output: content, modelinstanceid, responseid, usage. Auth: Bearer lmstudio. List GET /api/v1/models. Load POST /api/v1/models/load (optional). Unload POST /api/v1/models/unload { instanceid }.

Notes

  • LM Studio 0.4+.
  • JIT (first chat loads; modelloadtimeseconds in stats); stateful (responseid / previousresponseid).