Vifu Python SDK
The Python SDK embeds the Vifu Runtime, Agent Gateway, and local Server. Python
functions can become local Agent providers. Vifu("name") creates or reopens
one real App in the personal Server and records its project binding in
.vifu/app.json.
Create an environment and install Vifu:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install vifu
The wheel contains the generated UniFFI binding, native Rust library, and the same complete Vifu binary distributed in Vifu releases. That binary includes the Server, Dashboard, TUI, Gateway, SQLite storage, and Runtime APIs. The Python API calls the Runtime in the application process. It reuses a running local Server or starts the bundled binary in Server-only mode.
The public API provides:
Vifufor App identity, Agent registration, local Server connection, invocation, tracing, and remote calls.VifuRuntimefor persistent Runtime state, Agent registration, invocation, snapshots, and pending traces.AgentTracefor activity, output deltas, and typed provider stages.VifuGatewayfor explicit remote enrollment and advanced Gateway control.VifuServerfor advanced control of the bundled Vifu Server process.VifuServerConfigfor typed local Server startup configuration from Python.AppProviderandVifu.provider()for declaring reusable App-private Providers and binding them to Agent roles.LocalWhisper,LocalLlama, andOpenAICompatiblefor code-configured speech and language-model Providers.Vifu.run()for the same registered Agent App lifecycle locally and on a compatible managed host.
Call app.run() after registering Agents to serve Endpoint invocations until
the local process stops. An App may instead pass a local entrypoint such as
app.run(local_main). Vifu calls that entrypoint for direct local execution. A
compatible managed host uses the registered Endpoints from the same script,
does not enter the local interaction loop, and stops after its assigned
invocation completes. Managed lifecycle details are not part of application
input or output.
Framework integrations can be registered as normal Agent handlers. An
integration may declare vifu_name, vifu_capability, vifu_metadata,
vifu_instructions, and related defaults on the handler object. It may also
implement vifu_bind(...) and vifu_run() when it owns one foreground runtime
such as a voice session. Vifu.run() binds and starts that lifecycle, so the
application entrypoint remains only Agent registration:
app.agent("voice", voice_agent)
app.agent("assistant", assistant_agent)
app.run()
Keep an Agent's implementation separate from the Provider it uses:
from vifu import LocalLlama, Vifu
app = Vifu("support-call")
reasoning = app.provider(
"reasoning",
LocalLlama(model="qwen2.5-3b-instruct-q4_k_m.gguf"),
)
app.agent(
"reply-agent",
reply_agent,
implementation="strands-agents",
providers={"reasoning": reasoning},
)
The App reports the Provider as an App-private resource. Vifu creates an Agent
Profile only for reply-agent; it does not turn reasoning into another Agent.
Install the optional Strands integration, then select an OpenAI-compatible Provider directly in Python, including hosted and loopback model servers:
python -m pip install "vifu[strands]"
from vifu.integrations.strands import openai_compatible_model
model = openai_compatible_model(
request,
url="http://127.0.0.1:11434/v1/chat/completions",
model="qwen2.5:7b",
)
The API key remains process configuration and is never included in Agent
metadata. strands_model(...) remains available when an App intentionally uses
a versioned Vifu Agent Profile.
Start with the Python tutorial. Runnable framework integrations are available for Google ADK and Foundry Local.
Metadata
Release files for vifu 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| vifu-0.1.11-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details for vifu-0.1.11-py3-none-win_amd64.whl |
| vifu-0.1.11-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details for vifu-0.1.11-py3-none-manylinux_2_28_x86_64.whl |
| vifu-0.1.11-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details for vifu-0.1.11-py3-none-manylinux_2_28_aarch64.whl |
| vifu-0.1.11-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details for vifu-0.1.11-py3-none-macosx_11_0_arm64.whl |
| vifu-0.1.11-py3-none-macosx_10_15_x86_64.whl | Python 3 | none | macOS 10.15+ x86-64 | Details for vifu-0.1.11-py3-none-macosx_10_15_x86_64.whl |
Total release size: 110.6 MB
Release files / vifu-0.1.11-py3-none-win_amd64.whl
| Download URL | vifu-0.1.11-py3-none-win_amd64.whl |
|---|---|
| Size | 20.3 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7074f2bab5448dfddc6640e6fa159bdac0889a93165254bef6a3b13455435011
|
|
BLAKE2b-256 checksum How to use checksums |
ce4e7d65da0086dd6dd7062917d3de1bc71b1ba7f23107fecc21b75d40352c99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / vifu-0.1.11-py3-none-manylinux_2_28_x86_64.whl
| Download URL | vifu-0.1.11-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 23.5 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
ecfbeee6caf6b230c4ecf8138c51532d3e0aaea3a472bf16b208f095516c1b52
|
|
BLAKE2b-256 checksum How to use checksums |
f52ad4147e8e39aced905f9fb982e24201a344f011179f1657c712f758ad3a89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / vifu-0.1.11-py3-none-manylinux_2_28_aarch64.whl
| Download URL | vifu-0.1.11-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 22.9 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
e9f094437f0e950185675bed1d7b32748023ff292a009e42e7823f836823df43
|
|
BLAKE2b-256 checksum How to use checksums |
df6dcd4b45bb92e1df97fdc804a825392951af76320d586a9c423295f5ddb86a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / vifu-0.1.11-py3-none-macosx_11_0_arm64.whl
| Download URL | vifu-0.1.11-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 21.3 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
081383e601eda6b82641282d072ef8b7b2b0be6588e641ef6c18b5617b6732eb
|
|
BLAKE2b-256 checksum How to use checksums |
e10b00c980a132668639528697c97d84ff671c42580d279d108bc39fd5d7b098
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / vifu-0.1.11-py3-none-macosx_10_15_x86_64.whl
| Download URL | vifu-0.1.11-py3-none-macosx_10_15_x86_64.whl |
|---|---|
| Size | 22.5 MB |
| Tags | Python 3 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
cdf02520fa6aad4747dd47f8bb4803eb4541c380ac479e2d0b94b5ad991279d3
|
|
BLAKE2b-256 checksum How to use checksums |
ae6c17db35035ceeb051feadb1255bd74358731c88c69f4edc577fd99ca817c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logSecurity for vifu 0.1.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 5 files in this release have been uploaded with provenance metadata.
Attestation for vifu-0.1.11-py3-none-win_amd64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.