Back to guides
Compare·September 21, 2026·11 min read

Jan AI vs LM Studio: local models, privacy and your own API key

LM Studio split into two apps in 2026 and Jan did not, which changes both the price answer and the question of which app takes your own API key.

Last reviewed on .

Jan AI and LM Studio are no longer two comparable apps, and any 2026 comparison that does not say so gets both the price and the API question wrong. Jan Desktop is a single free Apache-2.0 application. LM Studio is now two desktop products: LM Studio (Classic), currently 0.4.25, the free local model manager and OpenAI-compatible server that the name has always meant, and LM Studio Bionic, a separate agent app announced July 16, 2026 with $0, $20 and $100 plans. Every third-party comparison currently ranking for this query predates that split.

The short answer. If you want one desktop window that runs a local model and talks to a hosted model under your own key, Jan Desktop is the one that does it first-party — Settings > Model Providers > Add Provider takes a base URL and a key. If you want the stronger local model manager and a server other software can call, LM Studio (Classic) is the better tool and costs nothing, including at work. Neither LM Studio app documents a general base-URL field for a third-party endpoint; Classic's changelog does list an undocumented "enterprise internal network model endpoint" mode, covered below.

One disambiguation before the detail, because the search results mix them: Jan, the local AI app at jan.ai built by Menlo Research, is not Janitor AI, the roleplay chat site. And "Jan API key" usually is not a key you buy — Jan sells nothing. See the FAQ for what that phrase almost always means.

Which one should you pick

The decision reads the same whether you searched for Jan vs LM Studio or LM Studio vs Jan, because it turns on one question: does the app need to reach a model you pay for elsewhere? Work down this table and stop at the first row that describes you. It is ordered by how decisive the difference is, not by feature count.

If this is your situationPickBecause
One app over a local model and a hosted one, under a key you controlJan DesktopThe only documented first-party custom-endpoint field of the three. OpenAI-compatible or Anthropic-compatible, base URL plus key
You need the app's source, or to ship it inside something elseJan DesktopApache-2.0. LM Studio's desktop app is proprietary and its terms forbid service-bureau and software-as-a-service use
A local server for your own scripts, and a headless deployment laterLM Studio (Classic)Serves an OpenAI-like API on localhost:1234/v1, optionally on the LAN and behind a required token, plus the llmster daemon for machines with no GUI
A ready-made agent that plans, uses tools and works on filesLM Studio BionicPurpose-built for that. The trade is the model backend: Cloud, Local or Remote, with no place to put a third-party endpoint
Hard offline, no account, nothing leaves the machineEither free appBoth run open-weight models on your own hardware. Jan states local models need no key and no network; Bionic's Local and LM Link models need no account and no credits
You are budgeting, and the answer has to survive an auditRead the price sectionClassic is $0. Bionic is $0 / $20 / $100 with an unpublished usage allowance. A single "LM Studio price" does not exist

Two things that are not differences, despite showing up in older comparisons. Both run open-weight model files on your own hardware — LM Studio's built-in downloader pulls "any supported model from Hugging Face", and Jan's documentation names llama.cpp and MLX as its local engines — so the weights you already have are not stranded by switching. Migration is re-pointing an app at files on disk and re-entering a key, not exporting a proprietary format. And both are free to use at work: Jan by its licence, Classic by the vendor's July 8, 2025 policy, which states there is no need to fill a form or contact them first.

Hardware: one published floor, not two

This section has one column on purpose. LM Studio publishes a system requirements page; Jan's desktop documentation has no equivalent — no hardware or system-requirements page was found in its documentation navigation when it was checked for this article. So there is no symmetric Jan figure to print, and inventing one would be the easiest lie on this page.

PlatformLM Studio's published floor
macOSApple Silicon (M1/M2/M3/M4), macOS 14.0 or newer, 16GB+ RAM recommended
WindowsAVX2 required on x64, at least 16GB RAM recommended, at least 4GB dedicated VRAM recommended; x64 and ARM
LinuxUbuntu 20.04 or newer, distributed as an AppImage, x64 and aarch64

Treat these as a guide to both apps rather than to one. Since both load the same open-weight model files, the binding constraint is the model you pick and the memory it needs, not which launcher you opened. Jan takes the per-model route instead: its quickstart says each model in the Hub "shows whether it fits your hardware, so you can pick one your machine can run comfortably" — a check at download time rather than a table to read beforehand.

