Minimal PSR-compliant PHP 8.3 CLI project for managing SimplePod Docker instances through the SimplePod REST API.
- List your SimplePod instances.
- List rentable market offers.
- List your private templates.
- Create Docker instances from a JSON payload or CLI flags.
- Delete instances by ID.
- No framework dependency required to run the CLI.
- PHP 8.3
ext-curlext-json- A SimplePod API key in
SIMPLEPOD_API_KEY
This client is aligned to the SimplePod REST endpoints used in the provided API spec:
GET /instances/listGET /instances/market/listGET /instances/templates/listPOST /instancesDELETE /instances/{id}
bin/ CLI entrypoint
examples/ Example API payloads
src/ PSR-4 application code
autoload.php Fallback autoloader for local execution without Composer install
composer.json Package metadata and PHP 8.3 requirement
phpcs.xml.dist PSR-12 coding standard config
export SIMPLEPOD_API_KEY=your-api-key
chmod +x bin/simplepod-clientIf you are using Composer with PHP 8.3 or newer:
composer installShow help:
bin/simplepod-client helpList your instances:
bin/simplepod-client instances:list
bin/simplepod-client instances:list --search=trainer
bin/simplepod-client instances:list --jsonList rentable Docker offers:
bin/simplepod-client market:list
bin/simplepod-client market:list --gpu-model="RTX 4090" --gpu-count=1 --price-per-gpu-max=1
bin/simplepod-client market:list --mode=vm --region="Europe"List your private templates:
bin/simplepod-client templates:list
bin/simplepod-client templates:list --search=ubuntuCreate an instance from the included payload:
bin/simplepod-client instances:create --payload=examples/create-instance.jsonCreate an instance directly from CLI flags:
bin/simplepod-client instances:create \
--market-id=1 \
--template-id=38 \
--gpu-count=1 \
--start-script='echo ready' \
--env=JUPYTER_TOKEN=replace-meDelete an instance:
bin/simplepod-client instances:delete --id=<instance-id>examples/create-instance.jsonmatches the SimplePodPOST /instancesrequest shape for Docker instances.- Authentication uses the
X-AUTH-TOKENheader expected by SimplePod. templates:listreads your private templates becauseinstances:createexpects aninstanceTemplateIRI such as/instances/templates/38.
MIT. See LICENSE.