Wrapper to manage lightning ai studios
Project description
take-me-cloud
A CLI tool for seamless Lightning AI studio management and SSH configuration. Easily list all your accessible studios and automatically synchronize them with your .ssh/config file for quick SSH access.
Introduction
take-me-cloud simplifies working with Lightning AI studios by providing a unified command-line interface to:
- List all studios across your teamspaces and organizations
- View studio status and cluster information
- Automatically configure SSH access to your studios
- Preserve non-Lightning SSH hosts while keeping Lightning entries in sync
Features
--list/-ls: List all accessible studios across teamspaces and organizations with their status, owner, machine type, and state.--lock-ssh: Synchronize your Lightning studios with~/.ssh/config, enabling direct SSH access while preserving non-Lightning hosts. Automatically removes stale Lightning entries.--create-replace: Create a new studio with default machine type and cloud provider from config. Automatically deletes any existing studio with the same name.
Installation
Using uv
uv tool install take-me-cloud
Using pip
pip install take-me-cloud
Development (Editable Mode)
pip install -e .
Or with uv:
uv sync
Requirements
- Python >= 3.13
lightning-sdk >= 2026.4.23
Set the following environment variables before using the CLI:
LIGHTNING_API_KEY: Your Lightning AI API keyLIGHTNING_USER_ID: Your Lightning AI user ID
Usage
Configuration
Before using take-me-cloud, create a configuration file at ~/.config/take_me_cloud_config.yaml:
default_machine_type: T4
cloud_provider: AWS
teamspaces:
- rwth-gut/skillcomp
- your-teamspace/name
List all accessible studios
take-me-cloud --list
# or
take-me-cloud -ls
Output:
Studio Teamspace Owner Machine Type State
---------------------- ------------------- ------------- -------------- -----------------------
modern-amaranth-ou1r rwth-gut/skillcomp vaishnavahari T4 CLOUD_SPACE_STATE_READY
husky-coffee-72g7 rwth-gut/skillcomp vaishnavahari CPU CLOUD_SPACE_STATE_READY
Create a new studio
take-me-cloud --create-replace my-studio
This command will:
- Prompt you to select a teamspace from your config file
- Create a new studio named
my-studiowith the default machine type and cloud provider - Delete any existing studio with the same name
- Show a progress bar during creation
Synchronize SSH configuration
take-me-cloud --lock-ssh
This command will:
- Ensure Lightning SSH keys exist in
~/.ssh/ - Add all currently accessible studios to
~/.ssh/configwith proper SSH configuration - Remove stale Lightning studio entries that are no longer accessible
- Preserve all non-Lightning hosts
Output:
SSH config synchronized (lightning_hosts=12, non_lightning_hosts_preserved=1).
SSH Access
Once --lock-ssh is run, you can SSH directly to any of your studios by name:
ssh modern-amaranth-ou1r
ssh husky-coffee-72g7
Development
Run tests
uv run python -m unittest discover -s tests -v
Project structure
take-me-cloud/
├── take_me_cloud/
│ ├── __init__.py
│ ├── base.py # Core functionality (listing, SSH config)
│ ├── cli.py # CLI entry point and argument parsing
├── tests/
│ ├── test_base.py # Core functionality tests
│ ├── test_cli.py # CLI tests
├── doc/
│ ├── AGENT.md # Agent instructions
│ ├── FEATURES.md # Feature specifications
│ ├── TESTING.md # Testing requirements
├── README.md
└── pyproject.toml
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file take_me_cloud-0.1.2.tar.gz.
File metadata
- Download URL: take_me_cloud-0.1.2.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
529b8895682fae3301a47153f149634d493fdda2eac76ed0df25804d28fba7b2
|
|
| MD5 |
d0517bab84526f69beb8a0d3030706a1
|
|
| BLAKE2b-256 |
bb67cb326cd63515ead0c8095ad6ac6a730b77100f78381e367ec4c46da6aa8a
|
Provenance
The following attestation bundles were made for take_me_cloud-0.1.2.tar.gz:
Publisher:
python-publish.yml on svaichu/take_me_cloud
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
take_me_cloud-0.1.2.tar.gz -
Subject digest:
529b8895682fae3301a47153f149634d493fdda2eac76ed0df25804d28fba7b2 - Sigstore transparency entry: 1449920731
- Sigstore integration time:
-
Permalink:
svaichu/take_me_cloud@ca83d6909756cf85e08f54db18cc16f3861efd7d -
Branch / Tag:
refs/tags/0.1.2 - Owner: https://github.com/svaichu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@ca83d6909756cf85e08f54db18cc16f3861efd7d -
Trigger Event:
release
-
Statement type:
File details
Details for the file take_me_cloud-0.1.2-py3-none-any.whl.
File metadata
- Download URL: take_me_cloud-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a02ecbaa8fb419783127be15f1388a0d2499669ab3bc55eb50fe487e0c6e8f8e
|
|
| MD5 |
4798f3f3796a5b21bdcd428c14469066
|
|
| BLAKE2b-256 |
5a1d65d0ee817864d88584c99364ddda732113755b783fe44a60854e1eaff66c
|
Provenance
The following attestation bundles were made for take_me_cloud-0.1.2-py3-none-any.whl:
Publisher:
python-publish.yml on svaichu/take_me_cloud
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
take_me_cloud-0.1.2-py3-none-any.whl -
Subject digest:
a02ecbaa8fb419783127be15f1388a0d2499669ab3bc55eb50fe487e0c6e8f8e - Sigstore transparency entry: 1449920820
- Sigstore integration time:
-
Permalink:
svaichu/take_me_cloud@ca83d6909756cf85e08f54db18cc16f3861efd7d -
Branch / Tag:
refs/tags/0.1.2 - Owner: https://github.com/svaichu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@ca83d6909756cf85e08f54db18cc16f3861efd7d -
Trigger Event:
release
-
Statement type: