Skip to main content

Official Python client SDK for Marona-compatible AI runtimes and Hub integrations.

Project description

marona

Official Python client for Marona-compatible hybrid AI runtimes and Marona Hub.

Use marona to build web apps, mobile backends, WhatsApp bots, smart glasses, desktop apps, devices, and agents that need one interface for cloud, local, and hybrid AI execution.

Install

pip install marona

Create A Client

from marona import Marona

marona = Marona(
    api_key="mrn_live_...",
    mode="hybrid",
)

Modes:

  • online: use Marona cloud runtime and online app routes.
  • offline: use only local cache, local models, and local app routes.
  • hybrid: prefer local resources, then fall back online when allowed.

Send A Message

response = await marona.message(
    "Create a PowerPoint about AI introduction",
    interface="api",
    conversation_id="demo",
)

print(response.text)

Sync Hub Metadata

await marona.sync()

Sync stores app IDs, app routes, permissions, workspace config, runtime config, and local/remote app endpoints in the local Marona cache.

Connect Apps By ID

tools = await marona.hub.connect(
    ["billing-mcp", "network-mcp"],
    adapter="tools",
)

Marona resolves apps from local cache first. Offline mode uses only local app routes. Online and hybrid modes can refresh from Hub.

Register A Local Or Cloud Model

marona.models.register(
    name="office-model",
    endpoint="http://localhost:9379",
)

marona.models.use("office-model")

Developers do not need to specify provider, backend type, or capabilities. Marona detects model features internally and routes by execution mode.

Smart Glasses / Wearables

response = await marona.message(
    "What am I looking at?",
    interface="wearable",
    client_capabilities={
        "client_type": "wearable",
        "supports": {"voice": True, "camera": True, "screen": True},
        "constraints": {"screen_size": "tiny", "interaction": "voice"},
    },
)

The interface does not need to know model names, providers, or app endpoints.

Pair A User Interface

pairing = await marona.start_pairing(
    interface="web",
    device_name="My web app",
)

print(pairing.display_code)
print(pairing.whatsapp_url)

Use the returned identity token on future requests.

Send Files

from marona import RuntimeAttachment

attachment = RuntimeAttachment.from_bytes(
    b"hello",
    filename="note.txt",
    mime_type="text/plain",
    kind="document",
)

response = await marona.message("Summarize this file", attachments=[attachment])

Package Names

  • Python client: marona, import marona
  • Dart client: marona, import package:marona/marona.dart
  • TypeScript client: marona, import Marona from "marona"
  • Developer SDK for building apps: marona-sdk, import marona_sdk

Project details


Release history Release notifications | RSS feed

This version

0.2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

marona-0.2.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

marona-0.2.0-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file marona-0.2.0.tar.gz.

File metadata

  • Download URL: marona-0.2.0.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for marona-0.2.0.tar.gz
Algorithm Hash digest
SHA256 dcd7aed9609283e16c1d24c5851bb028d18599859ff51ed29f292e34046943b3
MD5 3f7b1301ba0124bdb232e86237e1875e
BLAKE2b-256 c6b0bf255d5dddadbae6b67619ee86967e9b071f1024de661de87d6872225500

See more details on using hashes here.

File details

Details for the file marona-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: marona-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for marona-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7995622378801ea516433a071159bddab6bdad521706ae0256a5413f7ef639e3
MD5 86a6b3e2b532404849945b7a2eb04b6b
BLAKE2b-256 126ab593c48ac576479e6e13a87b037a534801024384101d9ad512cb98914ff7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page