Skip to main content

OpenShock Python Ask DeepWiki

PyPI - Version PyPI - Python Version PyPI - Implementation PyPI - Types

Tests

Unofficial, lightweight helper for the OpenShock API. Designed to be easy to use for anyone, with optional advanced controls for developers.

What this project offers

  • Simple Python client to list devices/shockers and send actions (shock, vibrate, beep).
  • Full coverage of the OpenShock v1 and v2 APIs: hubs, shockers, shares, tokens, logs, sessions and account endpoints.
  • Matching synchronous and asynchronous clients with the same method names.
  • Optional CLI for quick checks without writing code.
  • Keeps your API key in memory only; the CLI can store it securely via your system keyring.

License TL;DR (see full LICENSE.md for complete terms)

  • Free for non-commercial, ethical use; you may study, modify, and share it.
  • You can include it in other open-source projects as a separate library component.
  • You must share source code for adaptations you distribute.
  • No commercial use, monetization, or commercial AI training without a separate license.
  • Adaptations must keep this license (unless used as a distinct component as allowed in Section 6A).

Quick start (Python)

  1. Install the library:

    pip install Nanashi-OpenShockPY
    
  2. Get your OpenShock API key from your account dashboard.

  3. Create a client with a User-Agent and your API key:

    from OpenShockPY import OpenShockClient, OpenShockPYError
    
    client = OpenShockClient(
        api_key="YOUR_API_KEY",
        user_agent="YourAppName/YourAppVersion",
    )
    
  4. List devices or send an action:

    print(client.list_devices())
    client.shock("YOUR_SHOCKER_ID", intensity=50, duration=1000)
    
    # Or send to all shockers at once using "all" as the shocker ID
    client.shock("all", intensity=50, duration=1000)
    # Alternatively, use the explicit *_all methods
    client.shock_all(intensity=50, duration=1000)
    
  5. (Optional) Use as a context manager for automatic cleanup:

    with OpenShockClient(api_key="YOUR_API_KEY", user_agent="YourAppName/YourAppVersion") as client:
        client.list_devices()
    # Session is automatically closed when the block exits
    

    Note: The client also cleans up automatically when garbage collected, so the context manager is optional.

Optional CLI (no coding needed)

Install with CLI support:

pip install "Nanashi-OpenShockPY[cli]"

Store your API key securely, then list devices:

openshock login --api-key YOUR_KEY
openshock devices

Send a command (use a shocker ID, not a device ID):

openshock shock --shocker-id YOUR_SHOCKER_ID --intensity 40 --duration 1500

Or send a command to all shockers at once:

openshock shock --shocker-id all --intensity 40 --duration 1500

Other commands: shockers, vibrate, beep, stop, pause, unpause, logs, whoami, tokens, logout.

The CLI automatically sets an appropriate User-Agent. If the openshock command is not on your PATH, every example also works as python -m OpenShockPY.cli <command>.

Async client (opt-in)

If you prefer non-blocking operation, there is an experimental asynchronous client available: AsyncOpenShockClient. Install the optional dependencies:

pip install Nanashi-OpenShockPY[async]

Usage:

import asyncio
from OpenShockPY import AsyncOpenShockClient

async def main():
    async with AsyncOpenShockClient(api_key="YOUR_API_KEY", user_agent="YourAppName/YourAppVersion") as client:
        devices = await client.list_devices()
        await client.shock_all(intensity=50, duration=1000)

asyncio.run(main())

⚠️ Experimental / Unsupported: The AsyncOpenShockClient is an opt-in, experimental client provided for convenience. It is not officially supported or fully tested in production scenarios. Use at your own risk — APIs, behavior, or method signatures may change without notice. If stability and long-term support are required, prefer the synchronous OpenShockClient.

Installation options

  • Library only (most people): pip install Nanashi-OpenShockPY
  • Library + CLI extras (adds keyring): pip install "Nanashi-OpenShockPY[cli]"
  • Library + Async extras (adds httpx, pytest-asyncio, respx): pip install "Nanashi-OpenShockPY[async]"
  • Library + all extras: pip install "Nanashi-OpenShockPY[all]"
  • Development/editable install from this repo: pip install -e . (or pip install -e ".[cli]" for CLI, pip install -e ".[all]" for all extras)

Responsible use and licensing

  • This project is for non-commercial, ethical use only. Commercial use requires a separate license.
  • Respect local laws and the rights and safety of others when issuing control commands.
  • Full terms: LICENSE.md.

Need more detail?

Advanced options, API notes, and developer tips are available in ADVANCED.md.

Metadata

Release files for Nanashi-OpenShockPY 0.1.0.0

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

Source distribution (sdist)

Source distribution for Nanashi-OpenShockPY 0.1.0.0
File Size Uploaded Provenance Actions
nanashi_openshockpy-0.1.0.0.tar.gz 37.1 kB With provenance Details for nanashi_openshockpy-0.1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for Nanashi-OpenShockPY 0.1.0.0
File Interpreter ABI Platform Actions
nanashi_openshockpy-0.1.0.0-py3-none-any.whl Python 3 none any Details for nanashi_openshockpy-0.1.0.0-py3-none-any.whl

Total release size: 68.3 kB

Release files / nanashi_openshockpy-0.1.0.0.tar.gz

Download URL nanashi_openshockpy-0.1.0.0.tar.gz
Size 37.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3ecf8bc708dea85ea9abc5fea2e799a8335fca020971a9874f81175121670269
BLAKE2b-256 checksum
How to use checksums
204fb424e62e3dc31712854d9fd0d787c455a0e17645ccf41e358c85271c2f03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 Jul 23, 2026.

Transparency log

Release files / nanashi_openshockpy-0.1.0.0-py3-none-any.whl

Download URL nanashi_openshockpy-0.1.0.0-py3-none-any.whl
Size 31.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08cb6b36ff3c04d1575fc805548092167d65cebf69807401bef70cc38f6b45bc
BLAKE2b-256 checksum
How to use checksums
7af61047152db497e5852c81caed4e26ee17c847ccfb5356ad4d625fdebdd979
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 Jul 23, 2026.

Transparency log

Security for Nanashi-OpenShockPY 0.1.0.0

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for nanashi_openshockpy-0.1.0.0.tar.gz

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 Jul 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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