Both ship a local server — and that is what "Jan API key" means

The most-searched Jan question has a mundane answer. Jan's local API server is started from Settings > Local API Server, defaults to port 1337, and exposes http://127.0.0.1:1337/v1/chat/completions. Its API key is one you invent: "Set any string (e.g., a-secure-password)", sent as an Authorization: Bearer header. It binds to 127.0.0.1 by default, so nothing on your network reaches it until you change that.

LM Studio (Classic) does the same job on a different port. Its server documentation describes serving local models "either on localhost or on the network", and its server settings list a configurable Server Port, a switch to "Allow other devices on the same local network to access the API server", and a "Require Authentication" option that requires clients to "provide a valid API token via the Authorization header". The OpenAI compatibility page gives the default base URL as http://localhost:1234/v1.

Local serverJan DesktopLM Studio (Classic)
Default endpointhttp://127.0.0.1:1337/v1http://localhost:1234/v1
Bound address127.0.0.1 by default, 0.0.0.0 optionalLocal by default, "Serve on Local Network" optional
AuthenticationAny string you set, sent as a bearer token"Require Authentication" makes clients send a valid token
Headless operationNo daemon documented for Jan Desktopllmster, described in the docs as LM Studio "packaged to be server-native, without reliance on the GUI"

Note the direction. In this mode both apps serve an OpenAI-compatible API; neither is consuming one. That is the opposite of what the next section is about, and conflating the two is the single most common mistake in this comparison. If you want the pattern where a local server and a hosted gateway sit behind the same client, the local-endpoint doc walks through exactly that shape.

What actually leaves your machine

Jan's privacy page states "Zero data collection until you say so", limits opt-in analytics to active users and retention against a random ID processed through PostHog EU, and is direct about the cloud case: cloud models "need to see your messages to work. That's between you and them - Jan just makes the introduction." Since v0.8.4, provider credentials moved out of the webview's localStorage into a backend store with secrets in the OS keyring, migrated automatically on first launch.

One gap worth naming rather than glossing. The same release added built-in web_search and web_fetch tools "backed by a native tauri-plugin-websearch", and the changelog does not say which search provider powers them, whether a key is needed, or whose servers see the query. Jan's privacy page does not cover web search either. If your reason for running a local app is that queries stay local, treat those tools as networked until the vendor documents otherwise.

On the LM Studio side the data path depends entirely on which model source you pick in Bionic. Its credits documentation says "Local models and remote LM Link models do not consume credits and do not require billing set up", and Cloud models run on what LM Studio calls its Secure Cloud — a service the vendor's enterprise page describes as its "US-based Zero Data Retention (ZDR) cloud". That is the vendor's own description of its cloud, not an independent finding. Remote means LM Link to another of your own devices, so inference moves but the conversation stays where you are typing.

What each one costs

Every row below names the product, because a sentence that just says "LM Studio" is now false about one of the two apps.

ProductPublished priceWhat that buys
Jan Desktop$0, Apache-2.0The whole app. No account, no plan, no pricing page on jan.ai
LM Studio (Classic) 0.4.25$0, including use at workLocal models, the chat UI and the programmable API server
LM Studio Bionic, Free$0"Bionic Agent", local LLMs via llama.cpp and MLX, offline voice transcription, LM Link for up to 5 devices, limited web search
LM Studio Bionic+$20 USD / monthUS-hosted open models named on the pricing page, discounted bulk tokens, web search and page extraction
LM Studio Bionic Pro$100 USD / month"5× usage limits" — the page never states the baseline it multiplies
Bionic cloud credits beyond the allowanceNot publishedUsage past the plan allowance; no per-token rate and no allowance size appears on the pricing page
LM Studio EnterpriseNo price publishedThe enterprise page carries a contact form asking for work email, company and team size, and states no price

Prices read from lmstudio.ai/pricing, the download page and jan.ai on September 19, 2026. That transcription line belongs to Bionic's Free plan and runs on the user's own device; Kunavo serves no speech-to-text or embedding models, so nothing in that row has a Kunavo equivalent.

