Skip to content

Releases: lmstudio-ai/lmstudio-python

1.6.0b1 - 2025-10-28

17 Oct 17:56
2f245ae

Choose a tag to compare

1.6.0b1 - 2025-10-28 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: 1.5.0...1.6.0b1

1.5.0 - 2025-08-22

22 Aug 13:52
ae837ac

Choose a tag to compare

What's Changed

  • Accept any buffer instance when processing file data (by @ArEnSc; #46)
  • Tool definitions now support default parameter values (by @baonudesifeizhai; #90)
  • Preliminary addition of Python 3.14 to the CI test matrix (#154). Most features should work without issue, but there is (for now) a known problem with field definitions on lmstudio.BaseModel subclasses only being processed correctly if from __future__ import annotations is correct at the time the subclass is defined.

New Contributors

Full Changelog: 1.5.0b1...1.5.0

1.5.0b1

12 Aug 17:37
3a81ccb

Choose a tag to compare

1.5.0b1 Pre-release
Pre-release

What's Changed

  • When no API host is specified, the SDK now attempts to connect to the always-on LM Studio native API server ports, rather than relying on the optional HTTP REST API server being enabled on its default port (#142)
  • The new methods Client.is_valid_api_host and AsyncClient.is_valid_api_host allow API host validity to be checked without creating a client instance (part of #142)
  • The new methods Client.find_default_local_api_host and AsyncClient.find_default_local_api_host allow discovery of a running local API host API server without creating a client instance (part of #142)
  • Exceptions are now more consistently raised on websocket failures (#121). Previously clients could potentially be left hanging indefinitely if the websocket connection failed while waiting for a response.
  • Updated to 2025-07-30 (release 54) lmstudio.js protocol schema (#138)
  • The low level session APIs are now more explicitly private (in both the synchronous and asynchronous APIs)

Changes specific to the asynchronous API

  • The asynchronous API is now considered stable and no longer emits FutureWarning when imported (#127 and supporting PRs)
  • Asynchronous model handles now provide a model.act() API (#132)
  • The asynchronous model.act() API supports asynchronous tool implementations (#134)

Changes specific to the synchronous API

  • The synchronous API now implements a configurable timeout (#124). The default API timeout if no messages are received from the server on a given response channel is now 60 seconds.
  • The new functions get_sync_api_timeout() and set_sync_api_timeout(timeout: float|None) allow this timeout to be queried and updated (part of #124). Setting the timeout to None restores the previous behaviour of blocking indefinitely waiting for server responses.
  • The synchronous API now supports invocation from atexit hooks (#123, #125)

Full Changelog: 1.4.1...1.5.0b1

1.4.1

30 Jun 18:06
3de804c

Choose a tag to compare

What's Changed

  • Fix handling of multi-part tool results in Chat.append and Chat.add_entry (#112)
  • Fix server mapping for llama quantization config settings (#111)
  • More lenient handling of received config fields with omitted default values (#110)

Full Changelog: 1.4.0...1.4.1

1.4.0

27 Jun 14:55
f2b39a7

Choose a tag to compare

What's Changed

  • Add max_parallel_tool_calls to .act() API, defaulting to sequential execution (#102)
  • Unknown channel messages are now reported via warnings.warn rather than immediately raising an exception (#103)

Full Changelog: 1.3.2...1.4.0

1.3.2

24 Jun 19:10
51c33ae

Choose a tag to compare

What's Changed

  • Update to 2025-06-25 lmstudio.js protocol schema (#99)

Full Changelog: 1.3.1...1.3.2

1.3.1

27 May 12:08
f2cf59d

Choose a tag to compare

What's Changed

  • Fixed GPU offload configuration when loading models (#89)

Full Changelog: 1.3.0...1.3.1

1.3.0

24 Apr 17:40
6be1164

Choose a tag to compare

What's Changed

  • Added a dedicated configure_default_client API (#82)
  • Runtime names of public API types now match their import names (#74)
  • Tool call failures are now passed back to the LLM by default (#72)
  • Synchronous clients now use fewer background threads (#77)
  • Tool results now report non-ASCII characters as Unicode code points rather than as ASCII escape sequences (contributed by @jusallcaz in #80)
  • The not-yet-implemented general file handling APIs have been removed from the public API (#81)

New Contributors

Full Changelog: 1.2.0...1.3.0

1.2.0 - 2025-03-22

21 Mar 15:36
fdd71c5

Choose a tag to compare

What's Changed

  • Align model loading config format with lmstudio-js 47 (previously aligned with lmstudio-js 46)
    • Note: users of the experimental gpuOffload config setting will need to switch to setting the (still experimental) gpu field
  • Explicitly note in relevant docstrings that details of config fields are not yet formally stabilised
  • Pass previously omitted config settings to the server (#51)
  • Add speculative decoding example (#55)
  • Publish config retrieval APIs (#53, #54)
  • Add server side token counting APIs (#57)
  • Simplify prediction API type hinting (#59)
  • Add preset config support in prediction APIs (#58) (Requires LM Studio 0.14+)
  • Add GBNF grammar support when requesting structured responses (#60) (Requires LM Studio 0.14+)

Full Changelog: 1.1.0...1.2.0

1.1.0 - 2025-03-15

14 Mar 15:15
30d8d08

Choose a tag to compare

What's Changed

  • Added SDK versioning policy to README.md (#42)
  • Support Python 3.10 (#41)
  • Support image input for VLMs (#34)
  • Publish file preparation APIs (#37, #39)
  • Add image preparation APIs (#38, #39)
  • Avoid corrupting snake_case keys in structured output schemas supplied via prediction config dicts (#43)

Full Changelog: 1.0.1...1.1.0