@houtini/lm 2.12.0 → 2.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @houtini/lm Houtini LM - Save Tokens by Offloading Tasks from Claude Code to Your Local LLM Server (LM Studio / Ollama) or a Cloud API
1
+ # @houtini/lm Houtini LM - Save Tokens by Offloading Tasks from Claude Code to Your Local LLM Server (LM Studio / Ollama), Openrouter or a Cloud API
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@houtini/lm.svg?style=flat-square)](https://www.npmjs.com/package/@houtini/lm)
4
4
  [![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue?style=flat-square)](https://registry.modelcontextprotocol.io)
@@ -16,7 +16,7 @@
16
16
 
17
17
  I built this because I kept leaving Claude Code running overnight on big refactors and the token bill was painful. A huge chunk of that spend goes on bounded tasks any decent model handles fine - generating boilerplate, code review, commit messages, format conversion. Stuff that doesn't need Claude's reasoning or tool access.
18
18
 
19
- Houtini LM connects Claude Code to a local LLM on your network - or any OpenAI-compatible API. Claude keeps doing the hard work - architecture, planning, multi-file changes - and offloads the grunt work to whatever cheaper model you've got running. No Claude quota burn. No rate limits. Private. The trade is wall-clock time: local inference is typically 3-30× slower than frontier models, so delegation wins on bounded, self-contained tasks rather than everything.
19
+ Houtini LM connects Claude Code to a local LLM on your network - or any OpenAI-compatible API (LM Studio, Ollama, vLLM, DeepSeek, Groq, Cerebras, and OpenRouter's 300+ models through one endpoint). Claude keeps doing the hard work - architecture, planning, multi-file changes - and offloads the grunt work to whatever cheaper model you've got running. No Claude quota burn. No rate limits. Private if local, cheap if cloud. The trade is wall-clock time: local inference is typically 3-30× slower than frontier models, so delegation wins on bounded, self-contained tasks rather than everything.
20
20
 
21
21
  I wrote a [full walkthrough of why I built this and how I use it day to day](https://houtini.com/how-to-cut-your-claude-code-bill-with-houtini-lm/).
22
22
 
@@ -53,7 +53,7 @@ That's it. If LM Studio's running on `localhost:1234` (the default), Claude can
53
53
  I've got a GPU box on my local network running Qwen 3 Coder Next in LM Studio. If you've got a similar setup, point the URL at it:
54
54
 
55
55
  ```bash
56
- claude mcp add houtini-lm -e LM_STUDIO_URL=http://192.168.1.50:1234 -- npx -y @houtini/lm
56
+ claude mcp add houtini-lm -e HOUTINI_LM_ENDPOINT_URL=http://192.168.1.50:1234 -- npx -y @houtini/lm
57
57
  ```
58
58
 
59
59
  ### Cloud APIs
@@ -62,8 +62,20 @@ Works with anything speaking the OpenAI format. DeepSeek at twenty-eight cents p
62
62
 
63
63
  ```bash
64
64
  claude mcp add houtini-lm \
65
- -e LM_STUDIO_URL=https://api.deepseek.com \
66
- -e LM_STUDIO_PASSWORD=your-key-here \
65
+ -e HOUTINI_LM_ENDPOINT_URL=https://api.deepseek.com \
66
+ -e HOUTINI_LM_API_KEY=your-key-here \
67
+ -- npx -y @houtini/lm
68
+ ```
69
+
70
+ ### OpenRouter
71
+
72
+ OpenRouter gives you 300+ models through one endpoint. Auto-detected from the URL — attribution headers, `reasoning.exclude`, and retry-with-backoff all kick in automatically:
73
+
74
+ ```bash
75
+ claude mcp add houtini-lm \
76
+ -e HOUTINI_LM_ENDPOINT_URL=https://openrouter.ai/api \
77
+ -e HOUTINI_LM_API_KEY=sk-or-v1-... \
78
+ -e HOUTINI_LM_MODEL=nvidia/nemotron-3-nano-30b-a3b:free \
67
79
  -- npx -y @houtini/lm
68
80
  ```
69
81
 
@@ -78,7 +90,7 @@ Drop this into your `claude_desktop_config.json`:
78
90
  "command": "npx",
79
91
  "args": ["-y", "@houtini/lm"],
80
92
  "env": {
81
- "LM_STUDIO_URL": "http://localhost:1234"
93
+ "HOUTINI_LM_ENDPOINT_URL": "http://localhost:1234"
82
94
  }
83
95
  }
84
96
  }
@@ -184,6 +196,15 @@ The routing scores loaded models against the task type (code, chat, analysis, em
184
196
 
185
197
  Supported model families with curated prompt hints: GLM-4, Qwen3 Coder, Qwen3, LLaMA 3, Nemotron, Granite, GPT-OSS, Nomic Embed. Unknown models get sensible defaults.
186
198
 
199
+ ### Overriding the router
200
+
201
+ Scoring works well when there are a handful of loaded models. On providers with large catalogues (OpenRouter lists 300+ models, all reporting as routable) unknown models all score zero and ties break on iteration order, so you probably want to pin explicitly. Two ways, in precedence order:
202
+
203
+ 1. **Per-call** — pass `model: "nvidia/nemotron-3-nano-30b-a3b:free"` to any of `chat` / `custom_prompt` / `code_task` / `code_task_files`. Overrides everything else.
204
+ 2. **Per-process** — set `HOUTINI_LM_MODEL` in the environment. Applies to every tool call from that server process. Overridden by the per-call parameter.
205
+
206
+ Leave both unset and the router picks.
207
+
187
208
  ## Tools
188
209
 
189
210
  ### `chat`
@@ -197,6 +218,7 @@ The workhorse. Send a task, get an answer. The description includes planning tri
197
218
  | `temperature` | no | 0.3 | 0.1 for code, 0.3 for analysis, 0.7 for creative |
198
219
  | `max_tokens` | no | *auto* | Defaults to 25% of the loaded model's context window (fallback 16,384). Pass a number to cap it. |
199
220
  | `json_schema` | no | - | Force structured JSON output conforming to a schema |
221
+ | `model` | no | *auto-route* | Pin a specific model id (e.g. `nvidia/nemotron-3-nano-30b-a3b:free` on OpenRouter). Overrides routing and `HOUTINI_LM_MODEL`. Useful on providers with many candidates. |
200
222
 
201
223
  ### `custom_prompt`
202
224
 
@@ -210,6 +232,7 @@ Three-part prompt: system, context, instruction. Keeping them separate prevents
210
232
  | `temperature` | no | 0.3 | 0.1 for review, 0.3 for analysis |
211
233
  | `max_tokens` | no | *auto* | Defaults to 25% of the loaded model's context window (fallback 16,384). |
212
234
  | `json_schema` | no | - | Force structured JSON output |
235
+ | `model` | no | *auto-route* | Pin a specific model id. Overrides routing and `HOUTINI_LM_MODEL`. |
213
236
 
214
237
  ### `code_task`
215
238
 
@@ -221,6 +244,7 @@ Built for code analysis. Pre-configured system prompt with temperature and outpu
221
244
  | `task` | yes | - | "Find bugs", "Explain this", "Write tests" |
222
245
  | `language` | no | - | "typescript", "python", "rust", etc. |
223
246
  | `max_tokens` | no | *auto* | Defaults to 25% of the loaded model's context window (fallback 16,384). |
247
+ | `model` | no | *auto-route* | Pin a specific model id. Overrides routing and `HOUTINI_LM_MODEL`. |
224
248
 
225
249
  ### `code_task_files`
226
250
 
@@ -234,6 +258,7 @@ Includes a **pre-flight prefill estimator**: if measured per-model data from the
234
258
  | `task` | yes | - | "Find bugs across these files", "Audit this module" |
235
259
  | `language` | no | - | "typescript", "python", "rust", etc. |
236
260
  | `max_tokens` | no | *auto* | Defaults to 25% of the loaded model's context window (fallback 16,384). |
261
+ | `model` | no | *auto-route* | Pin a specific model id. Overrides routing and `HOUTINI_LM_MODEL`. |
237
262
 
238
263
  ### `embed`
239
264
 
@@ -360,14 +385,16 @@ Want a human-readable quality review rather than just latency numbers? Paste [SH
360
385
 
361
386
  ## Think-block handling
362
387
 
363
- Thinking models burn part of their output budget on invisible reasoning before producing an answer. Left alone, small models at default `max_tokens` will happily spend the whole budget reasoning and return an empty body. Houtini-lm handles this in three ways:
388
+ Thinking models burn part of their output budget on invisible reasoning before producing an answer. Left alone, small models at default `max_tokens` will happily spend the whole budget reasoning and return an empty body. How houtini-lm handles this depends on whether the provider exposes reasoning as a separate channel or in-band.
364
389
 
365
- 1. **Suppression at source** at startup, houtini-lm checks each model's HuggingFace chat template for thinking support. Models that support the `enable_thinking` toggle (like Qwen3) get thinking disabled at inference time, reclaiming the generation budget for actual output. Detection is automatic via chat-template inspection plus arch/id heuristics, so Ollama tags like `qwen3:4b` are recognised as thinking-capable too.
366
-
367
- 2. **Budget inflation** — when a model is flagged as thinking-capable, `max_tokens` is silently inflated (×4 or +2000, whichever is bigger) so reasoning can't starve the content channel. Essential for backends like Ollama where the Qwen3 Jinja template hardcodes `enable_thinking=true` and ignores the API flag.
390
+ **Local backends (LM Studio, Ollama, vLLM)** reasoning arrives inline on the content channel or via `delta.reasoning_content` / `delta.reasoning`:
368
391
 
392
+ 1. **Suppression at source** — at startup, houtini-lm checks each model's HuggingFace chat template for thinking support. Models that support the `enable_thinking` toggle (Qwen3, Gemma 4, Nemotron, DeepSeek R1, GLM-4, gpt-oss) get thinking disabled at inference time. Detection is automatic via chat-template inspection plus arch/id heuristics, so Ollama tags like `qwen3:4b` are recognised too.
393
+ 2. **Budget inflation** — `max_tokens` is silently inflated (×4 or +2000, whichever is bigger) so reasoning can't starve the content channel. Essential for backends like Ollama where the Qwen3 Jinja template hardcodes `enable_thinking=true` and ignores the API flag.
369
394
  3. **Reasoning capture + stripping** — reasoning is captured from both `delta.reasoning_content` (LM Studio, DeepSeek R1, Nemotron) and `delta.reasoning` (Ollama). Inline `<think>...</think>` blocks on the content channel are stripped after assembly — balanced pairs, orphan openers, and orphan closers are all handled. When reasoning exhausts the budget entirely, the captured reasoning text is returned as a last-ditch fallback so the caller sees *something* rather than a silent empty body.
370
395
 
396
+ **OpenRouter** — handles reasoning as a structured per-request parameter and a separate `message.reasoning` response field. Houtini-lm sends `reasoning: { exclude: true }` on every OpenRouter call so thinking models (Nemotron, DeepSeek R1, Qwen3, Claude thinking, gpt-oss, etc.) are normalised to text-only output at the provider level. Budget inflation still fires because some upstream providers bill reasoning tokens against the cap before `exclude` filtering. No stripping is needed — the provider never sends the reasoning in the first place.
397
+
371
398
  The quality footer flags `think-blocks-stripped` when stripping occurred, `reasoning-only` when the fallback fired, and `hit-max-tokens` when the budget ran out — so you know exactly what happened even when the output looks clean.
372
399
 
373
400
  ## Quality metadata
@@ -406,16 +433,19 @@ The `houtini://metrics/session` MCP resource exposes cumulative offload stats as
406
433
 
407
434
  ## Request serialisation
408
435
 
409
- Parallel MCP tool calls are automatically queued and run one at a time. Most local LLM servers run a single model — without serialisation, parallel requests stack timeouts and waste the generation budget. The semaphore ensures each call gets the full timeout window.
436
+ On **local** providers (LM Studio, Ollama, vLLM, llama.cpp) parallel MCP tool calls are automatically queued and run one at a time. A single-GPU host can only serve one request at a time anyway — without the semaphore, parallel calls stack timeouts and waste the generation budget.
437
+
438
+ On **remote** providers (OpenRouter, DeepSeek, Groq, Cerebras, and anything detected as a non-local backend) the semaphore is skipped — the upstream handles parallelism natively and serialising artificially would throttle you. This is automatic; you don't need to configure it.
410
439
 
411
440
  ## Configuration
412
441
 
413
442
  | Variable | Default | What it does |
414
443
  |----------|---------|-------------|
415
- | `LM_STUDIO_URL` | `http://localhost:1234` | Base URL of the OpenAI-compatible API |
416
- | `LM_STUDIO_MODEL` | *(auto-detect)* | Model identifier - leave blank to use whatever's loaded |
417
- | `LM_STUDIO_PASSWORD` | *(none)* | Bearer token for authenticated endpoints |
418
- | `LM_CONTEXT_WINDOW` | `100000` | Fallback context window if the API doesn't report it |
444
+ | `HOUTINI_LM_ENDPOINT_URL` | `http://localhost:1234` | Base URL of the OpenAI-compatible API. Legacy alias: `LM_STUDIO_URL`. |
445
+ | `HOUTINI_LM_API_KEY` | *(none)* | Bearer token for authenticated endpoints. Legacy aliases: `LM_STUDIO_PASSWORD`, `LM_PASSWORD`, `OPENROUTER_API_KEY`. |
446
+ | `HOUTINI_LM_MODEL` | *(auto-detect)* | Model identifier leave blank to use whatever's loaded. Legacy alias: `LM_STUDIO_MODEL`. |
447
+ | `HOUTINI_LM_PROVIDER` | *(auto-detect)* | Force provider-specific handling. Set to `openrouter` for OpenRouter attribution headers, `reasoning.exclude`, and no inference serialisation. Otherwise auto-detected from the endpoint URL. |
448
+ | `HOUTINI_LM_CONTEXT_WINDOW` | `100000` | Fallback context window if the API doesn't report it. Legacy alias: `LM_CONTEXT_WINDOW`. |
419
449
 
420
450
  ## Compatible endpoints
421
451
 
@@ -424,7 +454,8 @@ Works with anything that speaks the OpenAI `/v1/chat/completions` API:
424
454
  | What | URL | Notes |
425
455
  |------|-----|-------|
426
456
  | [LM Studio](https://lmstudio.ai) | `http://localhost:1234` | Default, zero config. Rich metadata via v0 API. |
427
- | [Ollama](https://ollama.com) | `http://localhost:11434` | Set `LM_STUDIO_URL`. Thinking models (qwen3, deepseek-r1) handled transparently — reasoning is captured from Ollama's `delta.reasoning` channel and the output budget is inflated automatically so small thinking models don't return empty bodies. |
457
+ | [Ollama](https://ollama.com) | `http://localhost:11434` | Set `HOUTINI_LM_ENDPOINT_URL`. Thinking models (qwen3, deepseek-r1) handled transparently — reasoning is captured from Ollama's `delta.reasoning` channel and the output budget is inflated automatically so small thinking models don't return empty bodies. |
458
+ | [OpenRouter](https://openrouter.ai) | `https://openrouter.ai/api` | 300+ models from one endpoint. Auto-detected — sends attribution headers, uses `reasoning.exclude` for thinking models, retries 429/5xx with jittered backoff, parallel requests allowed. |
428
459
  | [vLLM](https://docs.vllm.ai) | `http://localhost:8000` | Native OpenAI API |
429
460
  | [llama.cpp](https://github.com/ggml-org/llama.cpp) | `http://localhost:8080` | Server mode |
430
461
  | [DeepSeek](https://platform.deepseek.com) | `https://api.deepseek.com` | 28c/M input tokens |
package/dist/index.js CHANGED
@@ -11,9 +11,21 @@ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSche
11
11
  import { profileModelsAtStartup, getCachedProfile, toModelProfile as cachedToProfile, getHFEnrichmentLine, getPromptHints, getThinkingSupport, recordPerformance, getAllPerformance, getLifetimeTotals, recordPrefillSample, getPrefillSamples, fitPrefillLinear, } from './model-cache.js';
12
12
  import { readFile } from 'node:fs/promises';
13
13
  import { isAbsolute, basename } from 'node:path';
14
- const LM_BASE_URL = process.env.LM_STUDIO_URL || 'http://localhost:1234';
15
- const LM_MODEL = process.env.LM_STUDIO_MODEL || '';
16
- const LM_PASSWORD = process.env.LM_STUDIO_PASSWORD || '';
14
+ // Env var naming: HOUTINI_LM_* is the preferred namespace now that we
15
+ // support more than just LM Studio. The legacy LM_STUDIO_* names remain
16
+ // accepted indefinitely so existing users don't need to change anything.
17
+ const LM_BASE_URL = process.env.HOUTINI_LM_ENDPOINT_URL ||
18
+ process.env.LM_STUDIO_URL ||
19
+ 'http://localhost:1234';
20
+ const LM_MODEL = process.env.HOUTINI_LM_MODEL ||
21
+ process.env.LM_STUDIO_MODEL ||
22
+ '';
23
+ const LM_PASSWORD = process.env.HOUTINI_LM_API_KEY ||
24
+ process.env.LM_STUDIO_PASSWORD ||
25
+ process.env.LM_PASSWORD ||
26
+ process.env.OPENROUTER_API_KEY ||
27
+ '';
28
+ const HOUTINI_LM_PROVIDER = (process.env.HOUTINI_LM_PROVIDER || '').toLowerCase();
17
29
  const DEFAULT_MAX_TOKENS = 16384; // fallback when model context is unknown — overridden by dynamic calculation below
18
30
  const DEFAULT_TEMPERATURE = 0.3;
19
31
  const CONNECT_TIMEOUT_MS = 5000;
@@ -22,7 +34,7 @@ const SOFT_TIMEOUT_MS = 300_000; // 5 min — progress notifications reset MCP c
22
34
  const READ_CHUNK_TIMEOUT_MS = 30_000; // max wait for a single SSE chunk mid-stream
23
35
  const PREFILL_TIMEOUT_MS = 180_000; // max wait for the FIRST chunk — prompt prefill on slow hardware with big inputs can legitimately take 1-2 min
24
36
  const PREFILL_KEEPALIVE_MS = 10_000; // fire a progress notification every N ms while waiting for prefill to finish
25
- const FALLBACK_CONTEXT_LENGTH = parseInt(process.env.LM_CONTEXT_WINDOW || '100000', 10);
37
+ const FALLBACK_CONTEXT_LENGTH = parseInt(process.env.HOUTINI_LM_CONTEXT_WINDOW || process.env.LM_CONTEXT_WINDOW || '100000', 10);
26
38
  // ── Session-level token accounting ───────────────────────────────────
27
39
  // Tracks cumulative tokens offloaded to the local LLM across all calls
28
40
  // in this session. Shown in every response footer so Claude can reason
@@ -186,6 +198,9 @@ function apiHeaders() {
186
198
  const h = { 'Content-Type': 'application/json' };
187
199
  if (LM_PASSWORD)
188
200
  h['Authorization'] = `Bearer ${LM_PASSWORD}`;
201
+ const profile = getProviderProfile();
202
+ for (const [k, v] of Object.entries(profile.extraHeaders))
203
+ h[k] = v;
189
204
  return h;
190
205
  }
191
206
  // ── Request semaphore ────────────────────────────────────────────────
@@ -194,6 +209,10 @@ function apiHeaders() {
194
209
  // only one inference call runs at a time; others wait in line.
195
210
  let inferenceLock = Promise.resolve();
196
211
  function withInferenceLock(fn) {
212
+ // Remote providers (OpenRouter etc.) benefit from parallelism and do
213
+ // their own rate-limit handling; serialising here just throttles us.
214
+ if (!getProviderProfile().serialiseInference)
215
+ return fn();
197
216
  let release;
198
217
  const next = new Promise((resolve) => { release = resolve; });
199
218
  const wait = inferenceLock;
@@ -431,6 +450,56 @@ async function fetchWithTimeout(url, options, timeoutMs = CONNECT_TIMEOUT_MS) {
431
450
  clearTimeout(timer);
432
451
  }
433
452
  }
453
+ /**
454
+ * Parse Retry-After (seconds or HTTP-date) into ms. Null for unparseable.
455
+ */
456
+ function parseRetryAfter(headerValue) {
457
+ if (!headerValue)
458
+ return null;
459
+ const asInt = parseInt(headerValue, 10);
460
+ if (Number.isFinite(asInt) && asInt >= 0)
461
+ return asInt * 1000;
462
+ const asDate = Date.parse(headerValue);
463
+ if (Number.isFinite(asDate)) {
464
+ const delta = asDate - Date.now();
465
+ return delta > 0 ? delta : 0;
466
+ }
467
+ return null;
468
+ }
469
+ /**
470
+ * Retry a fetch on 429/5xx with jittered backoff. Only used when the
471
+ * current provider profile opts in (`retryOnRateLimit: true`). Each attempt
472
+ * gets its own fresh timeout so retries don't starve.
473
+ */
474
+ async function fetchWithRetry(url, options, timeoutMs, retries) {
475
+ let lastErr;
476
+ for (let attempt = 0; attempt <= retries; attempt++) {
477
+ try {
478
+ const res = await fetchWithTimeout(url, options, timeoutMs);
479
+ if ((res.status === 429 || res.status >= 500) && attempt < retries) {
480
+ const retryAfter = parseRetryAfter(res.headers.get('retry-after'));
481
+ try {
482
+ await res.body?.cancel();
483
+ }
484
+ catch { /* ignore */ }
485
+ const base = 400 * (attempt + 1);
486
+ const target = Math.min(Math.max(base, retryAfter ?? 0), 10_000);
487
+ const delay = Math.round(target * (0.5 + Math.random())); // 0.5×..1.5×
488
+ await new Promise((r) => setTimeout(r, delay));
489
+ continue;
490
+ }
491
+ return res;
492
+ }
493
+ catch (e) {
494
+ lastErr = e;
495
+ if (attempt < retries) {
496
+ const delay = Math.round(400 * (attempt + 1) * (0.5 + Math.random()));
497
+ await new Promise((r) => setTimeout(r, delay));
498
+ }
499
+ }
500
+ }
501
+ throw lastErr instanceof Error ? lastErr : new Error(String(lastErr));
502
+ }
434
503
  /**
435
504
  * Read from a stream with a per-chunk timeout.
436
505
  * Prevents hanging forever if the LLM stalls mid-generation.
@@ -529,7 +598,23 @@ async function chatCompletionStreamingInner(messages, options = {}) {
529
598
  // Hence the family-specific mapping below. When uncertain, we omit the
530
599
  // field entirely rather than risk a bad-value fallback.
531
600
  const modelId = (resolvedModel || '').toString();
532
- if (modelId) {
601
+ const profile = getProviderProfile();
602
+ if (profile.reasoningStyle === 'openrouter-field') {
603
+ // OpenRouter exposes reasoning as a separate response field and takes a
604
+ // per-request `reasoning: { exclude: true }` param to suppress it at the
605
+ // source. We don't expose a thinking channel to MCP clients, so exclude
606
+ // is the cleanest option. We still inflate max_tokens because some
607
+ // providers bill/count reasoning tokens against the cap before exclude
608
+ // filtering — and because `exclude` only hides reasoning, it doesn't
609
+ // guarantee the model generates less of it.
610
+ body.reasoning = { exclude: true };
611
+ const beforeInflation = effectiveMaxTokens;
612
+ const inflated = Math.max(beforeInflation * 4, beforeInflation + 2000);
613
+ body.max_tokens = inflated;
614
+ body.max_completion_tokens = inflated;
615
+ process.stderr.write(`[houtini-lm] OpenRouter model ${modelId || '(unspecified)'}: reasoning.exclude=true, max_tokens inflated ${beforeInflation} → ${inflated}\n`);
616
+ }
617
+ else if (modelId) {
533
618
  const thinking = await getThinkingSupport(modelId);
534
619
  if (thinking?.supportsThinkingToggle) {
535
620
  body.enable_thinking = false;
@@ -547,7 +632,45 @@ async function chatCompletionStreamingInner(messages, options = {}) {
547
632
  }
548
633
  }
549
634
  const startTime = Date.now();
550
- const res = await fetchWithTimeout(`${LM_BASE_URL}/v1/chat/completions`, { method: 'POST', headers: apiHeaders(), body: JSON.stringify(body) }, INFERENCE_CONNECT_TIMEOUT_MS);
635
+ // Progress-notification plumbing lifted ABOVE the fetch so we can keep the
636
+ // MCP client's request timeout alive during the HTTP handshake with the
637
+ // upstream LLM. On slow backends (big prompt, heavy prefill, cold model)
638
+ // the POST to /v1/chat/completions can sit for 30-60+ seconds before the
639
+ // response headers flush — that window used to be silent and would trip
640
+ // the client's 60s default timeout before any SSE chunk reached us.
641
+ let progressSeq = 0;
642
+ const sendProgress = (message) => {
643
+ if (options.progressToken === undefined)
644
+ return;
645
+ progressSeq++;
646
+ server.notification({
647
+ method: 'notifications/progress',
648
+ params: {
649
+ progressToken: options.progressToken,
650
+ progress: progressSeq,
651
+ message,
652
+ },
653
+ }).catch(() => { });
654
+ };
655
+ // Ping once immediately — resets the client's timeout clock as soon as the
656
+ // tool call is acknowledged server-side, regardless of how long prefill or
657
+ // the upstream handshake takes.
658
+ sendProgress('Connecting to model...');
659
+ // Pre-fetch heartbeat — keep the client alive while we wait for the
660
+ // upstream LLM to return response headers. Cleared once fetch resolves.
661
+ const preFetchTimer = setInterval(() => {
662
+ const waitedMs = Date.now() - startTime;
663
+ sendProgress(`Connecting to model... (${(waitedMs / 1000).toFixed(0)}s)`);
664
+ }, PREFILL_KEEPALIVE_MS);
665
+ let res;
666
+ try {
667
+ res = profile.retryOnRateLimit
668
+ ? await fetchWithRetry(`${LM_BASE_URL}/v1/chat/completions`, { method: 'POST', headers: apiHeaders(), body: JSON.stringify(body) }, INFERENCE_CONNECT_TIMEOUT_MS, 2)
669
+ : await fetchWithTimeout(`${LM_BASE_URL}/v1/chat/completions`, { method: 'POST', headers: apiHeaders(), body: JSON.stringify(body) }, INFERENCE_CONNECT_TIMEOUT_MS);
670
+ }
671
+ finally {
672
+ clearInterval(preFetchTimer);
673
+ }
551
674
  if (!res.ok) {
552
675
  const text = await res.text().catch(() => '');
553
676
  throw new Error(`LM Studio API error ${res.status}: ${text}`);
@@ -559,7 +682,6 @@ async function chatCompletionStreamingInner(messages, options = {}) {
559
682
  const decoder = new TextDecoder();
560
683
  let content = '';
561
684
  let reasoning = '';
562
- let progressSeq = 0;
563
685
  let model = '';
564
686
  let usage;
565
687
  let finishReason = '';
@@ -568,23 +690,9 @@ async function chatCompletionStreamingInner(messages, options = {}) {
568
690
  let buffer = '';
569
691
  let ttftMs;
570
692
  let firstChunkReceived = false;
571
- // Prefill keep-alive — /v1/chat/completions gives no SSE events during
572
- // prompt processing, so the MCP client clock ticks uninterrupted on a slow
573
- // backend with a big input. Fire a progress notification every 10s until
574
- // the first chunk arrives to keep the client from timing out at 60s.
575
- const sendProgress = (message) => {
576
- if (options.progressToken === undefined)
577
- return;
578
- progressSeq++;
579
- server.notification({
580
- method: 'notifications/progress',
581
- params: {
582
- progressToken: options.progressToken,
583
- progress: progressSeq,
584
- message,
585
- },
586
- }).catch(() => { });
587
- };
693
+ // Prefill keep-alive — even after HTTP headers flush, the first SSE chunk
694
+ // can still lag while the model finishes prompt processing. Fire a progress
695
+ // notification every 10s until the first chunk arrives.
588
696
  const keepAliveTimer = setInterval(() => {
589
697
  if (firstChunkReceived)
590
698
  return;
@@ -774,6 +882,30 @@ let detectedBackend = null;
774
882
  function getBackend() {
775
883
  return detectedBackend ?? 'openai-compat';
776
884
  }
885
+ function getProviderProfile() {
886
+ const backend = getBackend();
887
+ const isOpenRouter = backend === 'openrouter' ||
888
+ HOUTINI_LM_PROVIDER === 'openrouter' ||
889
+ /openrouter\.ai/i.test(LM_BASE_URL);
890
+ if (isOpenRouter) {
891
+ return {
892
+ extraHeaders: {
893
+ 'HTTP-Referer': 'https://github.com/houtini-ai/lm',
894
+ 'X-Title': 'houtini-lm',
895
+ },
896
+ serialiseInference: false,
897
+ retryOnRateLimit: true,
898
+ reasoningStyle: 'openrouter-field',
899
+ };
900
+ }
901
+ // Local / OpenAI-compatible defaults.
902
+ return {
903
+ extraHeaders: {},
904
+ serialiseInference: true,
905
+ retryOnRateLimit: false,
906
+ reasoningStyle: 'think-blocks',
907
+ };
908
+ }
777
909
  /**
778
910
  * Fetch models with backend-aware probing.
779
911
  * 1. LM Studio /api/v0/models — richest metadata, sets backend='lmstudio'
@@ -781,6 +913,26 @@ function getBackend() {
781
913
  * 3. OpenAI-compatible /v1/models — generic fallback (DeepSeek, vLLM, llama.cpp, OpenRouter)
782
914
  */
783
915
  async function listModelsRaw() {
916
+ // OpenRouter short-circuit — no point probing LM Studio/Ollama-specific
917
+ // endpoints. /v1/models returns richer metadata than our fallback path
918
+ // normally exposes: context_length, architecture.input_modalities, pricing.
919
+ const isOpenRouter = HOUTINI_LM_PROVIDER === 'openrouter' || /openrouter\.ai/i.test(LM_BASE_URL);
920
+ if (isOpenRouter) {
921
+ const res = await fetchWithTimeout(`${LM_BASE_URL}/v1/models`, { headers: apiHeaders() });
922
+ if (!res.ok)
923
+ throw new Error(`Failed to list OpenRouter models: ${res.status}`);
924
+ const data = (await res.json());
925
+ detectedBackend = 'openrouter';
926
+ return data.data.map((m) => ({
927
+ id: m.id,
928
+ object: 'model',
929
+ type: 'llm',
930
+ state: 'loaded', // OpenRouter models are always routable
931
+ context_length: m.context_length,
932
+ max_context_length: m.context_length,
933
+ publisher: m.id.includes('/') ? m.id.split('/')[0] : undefined,
934
+ }));
935
+ }
784
936
  // Try LM Studio's v0 API first — returns type, arch, publisher, quantization, state
785
937
  try {
786
938
  const v0 = await fetchWithTimeout(`${LM_BASE_URL}/api/v0/models`, { headers: apiHeaders() });
@@ -930,13 +1082,21 @@ async function estimatePrefill(inputChars, modelId) {
930
1082
  prefillTokPerSec: DEFAULT_PREFILL_TOK_PER_SEC,
931
1083
  };
932
1084
  }
933
- async function routeToModel(taskType) {
1085
+ async function routeToModel(taskType, override) {
1086
+ // Explicit override wins over routing. Honoured regardless of whether we
1087
+ // can even list models — useful for remote providers (OpenRouter) where
1088
+ // the user knows the model id and doesn't want routing to second-guess.
1089
+ const pinned = override || LM_MODEL;
1090
+ if (pinned) {
1091
+ const hints = getPromptHints(pinned);
1092
+ return { modelId: pinned, hints };
1093
+ }
934
1094
  let models;
935
1095
  try {
936
1096
  models = await listModelsRaw();
937
1097
  }
938
1098
  catch {
939
- // Can't reach server — fall back to default
1099
+ // Can't reach server — fall back to default (empty string; caller handles)
940
1100
  const hints = getPromptHints(LM_MODEL);
941
1101
  return { modelId: LM_MODEL || '', hints };
942
1102
  }
@@ -1142,6 +1302,10 @@ const TOOLS = [
1142
1302
  type: 'object',
1143
1303
  description: 'Force structured JSON output. Provide a JSON Schema object and the response will be guaranteed valid JSON conforming to it. Example: {"name":"result","schema":{"type":"object","properties":{"answer":{"type":"string"}},"required":["answer"]}}',
1144
1304
  },
1305
+ model: {
1306
+ type: 'string',
1307
+ description: 'Optional: pin to a specific model id (e.g. "nvidia/nemotron-3-nano-30b-a3b:free" on OpenRouter, "qwen.qwen3-coder-30b-a3b-instruct" on LM Studio). When set, overrides automatic routing. Useful on providers with many models where auto-routing picks poorly.',
1308
+ },
1145
1309
  },
1146
1310
  required: ['message'],
1147
1311
  },
@@ -1188,6 +1352,10 @@ const TOOLS = [
1188
1352
  type: 'object',
1189
1353
  description: 'Force structured JSON output. Provide a JSON Schema object and the response will be guaranteed valid JSON conforming to it.',
1190
1354
  },
1355
+ model: {
1356
+ type: 'string',
1357
+ description: 'Optional: pin to a specific model id. When set, overrides automatic routing.',
1358
+ },
1191
1359
  },
1192
1360
  required: ['instruction'],
1193
1361
  },
@@ -1226,6 +1394,10 @@ const TOOLS = [
1226
1394
  type: 'number',
1227
1395
  description: 'Max response tokens. Defaults to 25% of the loaded model\'s context window (fallback 16,384).',
1228
1396
  },
1397
+ model: {
1398
+ type: 'string',
1399
+ description: 'Optional: pin to a specific model id. When set, overrides automatic routing.',
1400
+ },
1229
1401
  },
1230
1402
  required: ['code', 'task'],
1231
1403
  },
@@ -1265,6 +1437,10 @@ const TOOLS = [
1265
1437
  type: 'number',
1266
1438
  description: 'Optional output budget override. Defaults to 25% of the loaded model\'s context window.',
1267
1439
  },
1440
+ model: {
1441
+ type: 'string',
1442
+ description: 'Optional: pin to a specific model id. When set, overrides automatic routing.',
1443
+ },
1268
1444
  },
1269
1445
  required: ['paths', 'task'],
1270
1446
  },
@@ -1331,7 +1507,7 @@ const SIDEKICK_INSTRUCTIONS = `Houtini-lm is a local LLM sidekick. It runs on th
1331
1507
  `When to reach for it: bounded, self-contained tasks you can describe in one message — explanations, boilerplate, test stubs, code review of pasted or file-loaded source, translations, commit messages, format conversion, brainstorming. Trades wall-clock time for tokens (typically 3-30× slower than frontier models).\n\n` +
1332
1508
  `When not to: tasks that need tool access, cross-file reasoning you haven't captured, or work fast enough to answer directly before the delegation round-trip completes.\n\n` +
1333
1509
  `Call \`discover\` in delegation-heavy sessions to see what model is loaded, its capability profile, and — after the first real call — its measured speed. The response footer reports cumulative tokens kept in the user's quota.`;
1334
- const server = new Server({ name: 'houtini-lm', version: '2.12.0' }, { capabilities: { tools: {}, resources: {} }, instructions: SIDEKICK_INSTRUCTIONS });
1510
+ const server = new Server({ name: 'houtini-lm', version: '2.13.2' }, { capabilities: { tools: {}, resources: {} }, instructions: SIDEKICK_INSTRUCTIONS });
1335
1511
  // ── MCP Resources ─────────────────────────────────────────────────────
1336
1512
  // Exposes session performance metrics as a readable resource so Claude can
1337
1513
  // proactively check offload efficiency and make smarter delegation decisions.
@@ -1383,8 +1559,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1383
1559
  try {
1384
1560
  switch (name) {
1385
1561
  case 'chat': {
1386
- const { message, system, temperature, max_tokens, json_schema } = args;
1387
- const route = await routeToModel('chat');
1562
+ const { message, system, temperature, max_tokens, json_schema, model } = args;
1563
+ const route = await routeToModel('chat', model);
1388
1564
  const messages = [];
1389
1565
  // Inject output constraint into system prompt if the model needs it
1390
1566
  const systemContent = system
@@ -1407,8 +1583,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1407
1583
  return { content: [{ type: 'text', text: resp.content + footer }] };
1408
1584
  }
1409
1585
  case 'custom_prompt': {
1410
- const { system, context, instruction, temperature, max_tokens, json_schema } = args;
1411
- const route = await routeToModel('analysis');
1586
+ const { system, context, instruction, temperature, max_tokens, json_schema, model } = args;
1587
+ const route = await routeToModel('analysis', model);
1412
1588
  const messages = [];
1413
1589
  const systemContent = system
1414
1590
  ? (route.hints.outputConstraint ? `${system}\n\n${route.hints.outputConstraint}` : system)
@@ -1439,9 +1615,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1439
1615
  };
1440
1616
  }
1441
1617
  case 'code_task': {
1442
- const { code, task, language, max_tokens: codeMaxTokens } = args;
1618
+ const { code, task, language, max_tokens: codeMaxTokens, model } = args;
1443
1619
  const lang = language || 'unknown';
1444
- const route = await routeToModel('code');
1620
+ const route = await routeToModel('code', model);
1445
1621
  const outputConstraint = route.hints.outputConstraint
1446
1622
  ? ` ${route.hints.outputConstraint}`
1447
1623
  : '';
@@ -1468,7 +1644,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1468
1644
  return { content: [{ type: 'text', text: codeResp.content + codeFooter + suggestionLine }] };
1469
1645
  }
1470
1646
  case 'code_task_files': {
1471
- const { paths, task, language, max_tokens: codeMaxTokens } = args;
1647
+ const { paths, task, language, max_tokens: codeMaxTokens, model } = args;
1472
1648
  if (!Array.isArray(paths) || paths.length === 0) {
1473
1649
  return {
1474
1650
  content: [{ type: 'text', text: 'Error: paths must be a non-empty array of absolute file paths.' }],
@@ -1507,7 +1683,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1507
1683
  };
1508
1684
  }
1509
1685
  const lang = language || 'unknown';
1510
- const route = await routeToModel('code');
1686
+ const route = await routeToModel('code', model);
1511
1687
  const outputConstraint = route.hints.outputConstraint
1512
1688
  ? ` ${route.hints.outputConstraint}`
1513
1689
  : '';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@houtini/lm",
3
- "version": "2.12.0",
3
+ "version": "2.13.2",
4
4
  "type": "module",
5
5
  "description": "MCP server for local LLMs — connects to LM Studio or any OpenAI-compatible endpoint",
6
6
  "mcpName": "io.github.houtini-ai/lm",
package/server.json CHANGED
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/houtini-ai/lm",
8
8
  "source": "github"
9
9
  },
10
- "version": "2.12.0",
10
+ "version": "2.13.2",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@houtini/lm",
15
- "version": "2.12.0",
15
+ "version": "2.13.2",
16
16
  "transport": [
17
17
  {
18
18
  "type": "stdio"
@@ -20,22 +20,28 @@
20
20
  ],
21
21
  "environmentVariables": [
22
22
  {
23
- "name": "LM_STUDIO_URL",
24
- "description": "Base URL of the OpenAI-compatible API endpoint",
23
+ "name": "HOUTINI_LM_ENDPOINT_URL",
24
+ "description": "Base URL of the OpenAI-compatible API endpoint (e.g. http://localhost:1234, https://openrouter.ai/api). Legacy alias: LM_STUDIO_URL.",
25
25
  "isRequired": false,
26
26
  "format": "url"
27
27
  },
28
28
  {
29
- "name": "LM_STUDIO_MODEL",
30
- "description": "Model identifier to use for requests (auto-detected if not set)",
29
+ "name": "HOUTINI_LM_API_KEY",
30
+ "description": "Bearer token for API authentication (no auth if blank). Legacy aliases: LM_STUDIO_PASSWORD, LM_PASSWORD, OPENROUTER_API_KEY.",
31
31
  "isRequired": false,
32
+ "isSecret": true,
32
33
  "format": "string"
33
34
  },
34
35
  {
35
- "name": "LM_STUDIO_PASSWORD",
36
- "description": "Bearer token for API authentication (no auth if blank)",
36
+ "name": "HOUTINI_LM_MODEL",
37
+ "description": "Model identifier to use for requests (auto-detected if not set). Legacy alias: LM_STUDIO_MODEL.",
38
+ "isRequired": false,
39
+ "format": "string"
40
+ },
41
+ {
42
+ "name": "HOUTINI_LM_PROVIDER",
43
+ "description": "Optional provider override: 'openrouter' forces OpenRouter-specific handling (attribution headers, reasoning.exclude, no inference serialisation). Auto-detected from the endpoint URL when possible.",
37
44
  "isRequired": false,
38
- "isSecret": true,
39
45
  "format": "string"
40
46
  }
41
47
  ]