Two warnings. First, several third-party sites publish per-token rates and tier tables for LM Studio cloud inference. The vendor's own pricing page publishes neither a per-token rate nor the size of the included allowance, and it says only that "Cloud credits cover usage beyond the allowance included with your plan". Any specific figure you find elsewhere was not read off lmstudio.ai. Second, its team story is genuinely unresolved: the same page offers centralised billing through an organisation while saying "Subscription plans for teams coming soon", which is a different thing from the "Teams" plan the July 8, 2025 post said was coming later that month. Confirm in checkout before budgeting a seat.

Pointing either app at a hosted API

This is the real asymmetry, and it is worth stating precisely rather than as "LM Studio cannot do it".

Jan Desktop has a first-party path with no plan gate. Its custom endpoint documentation puts it at Settings > Model Providers > Add Provider, with a format selector offering "OpenAI-compatible" or "Anthropic-compatible" — the second added in v0.8.1, May 29, 2026 — and three fields: provider name, base URL, API key.

FieldWhat Jan's documentation saysFor a Kunavo key
API formatOpenAI-compatible or Anthropic-compatibleUse OpenAI-compatible. The Anthropic-format base URL is unverified here — see the caveat below
Base URL"Base URL must include the version path your server expects"; the documented mistake is omitting /v1 and getting a 404https://api.kunavo.com/v1
API keyRequired at registration, placeholder allowed for keyless local serversYour own key from the dashboard
Model list"Jan tries to fetch the available models from {base_url}/models when you save. If your endpoint doesn't expose that, add models manually"Kunavo serves /v1/models, so discovery has something to call
Capabilities"Custom providers aren't capability-detected automatically — Jan can't infer whether a model supports tools, vision, or audio"Switch tools and vision on per model by hand after the models appear

That last row is the friction point people hit and then blame on the endpoint. Jan is not probing your provider for capabilities; a freshly added model arrives with tools and vision off, and you set them per model in its configuration. Before you paste anything, it costs one command to confirm the endpoint answers the request Jan's discovery will make:

check-before-you-paste.sh
# Does the endpoint answer the request Jan's auto-discovery makes?
curl https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer $KUNAVO_API_KEY"

# Base URL to paste into Jan: https://api.kunavo.com/v1
# Dropping the /v1 is the documented way to get a 404.

Be clear about what this is: a procedure derived from Jan's published documentation and Kunavo's own endpoints, not a compatibility test. Jan has not been runtime-tested against api.kunavo.com here, so keep a working route available while you try it. The Anthropic-compatible option is left deliberately unfilled — Jan's docs describe the format but do not state whether Jan appends the Messages path to your base URL, and a guessed suffix is just a 404 in your app. If you want the Messages protocol, read the Anthropic base URL doc and test it yourself.

Neither LM Studio app documents that field. Classic takes its models from Hugging Face and runs them locally; no base-URL or provider-key setting for a third-party service appears in its app documentation. The one documented escape hatch is the official plugin system: a generator is "a replacement for local LLMs" that is "useful for implementing adapters for external models, such as using a remote LM Studio instance or other online models", and a plugin containing one "will show up in the model dropdown and act as a model". The mechanism is official; the adapters that use it are community-published, so that route means handing a third-party plugin your API key. Judge that trade on its own terms.

Bionic does not have the hatch at all. Its model documentation lists exactly three sources — Cloud (hosted, needs an account and credits), Local (on-device) and Remote (another of your devices over LM Link) — with no custom base URL and no user key. The extensibility Bionic's own documentation names is skills, which teach it repeatable actions rather than supply a model backend. One caveat to the flat "no": LM Studio's 0.4.20 changelog entry lists "Support for enterprise internal network model endpoint", so a non-Hugging-Face endpoint mode does exist in Classic. No documentation page found for this article describes how it is configured or who can turn it on, so treat it as real but undocumented rather than as a route you can plan around.

The direction that does work with LM Studio is the reverse one: keep Classic serving on localhost:1234/v1 and let the calling client choose between that and a gateway per task. The OpenAI-compatible API guide covers that switch, and if you are comparing chat front-ends rather than local runtimes, AnythingLLM vs Open WebUI and LibreChat vs Open WebUI cover two that take a base URL the same way Jan does.

A worked estimate if you do add a hosted model

These are illustrative token arithmetic, not measured costs and not a bill ceiling. Assume a light month of desktop chat: 300 messages, each sending about 3,000 input tokens once the conversation so far is re-sent, and receiving 600 output tokens — so 900,000 input and 180,000 output. The heavy column is the same shape at five times the volume. Rates are live Kunavo catalog prices per million tokens.

