Skip to main content
Pre-release

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

OpenShock Python SDK

CI PyPI Python License

The official OpenShock Python SDK to integrate with an OpenShock backend easily. Provides a typed REST API client with planned support for live WebSocket connections.

Install

pip install openshock

Quick start

from openshock import OpenShockClient

client = OpenShockClient(api_token="your-api-token")

# Get backend info
info = client.meta.backend_info()
print(f"OpenShock {info.version}")

# List your shockers
shockers = client.shockers.list_own()

# Send a vibrate command
from openshock import Control

client.shockers.control([
    Control(id="shocker-uuid", type="Vibrate", intensity=50, duration=1000)
])

client.close()

Or use as a context manager:

with OpenShockClient(api_token="your-api-token") as client:
    stats = client.meta.online_stats()
    print(f"Devices online: {stats.devices_online}")

Resources

Resource Description Example
client.meta Backend info and stats client.meta.backend_info()
client.account User info and API tokens client.account.user_self()
client.devices Hub (device) management client.devices.list()
client.shockers Shocker CRUD, control, logs client.shockers.control(...)
client.shares Public share links and codes client.shares.list_public()
client.user_shares User-to-user shares (V2) client.user_shares.get()
client.sessions Login session management client.sessions.list()

For hub/device endpoints, use OpenShockHubClient:

from openshock import OpenShockHubClient

hub = OpenShockHubClient(hub_token="device-token")
lcg = hub.hub.assign_lcg()
print(f"Connect to {lcg.host}:{lcg.port}")

Authentication

Two client types for two auth schemes:

  • OpenShockClient(api_token=...) — User API token (OpenShockToken header)
  • OpenShockHubClient(hub_token=...) — Device token (DeviceToken header)

Create API tokens at openshock.app under Settings > API Tokens.

Typed models

All responses are parsed into typed dataclasses:

from openshock import (
    BackendInfo, Stats, User, Token, Device, Shocker,
    ShockerPermissions, ShockerLimits, ShockerLog, Control,
    Session, PublicShare, UserShares, ShareInvite, PauseReason,
)

Self-hosting

To connect to a self-hosted instance:

client = OpenShockClient(
    api_token="your-token",
    base_url="https://api.your-instance.com",
)

Development

git clone https://github.com/OpenShock/SDK.Python.git
cd SDK.Python
pip install -e ".[dev]"

# Format
ruff format .

# Lint
ruff check .

# Type check
mypy openshock/

# Test
pytest

License

MIT

Metadata

Release files for openshock 0.1.0b1

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

Source distribution (sdist)

Source distribution for openshock 0.1.0b1
File Size Uploaded
openshock-0.1.0b1.tar.gz 17.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openshock 0.1.0b1
File Interpreter ABI Platform
openshock-0.1.0b1-py3-none-any.whl Python 3 none any Details

Total release size: 38.0 kB

Release files / openshock-0.1.0b1.tar.gz

Download URL openshock-0.1.0b1.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2131188ecbd930be29783c070c22e9be96305fb769f4308bb14036333c94b135
BLAKE2b-256 checksum
How to use checksums
cd00efa05d327975330e8146d61959d7511be9880db99ecd8370cbdd77687843
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 24, 2026.

Transparency log

Release files / openshock-0.1.0b1-py3-none-any.whl

Download URL openshock-0.1.0b1-py3-none-any.whl
Size 21.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df0107a1254c6a4abb2bd613b193c41eca7b06de1cf7983939887666515a066a
BLAKE2b-256 checksum
How to use checksums
0f6fd0b7a77430ecdd64e20b368ba5a7c9067d350fe0b0f01b80577db338f3fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0b1 This release

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