Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "2.21.0"
".": "2.22.0"
}
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## [2.22.0](https://github.com/togethercomputer/together-py/compare/v2.21.0...v2.22.0) (2026-07-01)


### Features

* Add early_stopping params to fine_tuning.create() ([#425](https://github.com/togethercomputer/together-py/issues/425)) ([78f81c0](https://github.com/togethercomputer/together-py/commit/78f81c0995bc29fb797562d673ea6759595c941b))
* **cli:** add `together ssh` for OIDC-signed certificate access ([142704b](https://github.com/togethercomputer/together-py/commit/142704b8a1c22208021bfd77893c1c349e8b357f))
* **cli:** add `together ssh` for OIDC-signed certificate access [TCL-6889] ([333befc](https://github.com/togethercomputer/together-py/commit/333befc0dd1ae4ddb7f820f8f0708b2bcca00c82))
* **openapi:** add force stop parameter ([8e7c2cf](https://github.com/togethercomputer/together-py/commit/8e7c2cf79bd4356b626ab228498aa50b316ef908))
* **openapi:** expose remediation linked alerts ([e6db459](https://github.com/togethercomputer/together-py/commit/e6db459dc4a9a20dc4ad35a841a95a413ae547e5))
* **openapi:** sync passive health check alerts ([785fefc](https://github.com/togethercomputer/together-py/commit/785fefcf53d1ef9657fea46b9a2879b89f30f88a))
* prompt for preemptible GPUs in interactive cluster create wizard ([#428](https://github.com/togethercomputer/together-py/issues/428)) ([e2e2524](https://github.com/togethercomputer/together-py/commit/e2e2524347010a0fda6142d0a065dd9b264e4234))
* prompt for preemptible GPUs in interactive cluster create wizard ([#428](https://github.com/togethercomputer/together-py/issues/428)) ([8b67e3b](https://github.com/togethercomputer/together-py/commit/8b67e3bb4c1656141f086987ccfc1b88b6a9eaf4))


### Bug Fixes

* **cli:** satisfy pyright/ruff lint for `together ssh` ([0f772be](https://github.com/togethercomputer/together-py/commit/0f772be2c2e0fc38f0501abaeaedea695ce1b165))

## [2.21.0](https://github.com/togethercomputer/together-py/compare/v2.20.0...v2.21.0) (2026-06-29)


Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "together"
version = "2.21.0"
version = "2.22.0"
description = "The official Python library for the together API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion scripts/mock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/together/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "together"
__version__ = "2.21.0" # x-release-please-version
__version__ = "2.22.0" # x-release-please-version
7 changes: 4 additions & 3 deletions src/together/lib/cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,9 +335,6 @@ async def run_command() -> None:
# Register commands
_CLI = "together.lib.cli.api"

## SSH (OIDC-signed certificate; no API key, no control-plane contact)
app.command(f"{_CLI}.ssh:ssh", help="SSH into a cluster via an OIDC-signed certificate")

## Files API commands
files_app = app.command(App(name="files", help="Upload and manage files", help_epilogue=FILES_HELP_EXAMPLES))
files_app.command(
Expand Down Expand Up @@ -480,6 +477,10 @@ async def run_command() -> None:
help="Get credentials for a cluster",
help_epilogue=BETA_CLUSTERS_GET_CREDENTIALS_HELP_EXAMPLES,
)
clusters_app.command(
(f"{_CLI}.beta.clusters.ssh:ssh"),
help="SSH into a cluster via an OIDC-signed certificate",
)

### Clusters > Storage API commands
storage_app = clusters_app.command(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""`together ssh` — SSH into a Together cluster using a short-lived,
"""`tg beta clusters ssh` — SSH into a Together cluster using a short-lived,
OIDC-signed SSH certificate. No API key, no long-lived SSH key, no
control-plane contact: every coordinate is derived from the cluster's Dex URL.

Expand Down
3 changes: 3 additions & 0 deletions src/together/lib/cli/utils/_help_examples.py
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,9 @@
[dim]-[/dim] Manage node remediations:
[primary]tg beta clusters remediations ls <cluster-id>[/primary]
[primary]tg beta clusters remediations create <cluster-id> <instance-id> --mode VM_ONLY[/primary]

[dim]-[/dim] SSH into a cluster (OIDC-signed certificate; see [primary]tg beta clusters ssh --help[/primary]):
[primary]tg beta clusters ssh https://dex.<base>/<cluster-id> --login <username>[/primary]
"""

BETA_CLUSTERS_CREATE_HELP_EXAMPLES = """[dim]Examples:[/dim]
Expand Down
3 changes: 3 additions & 0 deletions src/together/types/fine_tuning_cancel_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,9 @@ class FineTuningCancelResponse(BaseModel):
updated_at: datetime
"""Last update timestamp of the fine-tune job"""

user_id: str
"""ID of the user who owns the fine-tune job."""

batch_size: Optional[int] = None
"""Batch size used for training"""

Expand Down
3 changes: 3 additions & 0 deletions src/together/types/fine_tuning_list_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@ class Data(BaseModel):
updated_at: datetime
"""Last update timestamp of the fine-tune job"""

user_id: str
"""ID of the user who owns the fine-tune job."""

batch_size: Optional[int] = None
"""Batch size used for training"""

Expand Down
3 changes: 3 additions & 0 deletions src/together/types/finetune_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ class FinetuneResponse(BaseModel):
"completed",
]

user_id: str
"""ID of the user who owns the fine-tune job."""

batch_size: Union[int, Literal["max"], None] = None

created_at: Optional[datetime] = None
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.