← All modules

Local AI Cat module

Local API server

Current shipping, testing, and product context for this part of Local AI Cat.

Status

Where it stands

Lane: StableStatus: LiveTesting: prov. +behavioral
Platforms
macOS
Release channels
Alpha · Beta · Main
Distribution
Indoor · Outdoor
  • AlphamacOS
  • BetamacOS
  • Outdoor · Direct downloadmacOS
  • Indoor · App StoremacOS

Description

What it does

macOS. HTTP routing, public docs/OpenAPI/health/Ollama-liveness endpoint response policy, runtime route-forwarding policy, request/response transport parsing/serialization, multipart parsing, upload content-type extension policy, model list/status responses, transcription request parameter mapping, recording-session route classification, verbose transcription response model, settings defaults, port fallback, build-injected token requirement default, token persistence/redaction/generation/reset policy, network-exposure flag, idle-unload policy/label, menu-bar status/accessibility presentation, Settings server status-row presentation, start-failure/port-conflict presentation, request-log filtering/path sanitization/auth-state classification, agent-skill Markdown/auth/include-token generation/copy hint, OpenAPI JSON generation, status/docs page HTML, LocalAPIListenerControlling, and LocalAPIListenerLaunchParticipant are packaged. INDOOR DIFFERENCE: token required by default in Indoor. The app retains NWListener binding, notification delivery, settings composition, menu-bar side effects, and microphone recording execution; startup and termination now resolve that adapter lazily through packaged launch participants. The existing `.localAPI` UIContribution ID, Local API & Automation group, order, availability, and visible settings surface remain unchanged. Localhost only unless network exposure is explicitly enabled. EXTERNAL MODEL INTEROP (the `externalModels` capability, formerly the standalone `lmstudio-interop` feature; reclassified 2026-08-03 because it is glue inside LocalAICore + LocalAIHTTPServer, not a module of its own): macOS / Outdoor + Beta only. LMStudioModelSource (walk ~/.lmstudio/models/<org>/<model>, validate against the app completeness rule, reject partial/.part/sharded-without-index, route GGUF-only dirs to the GGUF backend via format=.gguf, infer capabilities from config.json) is packaged in LocalAICore and unit-tested with fixtures + the real on-disk library. The LocalAIExternalModelServing provider protocol and registry + GET /v1/local/models/external, POST /external/import (idempotent symlink + .userAdded catalog contribution), POST /refresh, and the GET /v1/models merge live in LocalAIHTTPServer (route-tested). The app registers LocalAIExternalModelService at composition time; it owns only the symlink link-in (~/Library/Caches/models/<org>/<model> → the LM Studio dir; never clobbers a real dir), .userAdded projection, and HubSnapshotDownloader's local-first short-circuit so a complete local/imported model loads offline without a HubApi network revision-check. The sandboxed App Store build can't read ~/.lmstudio or symlink into the model cache, so `#if !APPSTORE_BUILD && os(macOS)` strips the source + routes (they 503). Deferred: surfacing imported models in the model-manager/picker UI with a provenance badge.

Headless Local API

Drive it over the loopback API

API parity: PartialLogging: L0 · prov.

Logging / observability: provisional grade L0structured=0 print=40 sentry=0.

discover
present
execute
present
observe
present
configure
partial
cancel/stop
present
reset
not applicable
localApiupdateAutomationlocalCodingutilitiesexternalModelsaudioPlayback
  • /v1/local/app/action
  • /v1/local/app/artifacts/{id}
  • /v1/local/app/navigate
  • /v1/local/app/screenshot
  • /v1/local/app/state
  • /v1/local/app/surfaces
  • /v1/local/app/transactions/{id}
  • /v1/local/approvals/pending
  • /v1/local/approvals/{id}
  • /v1/local/artifacts

Media

See it in action

Walkthrough coming soonUI-test video · GIF fallback
A short walkthrough will appear here when the module's UI test media is ready.

Backlog / improvements

What comes next

No improvements are listed for this module yet.

History

How it got here

No change history has been published for this module yet.