This release is a pre-release and may not be stable for production use.
Synth SDK 0.23 development branch
Local SDK-first Index implementation. The pinned 0.23 development wheel is an engineering qualification candidate and must not be published as a release.
The new client targets the closed index.v1 contract on /api/v1; it refuses
legacy responses and does not fall back. Backend adoption and native/cached/live
acceptance are pending. This worktree also implements the first Swarms core,
output/file delivery and unified MCP adapter. The initial caller model override
accepts gpt-6-luna, with openai as the supported provider override.
Omitted overrides preserve backend project defaults; resolved metadata is not
an override allowlist. Hosted MCP requires the backend authorization/service
adapter; its native OAuth/API-key journeys remain unqualified.
SDK clients and synth-ai-mcp use SYNTH_API_KEY for authentication and
SYNTH_API_URL for the API origin (default https://api.usesynth.ai). Explicit
api_key / base_url arguments, or the MCP --base-url flag, take precedence.
Anonymous clients do not read key variables.
Without an explicit or environment key, authenticated clients and stdio MCP
use the private credential created by synth-ai login. Login discovery is lazy;
each authenticated operation reloads the origin-bound credential and refreshes
it if needed. Logout therefore affects the next call in an existing client.
During migration, SYNTH_USER_KEY and SYNTH_BACKEND_API_KEY remain key aliases;
SYNTH_BACKEND_URL and SYNTH_API_BASE_URL remain URL aliases. Using an alias
without the canonical variable emits one warning per name per process, without
its value. Conflicting legacy values refuse configuration. A present but empty
canonical variable is invalid and never falls back to another identity.
from synth_ai import SynthClient
from synth_ai.sdk.index import PublicSearchOptions
with SynthClient.anonymous() as client:
result = client.index.search("reproducible retrieval evidence", options=PublicSearchOptions())
print(result.response)
This requires an index.v1 backend. Keyed calls require KeyedSearchOptions with an exact Money charge ceiling. Durable search and mutation recovery are keyed. Use typed content refs for current-rights retrieval; citations grant no access. Synchronous clients own a cancellable HTTP pool; synchronous client injection is not supported. Async clients use native async HTTP and may borrow an AsyncClient. Local observer timeouts and close never cancel durable remote work.
For explicit HTTPX use, synth_ai.transports.DeadlineHTTPTransport supplies the
same owned, cancellable network implementation. Set a finite HTTPX read timeout;
it bounds the whole exchange, including headers and body. Close the HTTPX client
to release its pool and join its network thread. Arbitrary non-cooperative
synchronous transports cannot be preempted; synchronous client injection into
SynthClient is deliberately unsupported. Observer total, idle, reconnect and
event-count bounds remain independent of explicit remote cancellation.
The retired source remains on legacy/sdk-pre-0230-20261013; no broad compatibility
aliases, old CLI or split MCP are shipped.
- Implementation and contract choices
- Backend delta map
- Testing expectations
- Unified MCP implementation and auth integration
Tests live in the dedicated testing repository and install the selected wheel in an owned isolated environment. SDK unit/contract passes are not backend or end-to-end qualification. No backend services/data/deployment are changed here.
Per-request capacity is available through a caller-owned
synth_ai.types.rate_limits.ResponseMetadata passed as
MutationOptions(response_metadata=capacity) or ReadOptions(response_metadata=capacity).
Use one instance per concurrent request. Typed errors and MCP error payloads also
retain bounded rate-limit values. These fields never change the result body.
Metadata
Release files for synth-ai 0.23.0.dev2026101507
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| synth_ai-0.23.0.dev2026101507.tar.gz | 140.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| synth_ai-0.23.0.dev2026101507-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 323.2 kB
Release files / synth_ai-0.23.0.dev2026101507.tar.gz
| Download URL | synth_ai-0.23.0.dev2026101507.tar.gz |
|---|---|
| Size | 140.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c0437181f57224f131f17e3e5d56e466e07b4164e15a19e9965ab0a0acd12123
|
|
BLAKE2b-256 checksum How to use checksums |
bf155d2a8c82866f0159c67167725f5337206acc55f71da886ef577a75f48fa9
|
| 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 Oct 15, 2026.
Transparency logRelease files / synth_ai-0.23.0.dev2026101507-py3-none-any.whl
| Download URL | synth_ai-0.23.0.dev2026101507-py3-none-any.whl |
|---|---|
| Size | 182.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eaa8317a0bc329a5319d4c20abc6cf8f1c21ec2ab06913176a7c9459f0b038a9
|
|
BLAKE2b-256 checksum How to use checksums |
fbc9c4c11aafacb58ee5b99cb8c874c72a4a433186989441013714ec6c51a5a8
|
| 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 Oct 15, 2026.
Transparency log