Skip to main content

langchain-apple-foundation-models

PyPI

Use Apple's on-device Foundation Models as a drop-in LangChain chat model. Runs fully offline on macOS 26+ Apple Silicon -- no API key, no network call, no per-token cost.

demo

from langchain_apple_foundation_models import ChatAppleFoundationModels

llm = ChatAppleFoundationModels()
llm.invoke("What is the capital of France?")

Install

pip install langchain-apple-foundation-models

Requires macOS 26+ with Apple Intelligence enabled and Apple Silicon.

Why

Apple shipped a Python SDK for its on-device model this year (apple-foundation-models), but there was no LangChain provider for it -- meaning none of LangChain's chains, agents, or tool-calling abstractions could target Apple's on-device model. This closes that gap.

Features

  • Tool calling: pass LangChain @tool-decorated functions via .bind_tools([...]), same as any other LangChain chat model.
  • Structured output: .with_structured_output(schema) for JSON-schema or Pydantic-constrained generation.
  • Streaming: .stream(...) yields tokens as they're generated.
  • Zero network calls -- generation happens entirely on-device via Apple's Neural Engine.

Architecture

flowchart LR
    App["Your LangChain code<br/>chains / agents / tools"] -->|".invoke() .stream() .bind_tools()"| Provider["ChatAppleFoundationModels"]
    Provider --> SDK["apple-foundation-models<br/>(Python SDK)"]
    SDK --> FM["Foundation Models framework<br/>on-device, Apple Silicon, Neural Engine"]
    FM -.->|"no network call, ever"| SDK

ChatAppleFoundationModels implements LangChain's standard chat model interface, so it drops into any existing chain, agent, or tool-calling setup as a swap-in for a cloud provider -- the only difference is generation happens on-device.

Example: tool calling

from langchain_core.tools import tool
from langchain_apple_foundation_models import ChatAppleFoundationModels

@tool
def get_weather(city: str) -> str:
    """Get the current weather for a city."""
    return f"The weather in {city} is sunny and 72F."

llm = ChatAppleFoundationModels().bind_tools([get_weather])
llm.invoke("What's the weather in Austin?")

Known limitations

  • Multi-turn history is owned by the underlying Session, not LangChain's message list. Each ChatAppleFoundationModels instance lazily creates one on-device Session and reuses it across calls; if you pass a message list that diverges from what the session itself has tracked, the two can get out of sync. Fresh chains work naturally; manually-edited history does not yet.
  • Built on the apple-foundation-models unofficial Python bindings (alpha), which itself wraps Apple's Foundation Models framework -- both inherit Apple's current 4,096-token context window.
  • No support (yet) for Apple's newer multi-model / Private Cloud Compute routing announced at WWDC26 -- that requires an OS/SDK combination not yet stable enough to depend on. See the repo issues for status.

License

MIT

Metadata

Release files for langchain-apple-foundation-models 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langchain-apple-foundation-models 0.2.0
File Size Uploaded
langchain_apple_foundation_models-0.2.0.tar.gz 79.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for langchain-apple-foundation-models 0.2.0
File Interpreter ABI Platform
langchain_apple_foundation_models-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 86.7 kB

Release files / langchain_apple_foundation_models-0.2.0.tar.gz

Download URL langchain_apple_foundation_models-0.2.0.tar.gz
Size 79.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f081c5222eda47653f85883ccdbad8fc768ba74278d9fca076f7e700f692b151
BLAKE2b-256 checksum
How to use checksums
e2231a96b89156bcc5eec08e73047e0497a443fbdc02f0582fd12a94ea4f561e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release files / langchain_apple_foundation_models-0.2.0-py3-none-any.whl

Download URL langchain_apple_foundation_models-0.2.0-py3-none-any.whl
Size 7.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5a3283aa32863684164917af76a1a584f73dc36d68d43508927fd57c69d84c5
BLAKE2b-256 checksum
How to use checksums
d28396117b7725eb7e2b01db074ec46f21d27a07cf0084723c75fc0d35173104
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page