RepoLightning AILightning AIpublished Jul 1, 2026seen 3w

Lightning-AI/sdk

Python

Open original ↗

Captured source

source ↗
published Jul 1, 2026seen 3wcaptured 3whttp 200method plain

Lightning-AI/sdk

Description: SDK and CLI for lightning.ai platform. Develop and train AI with ease.

Language: Python

License: MIT

Stars: 1

Forks: 0

Open issues: 0

Created: 2026-07-01T09:28:24Z

Pushed: 2026-07-03T19:12:58Z

Default branch: main

Fork: no

Archived: no

README:

Why Lightning SDK?

Lightning SDK is the programmatic interface for Lightning AI resources. Use it when scripts, notebooks, services, or CI jobs need to create compute, run work, inspect state, stream logs, move files, or clean up resources without clicking through the UI.

The repo contains the Python SDK and CLI, a TypeScript SDK, and a Go SDK. The Python package covers platform automation across studios, jobs, deployments, teamspaces, and sandboxes. The TypeScript package focuses on sandboxes: create isolated environments, run commands, use PTY sessions, and read or write files. The Go package exposes Lightning resources as typed handles for users, organizations, teamspaces, studios, jobs, and multi-machine training jobs.

Build on Lightning AI, the platform for training, deploying, and scaling AI applications with managed compute, collaborative studios, and production endpoints.

Quick start

Install the interface you need:

pip install lightning-sdk
npm install @lightningai/sdk
go get github.com/lightning-ai/sdk/go

Authenticate once for the Python SDK, Go SDK, and CLI:

lightning login

For TypeScript sandboxes, export an API key from Lightning AI account settings:

export LIGHTNING_API_KEY="..."

Start with the workflow you need. Each workflow below shows the same task across the SDKs and CLI wherever that surface is available.

Studio

Use a Studio for a persistent cloud development environment. Available in Python, Go, and the CLI.

Python

from lightning_sdk import Machine, Studio

studio = Studio("readme-studio", teamspace="owner/teamspace", create_ok=True)
studio.start(Machine.CPU)
print(studio.run("python --version"))
studio.stop()

Go

package main

import (
"fmt"
"log"

lit "github.com/lightning-ai/sdk/go"
)

func main() {
org, err := lit.GetOrganization("my-org")
if err != nil {
log.Fatal(err)
}

teamspace, err := lit.GetTeamspace("my-teamspace", lit.TeamspaceOptions{Owner: org})
if err != nil {
log.Fatal(err)
}

studio, err := lit.CreateStudio("readme-studio", lit.StudioOptions{
Teamspace: teamspace,
Machine: lit.MachineCPU,
})
if err != nil {
log.Fatal(err)
}

if err := studio.Start(); err != nil {
log.Fatal(err)
}

output, err := studio.Run("python --version")
if err != nil {
log.Fatal(err)
}
fmt.Println(output)
}

CLI

lightning studio start \
--name readme-studio \
--teamspace owner/teamspace \
--machine CPU \
--create

Job

Use a job for container-backed batch work. Available in Python, Go, and the CLI.

Python

from lightning_sdk import Job, Machine

job = Job.run(
name="readme-job",
image="python:3.11-slim",
machine=Machine.CPU,
teamspace="owner/teamspace",
command="python -c 'print(\"hello from Lightning\")'",
)

job.wait()
print(job.status)

Go

package main

import (
"fmt"
"log"

lit "github.com/lightning-ai/sdk/go"
)

func main() {
org, err := lit.GetOrganization("my-org")
if err != nil {
log.Fatal(err)
}

teamspace, err := lit.GetTeamspace("my-teamspace", lit.TeamspaceOptions{Owner: org})
if err != nil {
log.Fatal(err)
}

job, err := lit.RunJob(
"go-readme-job",
lit.MachineCPU,
"python -c 'print(\"hello from Lightning\")'",
lit.JobOptions{
Teamspace: teamspace,
Image: "python:3.11-slim",
},
)
if err != nil {
log.Fatal(err)
}

if err := job.Wait(); err != nil {
log.Fatal(err)
}
fmt.Println(job.Status())
}

CLI

lightning job run \
--name readme-job \
--teamspace owner/teamspace \
--image python:3.11-slim \
--machine CPU \
--command "python -c 'print(\"hello from Lightning\")'"

Sandbox

Use a sandbox for disposable or persistent command execution with file and PTY support. Available in Python, TypeScript, and the CLI.

Python

from lightning_sdk.sandbox import Sandbox

sandbox = Sandbox.create(name="readme-sandbox", instance_type="cpu-1")
command = sandbox.run_command("python --version")
print(command.output)
sandbox.delete()

TypeScript

import { Sandbox } from "@lightningai/sdk";

const sandbox = await Sandbox.create({
name: "readme-sandbox",
instanceType: "cpu-1",
});

const result = await sandbox.runCommand("echo", ["hello from Lightning"]);
console.log(result.output);

await sandbox.delete();

CLI

lightning sandbox create \
--name readme-sandbox \
--teamspace owner/teamspace \
--instance-type cpu-1 \
--json

export SANDBOX_ID=sbx_1234567890
lightning sandbox run "$SANDBOX_ID" -- python -c "print('hello from Lightning')"
lightning sandbox delete "$SANDBOX_ID"

Packages

| Package | Path | Install | Use it for | | ------------------ | -------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------- | | Python SDK and CLI | [python/](python/) | pip install lightning-sdk | studios, jobs, deployments, teamspaces, sandboxes, and CLI automation | | TypeScript SDK | [js/](js/) | npm install @lightningai/sdk | Sandbox creation, commands, files, PTY sessions, and snapshots | | Go SDK | [go/](go/) | go get github.com/lightning-ai/sdk/go | Typed handles for users, organizations, teamspaces, studios, jobs, and multi-machine training jobs |

Authentication

For the Python SDK and CLI, run lightning login or export LIGHTNING_USER_ID and LIGHTNING_API_KEY from Lightning AI account settings. Inside a Lightning Studio, these values are usually already available.

Sandbox-only API keys can also be passed through LIGHTNING_SANDBOX_API_KEY or configured directly in code with Sandbox.configure(...).

Development

This repository is a monorepo. To work on the Python package from the repo root:

pip install -e ./python

To work on the TypeScript package:

cd js
npm install
npm run build

To work on the Go package:

cd go
go test ./...

Run package-specific tests from the relevant package directory. See [python/README.md](python/README.md), [js/README.md](js/README.md), [go/README.md](go/README.md), and [python/examples/README.md](python/examples/README.md) for narrower package guides.

Community...

Excerpt shown — open the source for the full document.

Notability

notability 3.0/10

New SDK repo with minimal traction (1 star).