Synchronized audio player for Sendspin servers
Project description
sendspin
Connect to any Sendspin server and instantly turn your computer into an audio target that can participate in multi-room audio.
Sendspin CLI includes three apps:
sendspin- Terminal client for interactive usesendspin daemon- Background daemon for headless devicessendspin serve- Host a Sendspin party to demo Sendspin
When using an explicit app (daemon, serve, or player), put it immediately after
sendspin. For example, use sendspin daemon --name Kitchen, not
sendspin --name Kitchen daemon.
Quick Start
Run directly with uv:
Start client
uvx sendspin
Host a Sendspin party
uvx sendspin serve --demo
uvx sendspin serve /path/to/media.mp3
uvx sendspin serve https://retro.dancewave.online/retrodance.mp3
Installation
With uv:
uv tool install sendspin
Support for Chromecast devices requires installation of extra dependencies:
uv tool install 'sendspin[cast]'
Install as daemon (Linux):
curl -fsSL https://raw.githubusercontent.com/Sendspin/sendspin-cli/refs/heads/main/scripts/systemd/install-systemd.sh | sudo bash
With pip:
pip install sendspin
Install from source
git clone https://github.com/Sendspin-Protocol/sendspin.git
cd sendspin
pip install .
After installation, run:
sendspin
The player will automatically connect to a Sendspin server on your local network and be available for playback.
Updating
To update to the latest version of Sendspin:
If installed with uv:
uv tool upgrade sendspin
If installed with pip:
pip install --upgrade sendspin
If installed as systemd daemon:
The systemd daemon preserves your configuration during updates. Simply upgrade the package:
# Upgrade sendspin (the daemon installer uses uv by default)
uv tool upgrade sendspin
# Or if you installed with pip
pip install --upgrade sendspin
# Restart the service to use the new version
sudo systemctl restart sendspin
Your client name, audio device selection, and other settings in /etc/default/sendspin are preserved during the update.
Note: You do not need to uninstall and reinstall when updating. Your configuration (client name, audio device, delay settings) is stored separately and will be preserved.
Configuration Options
Sendspin stores settings in JSON configuration files that persist between sessions. All command-line arguments can also be set in the config file, with CLI arguments taking precedence over stored settings.
Configuration File
Settings are stored in ~/.config/sendspin/:
settings-tui.json- Settings for the interactive TUI clientsettings-daemon.json- Settings for daemon modesettings-serve.json- Settings for serve mode
Example configuration file (TUI/daemon):
{
"player_volume": 50,
"player_muted": false,
"static_delay_ms": -100.0,
"last_server_url": "ws://192.168.1.100:8927/sendspin",
"name": "Living Room",
"client_id": "sendspin-living-room",
"audio_device": "2",
"audio_format": "flac:48000:24:2",
"log_level": "INFO",
"listen_port": 8927,
"use_mpris": true,
"use_hardware_volume": true,
"hook_set_volume": "/usr/local/bin/set-avr-volume",
"manufacturer": "Acme Corp",
"product_name": "Living Room Speaker"
}
Example configuration file (serve):
{
"log_level": "INFO",
"listen_port": 8927,
"name": "My Sendspin Server",
"source": "/path/to/music.mp3",
"clients": ["ws://192.168.1.50:8927/sendspin", "ws://192.168.1.51:8927/sendspin"]
}
Available settings:
| Setting | Type | Mode | Description |
|---|---|---|---|
player_volume |
integer (0-100) | TUI/daemon | Player output volume percentage |
player_muted |
boolean | TUI/daemon | Whether the player is muted |
static_delay_ms |
float | TUI/daemon | Extra playback delay in milliseconds |
last_server_url |
string | TUI/daemon | Server URL (used as default for --url) |
name |
string | All | Friendly name for client or server (--name) |
client_id |
string | TUI/daemon | Unique client identifier (--id) |
audio_device |
string | TUI/daemon | Audio device index, name prefix, or ALSA device name (--audio-device) |
audio_format |
string | TUI/daemon | Preferred audio format (--audio-format, e.g., flac:48000:24:2) |
log_level |
string | All | Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL |
listen_port |
integer | daemon/serve | Listen port (--port, default: 8927) |
use_mpris |
boolean | TUI/daemon | Enable MPRIS integration (default: true) |
use_hardware_volume |
boolean | TUI/daemon | Control hardware/system output volume instead of software volume (--hardware-volume true/false). Default: on for daemon (if available), off for TUI |
hook_set_volume |
string | TUI/daemon | Script to run for external volume control (--hook-set-volume). Receives the effective volume 0-100 as the last argument |
hook_start |
string | TUI/daemon | Command to run when audio stream starts |
hook_stop |
string | TUI/daemon | Command to run when audio stream stops |
manufacturer |
string | TUI/daemon | Manufacturer name reported in the client hello (--manufacturer) |
product_name |
string | TUI/daemon | Product name reported in the client hello (--product-name); defaults to auto-detected OS/platform name |
source |
string | serve | Default audio source (file path or URL, ffmpeg input) |
source_format |
string | serve | ffmpeg container format for audio source |
clients |
array | serve | Client URLs to connect to (--client) |
Settings are automatically saved when changed through the TUI. You can also edit the JSON file directly while the client is not running.
Server Connection
By default, the player automatically discovers Sendspin servers on your local network using mDNS. You can also connect directly to a specific server:
sendspin --url ws://192.168.1.100:8080/sendspin
List available servers on the network:
sendspin servers list
Client Identification
If you want to run multiple players on the same computer, you can specify unique identifiers:
sendspin --id my-client-1 --name "Kitchen"
sendspin --id my-client-2 --name "Bedroom"
--id: A unique identifier for this client (optional; defaults tosendspin-<hostname>, useful for running multiple instances on one computer)--name: A friendly name displayed on the server (optional; defaults to hostname)
Audio Output Device Selection
By default, the player uses your system's default audio output device. You can list available devices or select a specific device:
List available audio devices:
sendspin audio-devices list
This displays all audio output devices with their IDs, channel configurations, and sample rates. The default device is marked.
Select a specific audio device by index:
sendspin --audio-device 2
Or by name prefix:
sendspin --audio-device "MacBook"
Or by raw ALSA device name (Linux):
sendspin --audio-device dmixer
This is useful for ALSA plugin devices (dmix, plug, etc.) that may not appear in the numbered PortAudio device list (though they may be shown in the ALSA devices section on Linux). For example, in a dual mono setup where two daemons share a single sound card via dmix, each daemon can target a different ALSA device that routes to a specific channel:
# Room 1: left channel via dmix
sendspin daemon --name "Living Room" --audio-device living_room
# Room 2: right channel via dmix
sendspin daemon --name "Kitchen" --audio-device kitchen
This requires an /etc/asound.conf with dmix and plug devices that route to the appropriate channels. See your ALSA documentation for details on configuring dmix.
This is particularly useful when running sendspin daemon on headless devices or when you want to route audio to a specific output.
Preferred Audio Format
By default, the player negotiates the best audio format with the server from the list of formats supported by your audio device (preferring FLAC over PCM). You can specify a preferred format to prioritize:
sendspin --audio-format flac:48000:24:2
The format string uses the pattern codec:sample_rate:bit_depth:channels:
- codec:
flac(compressed, preferred) orpcm(uncompressed) - sample_rate: Sample rate in Hz (e.g.,
44100,48000,96000) - bit_depth: Bits per sample (
16or24) - channels: Channel count (
1for mono,2for stereo)
The specified format is validated against the audio device on startup. If the device doesn't support it, the player will exit with an error.
System Volume Control
On Linux with PulseAudio/PipeWire, Sendspin can control your system output volume directly. Volume adjustments (keyboard shortcuts, server commands) change the system volume. The current system volume is read on startup — the player_volume and player_muted settings are only used when hardware volume is disabled.
Hardware volume is on by default in daemon mode and off by default in TUI mode. To override:
sendspin --hardware-volume true # Enable for TUI
sendspin daemon --hardware-volume false # Disable for daemon
If your real volume control lives on another device, you can hand volume changes off to a script instead:
sendspin daemon --hook-set-volume /usr/local/bin/set-avr-volume
The script receives the effective output volume as its last argument in the range 0-100. When the player is muted, Sendspin calls the script with 0 and keeps the last logical player_volume persisted separately so unmuting restores the previous level.
Because Sendspin cannot read back external device state from the hook, startup volume comes from the persisted player_volume and player_muted settings. Those settings are updated whenever Sendspin successfully applies a new volume through the hook. When hook_set_volume is configured, it takes precedence over PulseAudio/PipeWire hardware volume control.
Adjusting Playback Delay
The player supports adjusting playback delay to compensate for audio hardware latency or achieve better synchronization across devices.
sendspin --static-delay-ms -100
Note: Based on limited testing, the delay value is typically a negative number (e.g.,
-100or-150) to compensate for audio hardware buffering.
Daemon Mode
To run the player as a background daemon without the interactive TUI (useful for headless devices or scripts):
sendspin daemon
The daemon runs in the background and logs status messages to stdout. It accepts the same connection and audio options as the TUI client:
sendspin daemon --name "Kitchen" --audio-device 2
In daemon mode without --url, the client listens for incoming server connections and advertises itself via mDNS. The --name option (or name setting) is used as the friendly name in the mDNS advertisement, making it easy for servers to identify this client on the network.
Use --manufacturer and --product-name to override the device identity reported to the server in the client hello. This is useful when running the daemon in a container or on a custom device where the auto-detected OS name is not meaningful:
sendspin daemon --name "Living Room" --manufacturer "Acme" --product-name "Living Room Speaker"
Hooks
You can run external commands when audio streams start or stop. This is useful for controlling amplifiers, lighting, or other home automation:
sendspin --hook-start "./turn_on_amp.sh" --hook-stop "./turn_off_amp.sh"
Or with inline commands:
sendspin daemon --hook-start "amixer set Master unmute" --hook-stop "amixer set Master mute"
--hook-set-volume is separate from these stream lifecycle hooks. It is intended for external volume controllers and receives the effective output volume as its last argument.
Hooks receive these environment variables:
SENDSPIN_EVENT- Event type: "start" or "stop"SENDSPIN_SERVER_ID- Connected server identifierSENDSPIN_SERVER_NAME- Connected server friendly nameSENDSPIN_SERVER_URL- Connected server URL. Only available if client initiated the connection to the server.SENDSPIN_CLIENT_ID- Client identifierSENDSPIN_CLIENT_NAME- Client friendly name
Visualizer
The TUI includes a real-time audio spectrum visualizer that displays frequency data received from the server. This uses the experimental visualizer@_draft_r1 role. The spectrum data is computed on the server and sent via sendspin to the TUI.
Toggle it by pressing v in the TUI. Your preference is saved in settings and remembered on next launch.
Debugging & Troubleshooting
If you experience synchronization issues or audio glitches, you can enable detailed logging to help diagnose the problem:
sendspin --log-level DEBUG
This provides detailed information about time synchronization. The output can be helpful when reporting issues.
Install as Daemon (systemd, Linux)
For headless devices like Raspberry Pi, you can install sendspin daemon as a systemd service that starts automatically on boot.
Install:
curl -fsSL https://raw.githubusercontent.com/Sendspin/sendspin-cli/refs/heads/main/scripts/systemd/install-systemd.sh | sudo bash
The installer will:
- Check and offer to install dependencies (libportaudio2, uv)
- Install sendspin via
uv tool install - Prompt for client name and audio device selection
- Create systemd service and configuration
Manage the service:
sudo systemctl start sendspin # Start the service
sudo systemctl stop sendspin # Stop the service
sudo systemctl status sendspin # Check status
journalctl -u sendspin -f # View logs
Configuration: Edit /etc/default/sendspin to change client name, audio device, or delay settings.
Uninstall:
curl -fsSL https://raw.githubusercontent.com/Sendspin/sendspin-cli/refs/heads/main/scripts/systemd/uninstall-systemd.sh | sudo bash
Sendspin Party
The Sendspin client includes a mode to enable hosting a Sendspin Party. This will start a Sendspin server playing a specified audio file or URL in a loop, allowing nearby Sendspin clients to connect and listen together. It also hosts a web interface for easy playing and sharing. Fire up that home or office 🔥
# Demo mode
sendspin serve --demo
# Local file
sendspin serve /path/to/media.mp3
# Remote URL
sendspin serve https://retro.dancewave.online/retrodance.mp3
# Without pre-installing Sendspin
uvx sendspin serve /path/to/media.mp3
# Connect to specific clients
sendspin serve --demo --client ws://192.168.1.50:8927/sendspin --client ws://192.168.1.51:8927/sendspin
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 Distributions
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 sendspin-6.0.0.tar.gz.
File metadata
- Download URL: sendspin-6.0.0.tar.gz
- Upload date:
- Size: 106.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e68e98003403e7c786ccb53bd4b2071f2fd67c3a66f5e775949927f23b0ec6c
|
|
| MD5 |
677ec7802f1baf1cd7db4b98700f1b82
|
|
| BLAKE2b-256 |
9f2b68acfaf9d71ce2b3ef4bce9844c83b95d4130e65776f5520d5e80f9f3091
|
Provenance
The following attestation bundles were made for sendspin-6.0.0.tar.gz:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0.tar.gz -
Subject digest:
6e68e98003403e7c786ccb53bd4b2071f2fd67c3a66f5e775949927f23b0ec6c - Sigstore transparency entry: 1294467997
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 109.6 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c5b72ec2142300afbeb58e56739651147f24f709f077389486ded65af5c3f11
|
|
| MD5 |
4afdd96a3af2c14617d909e6cce44b8b
|
|
| BLAKE2b-256 |
340d859e8b1ad76abbdbf50358048110ae7a3f56813812403a20288d6fea50b5
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp313-cp313-win_amd64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp313-cp313-win_amd64.whl -
Subject digest:
0c5b72ec2142300afbeb58e56739651147f24f709f077389486ded65af5c3f11 - Sigstore transparency entry: 1294468070
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 114.0 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5a3586c21f7720e752c0c3e9645c2d84c1beb230c7bce7810577f271b91e716
|
|
| MD5 |
05cab27e2162c55a8974e44010032538
|
|
| BLAKE2b-256 |
d651071a27491658e289e3c5b2fe2f92e3ef0766cb090189a554b8aa68651e75
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
c5a3586c21f7720e752c0c3e9645c2d84c1beb230c7bce7810577f271b91e716 - Sigstore transparency entry: 1294468677
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
- Upload date:
- Size: 115.7 kB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89266c1999a50525da30f023ec4e5c66096b7130b13b2ef2ec9fe90ecf88f919
|
|
| MD5 |
51efa9eab2b6af8574a4146e1de73fff
|
|
| BLAKE2b-256 |
600c48511d84a974f551e9171ed1d56b66387f93a2bff99b62242d06bb28e190
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl -
Subject digest:
89266c1999a50525da30f023ec4e5c66096b7130b13b2ef2ec9fe90ecf88f919 - Sigstore transparency entry: 1294468281
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 107.9 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b7590da641746ace33d2d7d47bd40461fe7705120d996c57e5972a1069371ec
|
|
| MD5 |
313adbcbbbc96b549bae05ac73c2bd26
|
|
| BLAKE2b-256 |
eee8e60bd76df1976eb2dba7b1c5dd52c89f68ac687661deb933d10bbf6049ca
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
0b7590da641746ace33d2d7d47bd40461fe7705120d996c57e5972a1069371ec - Sigstore transparency entry: 1294468495
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 106.9 kB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2fae56258b96127905083cee500f5691cba09adff4d9f5875a53048230deeb8
|
|
| MD5 |
e91f3bbcc22f996f205d087925e8f316
|
|
| BLAKE2b-256 |
a12bb43bb5fe0edec5877ea54539beecba3a2cceb3f4be8ab8d9fbd769dad1f5
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl -
Subject digest:
b2fae56258b96127905083cee500f5691cba09adff4d9f5875a53048230deeb8 - Sigstore transparency entry: 1294468556
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 109.6 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1705d0ebdea88113b86f34768f0decea1aabb08ba88d728c2c84be3e23876826
|
|
| MD5 |
e65a9a37c984fdd01cdec2d0a9b036d3
|
|
| BLAKE2b-256 |
6a5914e80c50436ea8607e31c194c4236e2df60268549bed56763168c7c50c97
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp312-cp312-win_amd64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp312-cp312-win_amd64.whl -
Subject digest:
1705d0ebdea88113b86f34768f0decea1aabb08ba88d728c2c84be3e23876826 - Sigstore transparency entry: 1294468625
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 114.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55e93a4b7e1fce17ddb8ca9cd75c92817d5561adf32cbe0ebbf16a8d493f046a
|
|
| MD5 |
f7c83e0d145187733553ccd6354a0da1
|
|
| BLAKE2b-256 |
83518cd2a19cf9456906f0786f5c43fc8b3bcc961b7d3c3286d65c81f680141e
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
55e93a4b7e1fce17ddb8ca9cd75c92817d5561adf32cbe0ebbf16a8d493f046a - Sigstore transparency entry: 1294468203
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
- Upload date:
- Size: 115.7 kB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28712ed17a2feafc643fe836d68ee1eb5f040299b3e868171a7543386da38682
|
|
| MD5 |
09f18043ed663ed08cc259f6fe8dbc2e
|
|
| BLAKE2b-256 |
6dd57cbcc85fb8539fb010beffcf08c0d4e01b16baf9fa5999b7c43224b4e1cd
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl -
Subject digest:
28712ed17a2feafc643fe836d68ee1eb5f040299b3e868171a7543386da38682 - Sigstore transparency entry: 1294468358
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 107.9 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd2904da392e4d9d970e49fbb6fb693b0ce1375a7d71a9ae51ba8b3f03f82221
|
|
| MD5 |
b58a3095f0f3bfbe25a1c2b4fc14c7aa
|
|
| BLAKE2b-256 |
27e705a86d58dda51a5b5ed81fcc3879c6eb973073cf1f276d49d1f6fa8d0f61
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
dd2904da392e4d9d970e49fbb6fb693b0ce1375a7d71a9ae51ba8b3f03f82221 - Sigstore transparency entry: 1294468433
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type:
File details
Details for the file sendspin-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl.
File metadata
- Download URL: sendspin-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 106.9 kB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6eac5fcecec4828fcccfb4af2b75a72ca60510a8e01d6adcd7a8949525e34104
|
|
| MD5 |
699dc297796553a133023ccce1eef147
|
|
| BLAKE2b-256 |
91bd9dee81c1ef831d9b2cea9c6e4dfbc419f62c47a32758897f385200ad3afc
|
Provenance
The following attestation bundles were made for sendspin-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl:
Publisher:
release.yml on Sendspin/sendspin-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendspin-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl -
Subject digest:
6eac5fcecec4828fcccfb4af2b75a72ca60510a8e01d6adcd7a8949525e34104 - Sigstore transparency entry: 1294468135
- Sigstore integration time:
-
Permalink:
Sendspin/sendspin-cli@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Branch / Tag:
refs/tags/6.0.0 - Owner: https://github.com/Sendspin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dd81dfdf4ef7f1088a89520195d83d6df26a001d -
Trigger Event:
release
-
Statement type: