一个 Python 框架,用于简化 AI 服务的构建
The Python library and lep CLI for NVIDIA DGX Cloud Lepton
Homepage • Examples • Documentation • CLI References
The LeptonAI Python library lets you operate the NVIDIA DGX Cloud Lepton platform from Python and the command line. Key features include:
lep command-line tool to create and manage endpoints, batch jobs, dev pods, Ray and Slurm clusters, fine-tuning jobs, storage, secrets, and more.Client to call your deployed endpoints like native Python functions.Install the library, which also installs the lep command-line tool:
pip install -U leptonai
Log in to your workspace (this opens a browser to fetch credentials if you don't pass them in):
lep login
Deploy a container image as an endpoint, then inspect it:
lep endpoint create -n my-endpoint --container-image my-registry/my-app:latest
lep endpoint list
lep endpoint status -n my-endpoint
In workspaces with secure endpoint defaults enabled, an endpoint created without
--tokens is protected automatically. The create command prints the generated API
token; save that value so clients can authenticate. You can instead provide one or
more repeatable --tokens values, or explicitly opt out with
--allow-unauthenticated-access (the CLI displays a warning). The --public option
only controls IP reachability and does not disable API-token authentication.
lep endpoint status reports these dimensions separately as IP Access and
API Token Authentication.
SDK callers that leave endpoint authentication unspecified should use
client.deployment.create_with_response(...) and save the token from the returned
resource. The older create(...) method keeps its boolean return contract and cannot
return a server-generated credential, so it emits a RuntimeWarning for requests that
may ask the server to generate one. SDK updates may not clear api_tokens by sending
an empty list alone: set allow_unauthenticated_access=true in the same update, or
replace the list with at least one token.
lep endpoint get redacts literal tokens by default. Use --show-tokens only when you
need a credential-bearing response or reusable spec export, and handle that output as
a secret. The former hidden update --remove-tokens option is rejected; use
--allow-unauthenticated-access for an explicit opt-out.
Authentication-mode updates are explicit:
# Replace tokens and enable token authentication
lep endpoint update -n my-endpoint --tokens MY_TOKEN
# Clear tokens and explicitly allow requests without API-token authentication
lep endpoint update -n my-endpoint --allow-unauthenticated-access
You can also launch batch jobs and dev pods:
# Run a batch job
lep job create -n my-job --container-image my-registry/my-trainer:latest --command "python train.py"
# Launch an interactive dev pod
lep pod create -n my-pod --resource-shape gpu.a10
Run lep --help, or lep <command> --help for any subcommand, to explore everything. See the CLI references for the full guide.
Once an endpoint is running, call it from Python with the Client. It reads the endpoint's OpenAPI schema and exposes each path as a method:
from leptonai.client import Client, local
# Connect to a workspace endpoint...
c = Client("my-workspace", "my-endpoint", token="MY_TOKEN")
# ...or to something running locally:
c = Client(local(port=8080))
# Discover the available paths and their docs
print(c.paths())
print(c.run.__doc__)
# Call the endpoint as if it were a local function
print(c.run(inputs="hello world"))
You can find more examples in the examples repository, and full guides in the documentation.
This repo ships an agent skill that lets Claude Code (or Codex) drive the lep CLI for you — listing endpoints, inspecting jobs and dev pods, checking workspace status, and managing workloads, all from natural language. It uses the same lep CLI installed above, so make sure it is authenticated to your workspace.
The plugin lives under plugins/lepton-cli with per-agent manifests for Claude Code, Codex, and Cursor (.claude-plugin/, .codex-plugin/, .cursor-plugin/), all sharing the one skill at skills/lepton-cli. It is listed in two marketplaces in this repo: .claude-plugin/marketplace.json for Claude Code and .agents/plugins/marketplace.json for Codex.
Codex — add this repo as a marketplace, then install the plugin:
codex plugin marketplace add leptonai/leptonai
codex plugin add lepton-cli@lepton-skills
Or browse interactively: run /plugins in the Codex CLI (or open Plugins in the Codex app), find Lepton CLI, and install.
Claude Code — install from the Lepton marketplace in one line, nothing to clone:
/plugin marketplace add leptonai/leptonai
/plugin install lepton-cli@lepton-skills
Start a new session, then ask something like "List the endpoints in my Lepton workspace." The skill asks for explicit confirmation before any command that modifies or deletes a workload.
Codex, or Claude Code without pluginsClone this repo, then copy the skill into your agent's skills directory:
# Codex
cp -R plugins/lepton-cli/skills/lepton-cli "${CODEX_HOME:-$HOME/.codex}/skills/lepton-cli"
# Claude Code (personal skill)
cp -R plugins/lepton-cli/skills/lepton-cli "$HOME/.claude/skills/lepton-cli"
Restart the agent afterward.
Contributions and collaborations are welcome and highly appreciated. Please check out the contributor guide for how to get involved.
The Lepton AI Python library is released under the Apache 2.0 license.
Developer Note: early development of LeptonAI was in a separate mono-repo, which is why you may see commits from the leptonai/lepton repo. We intend to use this open source repo as the source of truth going forward.
暂无开放 Issues,或尚未同步最近议题。