cursive-blink
The customer Python SDK and blink command-line tool for Blink. Upload supported
checkpoints, request model deployments, submit supported evaluation campaigns,
follow their progress, and download published results. You need a Blink service
URL and a customer team API key supplied by your Blink operator.
This package does not run a Blink server, schedule GPUs, execute evaluation sandboxes, perform training or include model weights. Installation does not grant access to a service, model or compute. Available features depend on the service's configured capabilities and your team's permissions.
Install
Linux and Python 3.12 or later are required. The initial release targets Linux x86-64 and ARM64; macOS and Windows are not qualified. No CUDA, Torch or training environment is required for the ordinary client.
For the CLI, install an isolated tool environment:
uv tool install --python 3.12 'cursive-blink==0.2.0'
blink --help
If your shell cannot find the command, run uv tool update-shell and start a new
shell. For Python integration, install into your project's environment instead:
uv add 'cursive-blink==0.2.0'
uv tool install does not expose the SDK to an unrelated Python environment.
For offline clusters, ask your operator for the matching wheel and a dependency
wheelhouse for the correct Python version and architecture.
Configure and check access
Replace the example URL with the service URL supplied by your operator. This command prompts for the customer API key without echoing it:
blink configure --base-url https://blink.example.com --output client.json
blink check --config client.json
For noninteractive setup, add --key-file /private/blink/team-key.txt; the file
must be owned by you and have 0600 permissions. Never put the key in
a command-line argument, a checked-in script or a chat message. Configuration and
transfer journals contain credentials and must remain private. The client checks
the key with the configured service before saving a new configuration.
configure authenticates an existing key; it does not sign you up, create a team
or bootstrap operator credentials. It will not overwrite an existing config.
check performs read-only authentication and capability checks and reports
separately whether campaign discovery is available. Run either command with
--help for all options.
Common commands
In these examples, client.json is the private configuration produced by setup.
Replace uppercase placeholders with IDs/settings returned by your service.
blink capabilities --config client.json
blink upload --config client.json /absolute/checkpoint --request-key MY_UPLOAD_KEY
blink resume --config client.json job_RETURNED_JOB_ID
blink campaigns --config client.json recipes
blink campaigns --config client.json submit RECIPE_ID \
--recipe-digest RECIPE_DIGEST --request-key MY_CAMPAIGN_KEY --model-id MODEL_ID
blink campaigns --config client.json watch cam_CAMPAIGN_ID
blink campaigns --config client.json artifacts cam_CAMPAIGN_ID
blink campaigns --config client.json download cam_CAMPAIGN_ID art_ARTIFACT_ID \
--output /private/results/result.json
Uploaded checkpoint preparation/model registration follows the workflow exposed
by your selected deployment profile; an upload receipt alone is not a ready
model. blink deploy, connect, heartbeat and stop support customer-owned
harnesses. Use blink COMMAND --help for their required options.
Keep each request key stable when retrying the same submission. Uploads run in a
detached local worker and maintain durable resume journals: that machine still
needs to stay running until transfer completes. Exiting campaign watch does not
cancel the campaign. Use explicit cancellation, and distinguish accepted
cancellation from confirmed resource cleanup. Missing results or measurements
are not successful results or zero usage.
Supported task archives can be uploaded with campaigns upload-task and submitted
with campaigns submit-tasks only when the service enables a qualified runtime.
Upload acceptance is not execution approval. Team key replacement/revocation and
explicit retention previews are available through the same authenticated client;
revoking a management key does not cancel existing deployments or inference keys.
Python SDK
from cursive_blink import BlinkClient
client = BlinkClient.from_config("/private/blink/client.json")
print(client.capabilities())
print(client.campaigns())
The SDK supports checkpoint upload/resume, model/deployment management, campaign
submission/status/cancellation, scoped connection credentials and checksummed
artifact download. Optional cursive_blink.harness.ManagedHarness manages a
deployment lease and cleanup around your own harness; it does not supply or run
the harness. Its completion adapter currently returns non-streaming responses.
Optional agent tools
uv tool install --python 3.12 'cursive-blink[mcp]==0.2.0'
blink mcp --config /private/blink/client.json
This starts a local stdio MCP server using the same customer credentials. MCP exposes its own supported deployment-management tools; it is not a promise of CLI/campaign feature parity. Run it where checkpoint files are readable. Core CLI/SDK use does not need the MCP dependency.
Compatibility and licence
Use the release recommended by your operator. Server-only updates do not require
automatic client upgrades; new client features still depend on server support.
This public package uses the cursive_blink Python namespace. Earlier private
monolithic builds used blink; migrate example imports accordingly. Do not
upgrade an existing Blink server environment using this customer distribution.
The included customer client is MIT licensed. This licence does not cover Blink's private backend, third-party dependencies, customer data, credentials, model weights or service access. Dependencies retain their own licences.
Release files for cursive-blink 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cursive_blink-0.2.0.tar.gz | 55.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cursive_blink-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 118.3 kB
Release files / cursive_blink-0.2.0.tar.gz
| Download URL | cursive_blink-0.2.0.tar.gz |
|---|---|
| Size | 55.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a64bbda6840bd42a355139ad774f9c8d97dafcb69de9bd2f7a717b4ea306fd88
|
|
BLAKE2b-256 checksum How to use checksums |
b9fbdaf3d86f09564dcf1ca5138d809bae0e6b58fc7b8a6fd452c7f7fab4234b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 30, 2026.
Transparency logRelease files / cursive_blink-0.2.0-py3-none-any.whl
| Download URL | cursive_blink-0.2.0-py3-none-any.whl |
|---|---|
| Size | 63.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cdc0f3a88005fc1db25e6962a638a1cb994684ee2972a9811a8761fb84dfb3b2
|
|
BLAKE2b-256 checksum How to use checksums |
279a783b90dd5c9def6c4e7f6ec33f898cab99b2283ad8c74b79dbca122572c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 30, 2026.
Transparency log