ModelInput / output per 1MLight month estimateHeavy month estimate
Claude Haiku 4.5$0.40 / $2.00$0.72$3.60
Gemini 3.8 Flash$0.525 / $2.625$0.95$4.73
GPT-5.6 Terra$0.70 / $4.20$1.39$6.93
Claude Sonnet 4.6$1.20 / $6.00$2.16$10.80

Under these assumptions the heaviest row lands at $10.80, below Bionic+ at $20 a month. That is a real reading of these numbers and a narrow one. It holds for this pattern of use, these four models and these rates, and it sets a metered bill against a plan that also bundles product features and LM Studio's own hosted open models, which Kunavo does not carry. Metered tokens buy only tokens: the cost tracks what you send, upward as well as down. And a lower listed rate is not the same thing as a lower total — a model that needs three attempts at a task can cost more than one that gets it right the first time, so shortlist on the cheapest model that finishes your work rather than on the cheapest row. AI cost optimization covers that method.

Kunavo's catalog amount is a billing floor rather than a cap: when the upstream reports its charge, the bill is the greater of catalog cost and upstream cost times the applicable markup. Cache charges and external tools sit outside this example. The minimum top-up is $10 in prepaid credit, which is a funding minimum rather than a task fee or a subscription — the same arithmetic fits roughly 13 light months of Claude Haiku 4.5 chat inside it, which is an estimate from the assumptions above and not a guarantee of how long any balance lasts. See billing details.

Feature comparison at a glance

ItemJan DesktopLM Studio (Classic)LM Studio Bionic
LicenceApache-2.0, Menlo ResearchProprietary, Element Labs, Inc.Proprietary, Element Labs, Inc.
Price$0$0, work use included$0 / $20 / $100 a month
Latest version seenv0.8.4, dated July 21, 2026 on the changelog0.4.25, dated September 19, 2026 on the changelog1.1.5, dated September 19, 2026 on the changelog
Local engines named in the docsllama.cpp and MLXllama.cpp everywhere, plus Apple MLX on Apple Siliconllama.cpp and MLX, per the pricing page
Your own endpoint and keyYes, first-party, OpenAI- or Anthropic-compatibleA plugin generator, community-published; plus an undocumented "enterprise internal network model endpoint" mode in the 0.4.20 changelogNot among the three documented model sources
Serves an API to other softwareYes, port 1337 by defaultYes, port 1234 by default, LAN optionalNot documented as a server
Headless / no GUINot documented for Desktopllmster daemonNot documented
Vendor-hosted modelsNone — Jan sells no inferenceNot documented in Classic chatYes, billed in credits
Published hardware floorNone publishedYes, per platformNone published separately
Public source repositoryjanhq/jan, not archivedSDKs and CLI only, no app repoNo app repo

Two rows deserve their footnote. Whether Classic can chat with LM Studio's hosted cloud models is genuinely unclear — no documentation page confirms it either way, so the cell says "not documented" rather than "no". And the two version rows are read off separate LM Studio changelogs — one for Classic, one for Bionic — both of which move faster than this page, so treat them as what was current when it was checked rather than as the version you will be offered.

If you decide to attach a hosted key

Kunavo publishes no Jan-specific integration page, so the honest route is the generic one: create a key, point Jan's custom provider at https://api.kunavo.com/v1, let discovery populate the model list, then enable tools or vision per model by hand. Start at the quickstart for the key and base URL, and create a Kunavo account when you are ready to fund one. Keep your local model configured alongside it — the reason to run Jan or LM Studio in the first place is that the offline path stays available when the hosted one is not worth paying for.

FAQ

Is Jan better than LM Studio?

They answer different questions, and since 2026 the comparison has three sides rather than two. Jan Desktop is one free Apache-2.0 app that runs local models and can also talk to an OpenAI-compatible or Anthropic-compatible endpoint you type in, which makes it the one to pick if you want a single window over both a local model and a paid hosted one. LM Studio (Classic) is free, proprietary, and the stronger tool if you mainly manage and serve local models: it downloads from Hugging Face, serves an OpenAI-like API on localhost:1234/v1, and ships a headless daemon called llmster for servers. LM Studio Bionic is a separate agent app with Free, $20 and $100 plans whose model picker offers only Cloud, Local and Remote — no field for your own endpoint.

