SweatStack CLI
Command-line interface for SweatStack — the sports data platform for developers.
Installation
Requires Python 3.11+. We recommend uv for installation.
# Run directly without installing
uvx sweatstack-cli
# Or install as a tool
uv tool install sweatstack-cli
# Or with pip
pip install sweatstack-cli
To upgrade:
uv tool upgrade sweatstack-cli
To reinstall (e.g. after a broken install or Python version change):
uvx --reinstall sweatstack-cli
# or if installed as a tool
uv tool install --reinstall sweatstack-cli
Quick Start
# Authenticate with SweatStack
sweatstack login
# Create an app with a page, and scaffold public/index.html
sweatstack page init "My App"
# Preview locally, then publish to https://my-app.pages.sweatstack.dev
sweatstack page serve
sweatstack page deploy
Commands
Authentication
| Command | Description |
|---|---|
sweatstack login |
Authenticate via browser (OAuth2 PKCE) |
sweatstack login --force |
Force re-authentication |
sweatstack logout |
Remove stored credentials |
sweatstack status |
Show auth status, user info, and version |
sweatstack --version |
Show version and check for updates |
Application Management
| Command | Description |
|---|---|
sweatstack app create [NAME] |
Create a new private OAuth2 application |
sweatstack app link |
Link current directory to an existing application |
app create options
| Option | Description |
|---|---|
--description, -d TEXT |
Application description (max 500 chars) |
--page, -p SLUG |
Associate with a SweatStack Page |
--secret, -s |
Generate a client secret |
--env |
Write credentials to .env |
--env-file PATH |
Write credentials to a specific file |
--json |
Output as JSON |
app link options
| Option | Description |
|---|---|
--force, -f |
Overwrite existing sweatstack.toml |
Project Configuration
app create, app link and page init generate a sweatstack.toml in the current directory. Other commands read defaults from this file.
[app]
name = "My App"
client_id = "abc123"
[page]
slug = "my-page"
directory = "dist"
Pages
Static sites hosted at https://<slug>.pages.sweatstack.dev. Each application has at most one page.
| Command | Description |
|---|---|
sweatstack page init [NAME] |
Create an app and its page, and scaffold public/index.html |
sweatstack page serve |
Preview the site locally |
sweatstack page deploy [SLUG] |
Publish the site, creating the page if needed |
page init
Creates a private application and its page, records both in sweatstack.toml, and writes a starter app to public/index.html that signs in with SweatStack and plots your latest activity. The slug is derived from the name. With an app already linked in sweatstack.toml, it reuses that app instead of creating one.
| Option | Description |
|---|---|
--slug TEXT |
Page slug (default: derived from the name) |
--dir PATH |
Directory to scaffold (default: public) |
--title TEXT |
Title shown on the page (default: the name) |
--client-id TEXT |
Reuse an existing application |
--force, -f |
Overwrite an existing index.html |
page serve
Serves the [page] directory from sweatstack.toml on the first free port from 8000. Extra arguments are passed to python -m http.server. Apps created by the CLI accept sign-in redirects to localhost on any port.
page deploy
# Deploy using sweatstack.toml defaults (recommended)
sweatstack page deploy
# Or specify slug and directory explicitly
sweatstack page deploy my-page --dir ./dist
Every deploy replaces all files on the page. If the page doesn't exist yet, deploy creates it. With an app linked in sweatstack.toml, it creates that app's page. Without one, it asks to create a new app with the page, and fails instead when not run interactively (e.g. in CI).
New apps are private: only you can sign in. After deploying, deploy prints a link to make the app public.
Limits: 10 MB per file; 100 MB and about 1,000 files per deploy.
License
MIT
Metadata
Release files for sweatstack-cli 0.12.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| sweatstack_cli-0.12.1.tar.gz | 109.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sweatstack_cli-0.12.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 148.7 kB
Release files / sweatstack_cli-0.12.1.tar.gz
| Download URL | sweatstack_cli-0.12.1.tar.gz |
|---|---|
| Size | 109.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c1b69508764887cb2891db6d271a7867f6f181e6df5fa6626c7d44aa429f77e1
|
|
BLAKE2b-256 checksum How to use checksums |
3794597102f0b8f53aebd5805d6f9cf0934df1243941aa091b091bbeda3781d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"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}
|
Release files / sweatstack_cli-0.12.1-py3-none-any.whl
| Download URL | sweatstack_cli-0.12.1-py3-none-any.whl |
|---|---|
| Size | 39.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b3cd2b83a4d48193494cb255dcb2a195cbe530e2e9bd2028f18fec20db6d3007
|
|
BLAKE2b-256 checksum How to use checksums |
4a4c64366d2a309c9766d3f652dbe3a5254dcea9909215c10f2882e834770ccc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"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}
|
Security for sweatstack-cli 0.12.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.