Skip to main content

Record and share Jupyter notebook findings via shareable links

Project description

Skua

Shareable URLs for notebook outputs

One function call turns plots, DataFrames, and text into permanent links. Re-run the cell to update — same URL, fresh results.

Installation

pip install getskua

No setup required. No account, no API key. The only runtime dependency is requests.

Quick Start

import matplotlib.pyplot as plt
import skua

fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 4, 9])
ax.set_title("Quadratic Growth")

result = skua.record(fig, title="Quadratic Growth")
print(result.url)  # https://skua.dev/f/abc123

Share the URL with anyone. Call skua.record() again with the same title to update in place.

Supported Types

Skua auto-detects the object type and picks the right serializer:

  • Matplotlib figures — high-DPI PNG
  • Plotly figures — fully interactive (zoom, pan, hover, export)
  • Pandas DataFrames — sortable, filterable tables
  • Polars DataFrames — same interactive tables (LazyFrames collected automatically)
  • NumPy arrays — rendered as tables
  • PIL Images — saved as PNG
  • Lists of dicts — rendered as tables (handy for HuggingFace pipelines, eval loops)
  • PyTorch / TensorFlow tensors — image tensors as PNG, others as tables
  • Anything else — falls back to string representation

Skua uses your installed libraries to serialize objects, so there are never version conflicts.

API

skua.record(obj, title, description=None, public=None)

Capture and share a Python object. Returns a RecordResult with .url and .metadata. In Jupyter, the original object is displayed inline.

skua.init(public=None)

Set session-wide defaults. Call once at the top of a notebook — per-call arguments override.

skua.login()

Open the browser to verify your email. Verified accounts get 90-day retention (vs 7 days), 50 findings (vs 10), and a public profile page at skua.dev/u/username.

skua.token("sk_...")

Paste the token you receive by email after skua.login().

Limits

Anonymous sessions work out of the box:

  • 7-day retention, 10 findings, 20 uploads/hour, 10 MB per finding

Verify your email to unlock:

  • 90-day retention (resets on update, 1-year max), 50 findings, 10 MB per finding

Privacy

Every finding is accessible to anyone who has its URL. URLs contain random IDs that are not guessable or listed anywhere, but there is no login-gated access control. The public flag only controls whether a finding appears on your profile page — it does not restrict access to the URL itself. Do not record sensitive data.

Documentation

Full docs, live examples, and the API reference at skua.dev/docs.

License

MIT

Support

Questions or feedback? Email hello@skua.dev or open an issue on GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

getskua-0.9.2.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

getskua-0.9.2-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file getskua-0.9.2.tar.gz.

File metadata

  • Download URL: getskua-0.9.2.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for getskua-0.9.2.tar.gz
Algorithm Hash digest
SHA256 9552fd84a90a5bed640746f181fda32e807d70f9c1b317e8f6d0ab87182b2c46
MD5 80fdd38a7bc66a5c73977d43d96e681e
BLAKE2b-256 ec1622001fe84af24b0deddc4c4025268db599b9de360b78d4f21edaad241f68

See more details on using hashes here.

File details

Details for the file getskua-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: getskua-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for getskua-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 212d492cf3eca8b68dcbad1436182fb737d3739d321d644a2e7022d2dd8f82ac
MD5 c533904b5c7a127ecdd0a003eb8e412b
BLAKE2b-256 7c939bffc6bcd0fcb6de9f48efb0cfcb8747af1abf6756478eedde1dfa830f5f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page