Python SDK for building Pointiv WASM extensions
Project description
pointiv-extension-sdk
Python SDK for Pointiv WASM extensions.
Install
pip install pointiv-extension-sdk
Setup
extism-py requires @extism.import_fn host bindings in the compiled entry file. Declare them in host_bindings.py, wire the SDK with bind, then build a merged entry:
# host_bindings.py
import extism
from pointiv_extension_sdk import bind
@extism.import_fn("extism:host", "pointiv_storage_read")
def pointiv_storage_read(key: str) -> str: pass
@extism.import_fn("extism:host", "pointiv_storage_write")
def pointiv_storage_write(key: str, value: str): pass
@extism.import_fn("extism:host", "pointiv_storage_delete")
def pointiv_storage_delete(key: str): pass
bind.storage_hosts(pointiv_storage_read, pointiv_storage_write, pointiv_storage_delete)
cat host_bindings.py main.py > entry.py
extism-py entry.py -o extension.wasm
See the Python starter for a full example.
Build to WASM with extism-py, then set runtime: "wasm" and main: "extension.wasm" in pointiv-extension.json.
APIs
| Module | Permission | What it does |
|---|---|---|
storage |
storage |
Per-extension key/value store |
clipboard |
clipboard_read |
Read clipboard |
ai |
ai |
LLM completion |
http |
network |
Outbound HTTP |
google_calendar |
google_calendar |
Create Calendar events |
google_gmail |
google_gmail |
Send Gmail |
log |
none | Log to ~/.pointiv/trace.jsonl |
Calls without permission fail safely.
Python/WASM limitations
extism-py cannot call zero-argument host functions reliably. These APIs raise NotImplementedError in Python/WASM builds:
storage.list()clipboard.read()
Use storage.read() / storage.write() / storage.delete() instead. Host functions use the extism:host namespace (Pointiv registers both extism:host and extism:host/user).
Manifest
{
"name": "My Extension",
"description": "What it does",
"version": "1.0.0",
"author": "your-name",
"keywords": ["tag"],
"runtime": "wasm",
"main": "extension.wasm",
"permissions": ["storage", "network", "google_calendar", "google_gmail"]
}
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pointiv_extension_sdk-0.3.4.tar.gz.
File metadata
- Download URL: pointiv_extension_sdk-0.3.4.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a6bfd13825d2d49d0309da79555f384e53adb3d995632bb60c9b56088c2ff78
|
|
| MD5 |
a8e0374ef11d10bade2d858b13cea6da
|
|
| BLAKE2b-256 |
db9d32da6ddee3b62060ae30cabb08c06baeb0d8c5e46ff0476836eae8a1a271
|
File details
Details for the file pointiv_extension_sdk-0.3.4-py3-none-any.whl.
File metadata
- Download URL: pointiv_extension_sdk-0.3.4-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68b237ec671c23d9aab3854ba0680595d9eccf7a4a6ad7a4fb68536082562789
|
|
| MD5 |
3ed1c86c1091881a43a9d7fd1775cd64
|
|
| BLAKE2b-256 |
c6f00dfe898e81140430af9c32f7bfb1e1894490aeb6a17c17de389cf08946f9
|