This release is a pre-release and may not be stable for production use.
OpenShock Python SDK
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 (OpenShockTokenheader)OpenShockHubClient(hub_token=...)— Device token (DeviceTokenheader)
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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| openshock-0.1.0b1.tar.gz | 17.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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