Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

openmates

OpenMates

Python SDK for OpenMates: run app skills, create encrypted chats, inspect usage, and automate everyday OpenMates tasks from Python.

OpenMates | SDK docs | Source

Install

pip install openmates

Install the latest prerelease from the dev channel:

pip install --pre --upgrade openmates

Quick Start

  1. Open OpenMates.
  2. Go to Settings > Developers > API Keys.
  3. Create an API key with the scopes and credit limit your script needs.
  4. Copy the key immediately. OpenMates only shows it once.

Set the key in your environment:

export OPENMATES_API_KEY="sk-api-..."

Run your first request:

from openmates import OpenMates

om = OpenMates()  # reads OPENMATES_API_KEY

result = om.apps.web.search({
    "requests": [{"query": "OpenMates SDK examples"}],
})

print(result)

SDK methods authenticate lazily. You do not need to call connect().

New SDK devices may need approval in Settings > Developers > Devices before they can access encrypted account data.

Common Examples

Send a private chat message

By default, chats.send() creates a non-persistent chat. It does not save the transcript to your OpenMates account.

response = om.chats.send("Summarize this release note draft.")
print(response.content)

Save the chat explicitly when you want it in your account history:

response = om.chats.send(
    "Draft a checklist for launching our beta.",
    save_to_account=True,
)

List and load encrypted chats

latest_chats = om.chats.list(limit=10)
chat = om.chats.load(latest_chats[0]["id"])

print(chat["chat"].get("title"))

Pass limit=0 only when you intentionally want all account chats.

Search the web

search = om.apps.web.search({
    "requests": [
        {"query": "privacy-first AI assistants", "count": 5},
    ],
})

Read a web page

page = om.apps.web.read({
    "url": "https://openmates.org/docs/user-guide/developers/sdk",
})

Search OpenMates docs

docs = om.docs.search("API keys")

Check billing and usage

overview = om.billing.overview()
invoices = om.billing.invoices()

Work with memories

memory_types = om.memories.types()
saved_memories = om.memories.list(app_id="web")

Create reminders

reminder = om.reminders.create({
    "title": "Review OpenMates SDK usage",
    "due_at": "2026-07-10T09:00:00Z",
})

SDK Areas

Namespace Purpose
om.apps.* Generated app-skill methods such as web.search, web.read, images.generate, pdf.search, and more.
om.chats.* Encrypted chat list/load/send/export/share/delete helpers.
om.docs.* Search OpenMates documentation.
om.billing.* Usage overview, invoices, and billing metadata.
om.account.* Account info, interests, storage, export helpers.
om.memories.* List, create, update, and delete encrypted memory entries when your API key has memory scopes.
om.reminders.* Create, list, and manage reminders.
om.connected_accounts.* Import connected-account data with explicit user approval flows.
om.embeds.* Inspect and share embed data when available to the API key.
om.settings.* Update supported account settings such as language, theme, model defaults, and chat auto-delete.

Generated app-skill methods follow the app and skill names from OpenMates. For example, the web search skill is om.apps.web.search(...) and PDF search is om.apps.pdf.search(...).

API Keys and Scopes

API keys are bearer credentials. Treat them like passwords.

  • Store keys in environment variables or a secret manager.
  • Do not commit keys to source control.
  • Use the narrowest scopes and credit limits your script needs.
  • New SDK devices may require approval before they can access encrypted account data.

Common scopes include:

Scope Allows
chat:create_incognito Non-persistent SDK chats.
chat:create_saved Saved account chats.
chat:read_existing Listing and loading existing encrypted chats.
chat:append_existing Adding messages to existing saved chats.
chat:share Creating share links.
memory:read Reading memory entries selected by the SDK caller.

App-skill scopes can allow all apps, a specific app, or a specific skill such as web:search.

Error Handling

from openmates import OpenMates, OpenMatesApiError, OpenMatesConfigError

try:
    om = OpenMates()
    print(om.billing.overview())
except OpenMatesConfigError as error:
    print(f"Configuration error: {error}")
except OpenMatesApiError as error:
    print(f"API error {error.status_code}: {error.data}")

The SDK raises:

  • OpenMatesConfigError for missing API keys or local key-unwrapping problems.
  • OpenMatesApiError for API responses such as expired keys, unapproved devices, missing scopes, or exceeded credit limits.

Versioning

OpenMates shows the short product line, for example v0.14, in the web app. Python package artifacts use exact release-line versions:

  • 0.14.Na0 is an alpha prerelease from the dev branch.
  • 0.14.N is a stable release from main.

Install stable releases with pip install openmates. Install prereleases with pip install --pre openmates.

More Documentation

Download files

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

Source Distribution

openmates-0.14.7a68.tar.gz (60.8 kB view details)

Uploaded Source

Built Distribution

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

openmates-0.14.7a68-py3-none-any.whl (53.0 kB view details)

Uploaded Python 3

File details

Details for the file openmates-0.14.7a68.tar.gz.

File metadata

  • Download URL: openmates-0.14.7a68.tar.gz
  • Upload date:
  • Size: 60.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openmates-0.14.7a68.tar.gz
Algorithm Hash digest
SHA256 ad6af535503f8c6556bf1bda5659011a14cd7f04898cf8a52bf07c16a2a7751d
MD5 67459978da6a76e1a0e915143671a0fe
BLAKE2b-256 45a8477d3080a8ccb4eb7978abe0010c4a84af2bcfdabf2e1f7f1be337b7d8c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for openmates-0.14.7a68.tar.gz:

Publisher: publish-python-sdk.yml on glowingkitty/OpenMates

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openmates-0.14.7a68-py3-none-any.whl.

File metadata

  • Download URL: openmates-0.14.7a68-py3-none-any.whl
  • Upload date:
  • Size: 53.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openmates-0.14.7a68-py3-none-any.whl
Algorithm Hash digest
SHA256 19e4eb8c765ffac76f70ebd12379fdf1105057dd55e537240283a11ffcfb0582
MD5 877ca9e6b5f23efe3c04a40c57c21b38
BLAKE2b-256 1b0a8b2b0c0c321f290470455b1ee7e4c660a885d0df754f5339bcdc91ce201f

See more details on using hashes here.

Provenance

The following attestation bundles were made for openmates-0.14.7a68-py3-none-any.whl:

Publisher: publish-python-sdk.yml on glowingkitty/OpenMates

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.16.0

2 files

0.14.7

2 files

This release

0.14.7a68 This release

2 files

0.14.6

2 files

0.14.3

2 files

0.14.2

2 files

Supported by

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