Tools for working with Together AI sandboxes: a CLI, a TypeScript SDK, and a Python SDK.
# CLI
curl -fsSL https://raw.githubusercontent.com/togethercomputer/together-sandbox/main/install.sh | bash
# TypeScript SDK
npm install together-sandbox
# Python SDK
pip install together-sandboxAll three packages authenticate via the TOGETHER_API_KEY environment variable.
-
Sign in (or sign up) at together.ai.
-
Open your project's API keys page.
-
Click Create key, give it a name, and copy the value.
-
Export it in your shell (or add it to your
.env):export TOGETHER_API_KEY="your-key-here"
The canonical docs live in docs/ and are the single source of truth:
- Sandboxes and Snapshots
- Harbor Integration Guide
- Tinker + Harbor recipe
- CLI
- TypeScript SDK
- Python SDK
Each published SDK ships a copy of the docs it needs (its own SDK reference,
the CLI reference, and the sandboxes/snapshots concepts) plus a top-level
LLMS.md guide. They land inside the npm tarball and the Python wheel so
agents and tools that introspect installed packages can discover them without
hitting the network:
| Package | After install, docs live at |
|---|---|
together-sandbox (npm) |
node_modules/together-sandbox/{LLMS.md,docs/} |
together-sandbox (pip) |
site-packages/together_sandbox/{LLMS.md,docs/} |
generate.sh copies the relevant subset of docs/
into each SDK package and renders LLMS.md from
LLMS-template.md with per-package substitutions.
Generated outputs (together-sandbox-*/docs/ and together-sandbox-*/LLMS.md)
are git-ignored. Edit the source in docs/ and
LLMS-template.md — never the generated copies.
If the OpenAPI specs change, regenerate all clients from the repo root:
bash generate.shReleases are fully automated via release-please — no manual tagging or version bumping required.
-
Merge PRs to
mainusing Conventional Commits — the commit type determines what kind of release is created:feat:→ minor version bumpfix:→ patch version bumpfeat!:/BREAKING CHANGE:→ major version bumpchore:,docs:, etc. → no release
-
release-please opens a "Release PR" automatically, accumulating changes and updating
CHANGELOG.mdplus all three version files in sync:together-sandbox-typescript/package.jsontogether-sandbox-cli/package.jsontogether-sandbox-python/pyproject.toml
-
Merge the Release PR → release-please creates the GitHub Release and tag automatically.
-
Three publish jobs fan out in parallel, all gated on the release-please tag:
build-and-upload— compiles CLI binaries for all 5 platforms (darwin arm64/x64, linux x64/arm64, windows x64) and attaches them to the GitHub Release.publish-npm— regenerates SDK clients, builds the TypeScript SDK, and runsnpm publishto publishtogether-sandboxto npm using OIDC trusted publishing (no token).publish-pypi— regenerates SDK clients, runspython -m build, and publishestogether-sandboxto PyPI using OIDC trusted publishing (no token).
Both publish jobs run inside protected GitHub Environments (
npmandpypi) so deploys are restricted tomain.
The only human action required is keeping commits conventional and merging the Release PR when ready to ship.