Is LM Studio free?

It depends which LM Studio, and this is where most comparison articles are now out of date. LM Studio (Classic), whose latest release on the vendor's changelog is 0.4.25 of September 19, 2026, is free including at work: the vendor's July 8, 2025 post says there is no need to fill a form or contact them to use it at work, and that is still the standing policy. LM Studio Bionic, the separate agent app announced July 16, 2026, has a Free plan at $0, Bionic+ at $20 USD a month and Pro at $100 USD a month. Bionic's Free plan covers local models and LM Link; the paid plans add LM Studio's own hosted open models. So "LM Studio is free" and "LM Studio costs $20 a month" are both true, of different apps.

Where do I get a Jan API key?

You do not buy one, because Jan sells nothing — jan.ai publishes no pricing page and no paid tier. The phrase almost always means one of two things. Either you want the key for Jan's own local API server, in which case you open Settings > Local API Server, set any string you like as the key, and send it as an Authorization: Bearer header to http://127.0.0.1:1337/v1/chat/completions. Or you want a key for a hosted model to use inside Jan, in which case the key comes from that provider and goes into Settings > Model Providers. Note also that Jan, the local AI app at jan.ai, is not Janitor AI, which is an unrelated roleplay chat site.

Can I use my own API key in LM Studio?

Not through any documented first-party setting in either app, as of September 21, 2026. LM Studio (Classic) takes its models from Hugging Face and runs them locally; no base-URL or provider-key field for a third-party service appears in its documentation. Its 0.4.20 changelog entry does list "Support for enterprise internal network model endpoint", so such a mode exists, but no documentation page found for this article explains how to configure it. The only documented route to an outside model is the official plugin system's generator hook, which LM Studio's own docs describe as a replacement for the local LLM that is useful for adapters to other online models — but the adapters that do this are community-published, so you would be trusting a third-party plugin with your key. LM Studio Bionic offers Cloud, Local and Remote models only, where Cloud means LM Studio's own hosted service. Jan Desktop, by contrast, takes a base URL and a key directly in Settings > Model Providers > Add Provider.

Is Jan open source, and is LM Studio open source?

Jan is. Its LICENSE file is the Apache License 2.0, copyright Menlo Research; GitHub's license field reads NOASSERTION only because of the custom header block above the licence text. The repository janhq/jan is not archived and carried more than 44,500 stars when the GitHub API was checked for this page. LM Studio is not: its terms of use name Element Labs, Inc. as the licensor, grant a licence to use the software "solely for Your personal and / or internal business purposes", and forbid you to "sublicense, distribute, sell, use for service bureau use, as an application service provider, or a software-as-a-service" it. The confusion comes from LM Studio's GitHub organisation, which is full of MIT repositories — lmstudio-js, the lms CLI, lmstudio-python, mlx-engine and venvstacks. Those are the SDKs, the CLI and an engine. There is no public repository for the desktop application itself.

Do Jan and LM Studio work offline?

Yes for local inference in both, and that is the point of both tools. Jan's documentation says local models run entirely on your machine with no API key and no network, and its privacy page states that cloud models are a connection Jan brokers rather than something it sees. LM Studio (Classic) downloads a model once from Hugging Face and then runs it on your own hardware. Two caveats. Anything networked — a hosted model, or Jan's built-in web_search and web_fetch tools added in v0.8.4 — sends data off the machine by definition, and Jan's changelog does not name which search provider backs those tools. And LM Studio Bionic's Cloud models are a hosted service that needs an account and credits, while its Local and LM Link models need neither.

Vendor pages, documentation and changelogs fetched September 19 and re-checked September 21, 2026: jan.ai's homepage, quickstart, custom-endpoint, API-server, privacy and changelog pages, plus the LICENSE file in janhq/jan; lmstudio.ai's pricing, download, enterprise, terms, Classic and Bionic changelogs, system requirements, model-download, app docs, Bionic models and credits, generator plugin, server and server-settings, OpenAI-compatibility, headless and free-for-work pages; and the GitHub API for janhq/jan and the lmstudio-ai organisation. Version numbers and star counts are what those pages showed on the later date. No runtime test of either app against Kunavo was performed, and every dollar figure computed on this page is illustrative token arithmetic at live catalog rates.