Skip to main content
Glama
Minato-Aqukin

autodl

autodl-cli

Inoffiziell. Dieses Projekt ist nicht mit AutoDL verbunden, wird von AutoDL nicht unterstützt oder gesponsert. „AutoDL" wird nur verwendet, um die Plattform zu identifizieren, mit der dieses Tool kommuniziert.

Verwalten Sie AutoDL-GPU-Instanzen über die Befehlszeile – und lassen Sie auch Ihren Coding-Agenten dies tun.

Basiert auf AutoDLs offizieller offener API, sodass das Entwickler-Token unbegrenzt gültig bleibt und nichts kaputtgeht, wenn die Web-Konsole neu gestaltet wird.

简体中文


Warum

Wenn ein KI-Agent mitten in einer Aufgabe eine GPU-Box benötigt, hat er keine Möglichkeit, eine zu bekommen: AutoDL-Instanzen werden durch Klicken in einer Web-Konsole erstellt. Das gibt dem Agenten drei Zugangswege, die alle auf demselben Kern basieren:

Einstiegspunkt

Für

Wie

CLI

Menschen

autodl create --gpu 4090 --ttl 2h

MCP-Server

Claude Code, Cursor, Cline, …

autodl mcp über stdio

SDK

Node-Programme

import { createInstance } from "@minatoaqukin/autodl-cli"

Jeder Befehl spricht --json mit einem stabilen Schema und einem dokumentierten Exit-Code, sodass ein Agent anhand des Ergebnisses verzweigen kann, ohne Prosa zu parsen.

Related MCP server: lab-ops

Installation

npm install -g @minatoaqukin/autodl-cli   # then: autodl <command>
npx @minatoaqukin/autodl-cli <command>    # or without installing

Erfordert Node.js 22+.

Das Dashboard

autodl tui     # or just `autodl` in an interactive terminal

Auf einem Rechner ohne Token öffnet es sich mit einem Anmeldebildschirm, der zwei Optionen bietet – Token konfigurieren oder beenden. Fügen Sie das Token ein, es wird vor dem Speichern gegen die API verifiziert, und Sie landen auf dem Dashboard. Nach der Konfiguration geht autodl direkt hinein.

Eine Live-Tabelle Ihrer Instanzen: Status, GPU, Region, wie lange jede eingeschaltet war und was das ungefähr gekostet hat, sowie wie viel TTL übrig ist. Tasten: ↑↓ bewegen, Enter Details, s starten, x stoppen, c SSH-Befehl in die Zwischenablage kopieren, Ctrl+D freigeben, g GPU-Bestand, n neue Instanz, r aktualisieren, q beenden. Freigabe liegt auf Ctrl+D statt auf einer einzelnen Taste, weil es die Instanz dauerhaft löscht.

Es füllt das Terminal und zeigt Ihre Kontonummer und Ihr Guthaben im Kopfbereich. Kopieren mit c legt nur den SSH-Befehl in die Zwischenablage – niemals das Root-Passwort, das jeder Prozess dann lesen könnte. Wo kein Zwischenablage-Helfer existiert (SSH-Sitzungen, Container), fällt es auf OSC 52 zurück und sagt dies, da das Terminal nie bestätigt.

Es läuft auf dem alternativen Bildschirm des Terminals, sodass es eine feste Leinwand besitzt, anstatt unter dem bereits Vorhandenen zu scrollen, und beim Beenden werden Ihre Eingabeaufforderung und der Scrollback unberührt wiederhergestellt.

Es existiert, weil AutoDL nach Stromzustand abrechnet: Der teure Fehler ist nicht ein falscher Befehl, sondern eine Instanz, die niemand zu stoppen vergisst. Dies offen zu lassen, macht das sichtbar.

Zwei bewusste Ehrlichkeitsbeschränkungen. Ein Satz ist nur aus dem Snapshot einer laufenden Instanz bekannt, daher zeigt eine gestoppte Instanz verstrichene Zeit und kein Geld – eine Zahl zu erfinden wäre schlimmer als keine zu zeigen. Und während ein Satz noch lädt, sagt die Summe dies, anstatt still zu unterberichten.

Die TUI läuft nie in einer Pipe, in CI oder unter --json: Sie beendet sich mit Code 2 und einer Erklärung, anstatt ein Terminal zu übernehmen, das nicht da ist. Ein nacktes autodl außerhalb eines interaktiven Terminals gibt weiterhin wie zuvor die Hilfe aus.

Einrichtung

Die offizielle API benötigt ein Entwickler-Token von einem identitätsverifizierten Konto (persönliche oder Unternehmens-Identitätsprüfung). Holen Sie es aus der AutoDL-Konsole → Einstellungen → Entwickler-Token.

autodl login              # verifies the token, then saves it with 0600 permissions
autodl account            # balance, vouchers, lifetime spend

Token-Priorität: --tokenAUTODL_TOKEN~/.config/autodl-cli/config.json.

Schnellstart

# Rent a GPU that shuts itself off after two hours, and wait until it's ready
autodl create --gpu 4090 --ttl 2h --wait

# Work with it
autodl ls
autodl ssh pro-76419909953e                    # interactive login
autodl exec pro-76419909953e "nvidia-smi"      # one-off command, remote exit code
autodl push pro-76419909953e ./src /root/work  # SFTP upload
autodl pull pro-76419909953e /root/work/out .  # SFTP download

# Stop paying
autodl stop pro-76419909953e
autodl rm pro-76419909953e --yes               # irreversible: wipes all data

Oder alles in einem einzigen Befehl erledigen:

autodl run "python train.py" \
  --gpu 4090 --sync ./ --pull /root/autodl-cli/checkpoints --ttl 4h

Das erstellt eine Instanz, wartet auf sie, lädt Ihren Code hoch, streamt die Ausgabe des Befehls, lädt die Ergebnisse herunter und schaltet die Instanz ab – auch bei Strg-C.

Verwendung durch einen Agenten

Claude Code

claude mcp add autodl -- npx -y @minatoaqukin/autodl-cli mcp

Cursor / Cline / jeder MCP-Client

{
  "mcpServers": {
    "autodl": {
      "command": "npx",
      "args": ["-y", "@minatoaqukin/autodl-cli", "mcp"],
      "env": { "AUTODL_TOKEN": "your-token" }
    }
  }
}

Verfügbare Tools: autodl_account_info, autodl_list_instances, autodl_get_instance, autodl_create_instance, autodl_power_on, autodl_power_off, autodl_release_instance, autodl_exec, autodl_upload, autodl_download, autodl_run, autodl_list_gpu_specs, autodl_list_images, autodl_save_image, autodl_sweep_expired. Plus eine autodl://instances-Ressource.

MCP-Standardeinstellungen sind bewusst strenger als die der CLI, weil niemand zusieht: Eine 2-Stunden-TTL wird angewendet, sofern Sie nicht länger verlangen, das Freigeben erfordert ein explizites confirm: true, und Passwörter werden geschwärzt zurückgegeben, sofern nicht angefordert.

Shell / CI

autodl ls --json | jq -r '.data[] | select(.status=="running") | .uuid'

Bereitstellen eines Git-Projekts

# Rent a box, clone, auto-install dependencies, run it, then stop the instance
autodl deploy owner/repo --gpu 4090 --start "python train.py" --ttl 4h

# Long-running service: background it and keep the instance up
autodl deploy owner/repo --gpu 4090 --start "python app.py" --detach

# Come back later — powers the same box on and `git pull`s, no rebuild
autodl deploy owner/repo --instance pro-76419909953e --start "python train.py"

deploy unterscheidet sich von run in einer bewussten Weise: Es stoppt die Instanz am Ende, anstatt sie freizugeben. Eine gestoppte Instanz behält ihre Datenträger, sodass das nächste Deployment die bereits erstellte Umgebung wiederverwendet. --on-finish release optiert ab.

Code landet in /root/autodl-tmp/<repo> – dem Datenträger. AutoDLs Systemdatenträger ist eine feste 30-GB-Partition, die auch in jedes gespeicherte Image gepackt wird; der Datenträger ist separat, schneller und erweiterbar. Der Wissenswert-Kompromiss: Inhalte des Datenträgers werden beim Speichern eines Images nicht einbezogen, also legen Sie die Umgebung auf den Systemdatenträger und den Code hierher.

Abhängigkeiten werden in dieser Reihenfolge automatisch erkannt, der erste Treffer gewinnt – environment.ymlrequirements.txtpyproject.tomlpackage-lock.json/package.json. Überschreiben mit --setup "<cmd>" oder überspringen mit --no-setup.

Remote-Befehle laufen über eine Login-Shell. AutoDL-Images halten python, pip und conda in /root/miniconda3/bin, das nur über das Login-Profil in den PATH gelangt – ein einfaches nicht-interaktives ssh host "pip install ..." endet mit 127. Dies gilt auch für autodl exec, sodass es sich so verhält, wie wenn Sie manuell per autodl ssh einsteigen.

Das Klonen von GitHub oder HuggingFace aktiviert automatisch AutoDLs akademischen Proxy (source /etc/network_turbo). Gitee ist inländisch und überspringt ihn. --no-accel deaktiviert ihn. AutoDL weist darauf hin, dass der Proxy „für akademische Zwecke, ohne Stabilitätsgarantie" ist.

Private Repos: --git-token oder GIT_TOKEN / GITHUB_TOKEN in der Umgebung. Das Token gelangt nie in eine Logzeile, eine Fehlermeldung, --json-Ausgabe oder das gespeicherte Git-Remote des Checkouts.

GPU-Bestand prüfen

autodl stock --gpu 4090        # where are the free cards
autodl stock                   # everything, everywhere

Lesen Sie diese Tabelle sorgfältig – die Zahlen sind weniger autoritativ, als sie aussehen. Sie stammen vom Elastic-Deployment-Bestandsendpunkt von AutoDL, der einzigen Kapazitäts-API, die existiert, und sie verfolgt keine Pro-Instanzverfügbarkeit. Gemessen am 2026-08-23: Sie meldete 140 freie RTX 4090D in westDC3, während das Erstellen einer Pro-Instanz dort mit „kein Bestand" antwortete – und die identische Anfrage ohne Regionsbeschränkung erfolgreich war und in beijingDC2 landete.

Zwei Konsequenzen, beide im Tool verankert:

  • Das Erstellen einer Instanz schränkt Regionen nie von selbst ein. Das Weglassen von data_center_list gibt AutoDL die breiteste Auswahl, was empirisch am häufigsten gelingt.

  • Nur zwei Regionen akzeptieren überhaupt eine Pro-Instanz: westDC3 (West-B-Zone) und beijingDC2 (Peking-B-Zone). Die anderen neun in der Bestandstabelle sind nur für Elastic-Deployment; eine davon an --region zu übergeben wird sofort abgelehnt, anstatt später mit AutoDLs undurchsichtigem „Parameterfehler" zu scheitern. Die Spalte Pro möglich markiert, welche welche ist.

Der Kostenschutz

AutoDL rechnet rein nach Stromzustand ab. Eine Instanz, die vor einer Stunde das Training abgeschlossen hat, kostet genauso viel wie eine bei 100 % Auslastung. Dies ist der einfachste Weg für einen unbeaufsichtigten Agenten, echtes Geld zu verschwenden, daher ist der Schutz eingebaut und nicht optional.

Drei Ebenen:

  1. Innerhalb der Instanz. --ttl 2h aktiviert ein abgekoppeltes sleep && shutdown auf der Box selbst über start_command. Es feuert auch, wenn diese CLI beendet wird, Ihr Laptop schläft oder das Netzwerk ausfällt. Dies ist die Ebene, die tatsächlich Ihre Brieftasche schützt.

  2. Ein lokales Hauptbuch. Jeder Befehl räumt opportunistisch Instanzen ab, die ihre TTL überschritten haben, und schaltet sie aus. Fängt die Fälle ab, die Ebene 1 nicht kann – ein start_command, das still fehlschlug, oder ein manuelles Einschalten ohne neuen Timer.

  3. Leerlauferkennung. autodl guard idle <id> sampelt die GPU-Auslastung über SSH und fährt nach einer anhaltenden Flaute herunter.

autodl guard ttl pro-xxx 2h     # arm/re-arm on a running instance
autodl guard cancel pro-xxx     # disarm
autodl guard list               # what this machine is tracking
autodl guard sweep              # reclaim everything past its TTL now
autodl guard idle pro-xxx --threshold 5 --samples 6 --interval 1m

Ein Guthaben-Gate weigert sich auch, eine Instanz zu erstellen, wenn Ihr Guthaben unter --min-balance (Standard ¥5) liegt. AutoDL holt Instanzen nicht in dem Moment zurück, in dem das Guthaben null erreicht – es behält sie, um Ihre Daten zu schützen –, sodass ein niedriges Guthaben zu einer festgefahrenen, unbrauchbaren Instanz wird, anstatt zu einem sauberen Fehler.

Der Agentenvertrag

Stabil über Nebenversionen. Nicht abwärtskompatible Änderungen erfordern eine Hauptversion.

stdout im --json-Modus ist reines JSON. Fortschritt, Eingabeaufforderungen und Warnungen gehen alle nach stderr, sodass autodl ... --json | jq immer sicher ist.

// success
{ "ok": true, "data": { /* ... */ } }

// failure
{ "ok": false, "error": { "code": "NO_STOCK", "message": "…", "hint": "…", "requestId": "…" } }

Exit

Bedeutung

Fehlercodes

0

Erfolg

1

Allgemeiner Fehler

GENERIC, API_ERROR, NETWORK

2

Ungültige Argumente

USAGE

3

Token fehlt oder ungültig

AUTH_MISSING, AUTH_INVALID

4

Ressource nicht gefunden

NOT_FOUND

5

Budget überschritten / durch Schutz blockiert

INSUFFICIENT_BALANCE, GUARD_BLOCKED

6

Kein GPU-Bestand

NO_STOCK

7

Zeitüberschreitung

TIMEOUT

8

SSH-Fehler

SSH_FAILED

autodl exec und autodl run beenden sich stattdessen mit dem Exit-Code des Remote-Befehls, sodass autodl exec box "make test" && deploy sich so verhält, wie Sie es erwarten.

Befehle

Befehl

Was er tut

login / logout / whoami

Token-Verwaltung

account

Guthaben, Gutscheine, Lebenszeitausgaben

ls [--status]

Instanzen auflisten

info <id> [--show-password]

Details, Live-SSH-Informationen, Ressourcennutzung

create --gpu <spec>

Erstellt eine Pay-as-you-go-Pro-Instanz

start / stop / rm <id>

Einschalten / Ausschalten / Freigeben

ssh <id>

Interaktiver Login (zusätzliche Flags werden an ssh durchgereicht)

exec <id> <cmd…>

Befehl ausführen, Ausgabe streamen, Exit-Code weitergeben

push / pull <id>

SFTP-Übertragung, rekursiv, respektiert Ignore-Dateien

run <cmd…>

Erstellen → Synchronisieren → Ausführen → Abrufen → Ausschalten

deploy <repo>

Erstellen → Klonen → Abhängigkeiten installieren → Starten → Stoppen, Daten behalten

stock [--gpu] [--region]

Live-GPU-Bestand pro Region

guard ttl|cancel|idle|list|sweep

Kostenschutz

image save <id> <name> / images

Verwaltung privater Images

gpus / regions

Katalog-Nachschlagewerk

tui

Interaktives Dashboard (auch durch ein nacktes autodl betreten)

mcp

Als MCP-Server ausführen

Globale Flags: --json, --yes, --token, --base-url, --lang zh|en, --verbose, --no-color, --no-sweep.

push und pull überspringen .git, node_modules, __pycache__, .venv und ähnliche, wenden dann .autodlignore an, falls vorhanden, andernfalls .gitignore.

SDK

import {
  AutoDLClient,
  createInstance,
  execCommand,
  powerOffInstance,
  waitForRunning,
} from "@minatoaqukin/autodl-cli";

const client = new AutoDLClient({ token: process.env.AUTODL_TOKEN! });

const uuid = await createInstance(client, {
  gpuSpec: "v-48g",
  gpuNum: 1,
  imageUuid: "base-image-l2t43iu6uk",
  cudaFrom: 118,
});

await waitForRunning(client, uuid);
const { stdout } = await execCommand(client, uuid, "nvidia-smi");
console.log(stdout);
await powerOffInstance(client, uuid);

Alles, was aus dem Paketstamm re-exportiert wird, ist öffentliche API. Preise kommen als Yuan (number), Zeitstempel als ISO-Strings, und die sql.NullTime-Form von Go wird zu string | null abgeflacht.

Was die offizielle API nicht kann

Das sind die Grenzen von AutoDL, nicht die dieses Tools. Wenn man sie im Voraus kennt, spart das viel Verwirrung:

  • Nur Pay-as-you-go. Keine Tages-/Wochen-/Monatspläne und keinen Verlängerungs-Endpunkt.

  • Nur Pro-Instanzen. Die sieben Spezifikationen in autodl gpus – die günstigeren Standard-Instanzen sind über die offene API nicht erreichbar.

  • Keine brauchbare Bestandsabfrage für Pro. Der eine Kapazitäts-Endpunkt meldet Bestand für elastische Bereitstellung, der nachweislich nicht mit der Pro-Verfügbarkeit übereinstimmt (siehe oben). Die Erstellung ist praktisch ein Blindversuch; keine Kapazität bedeutet Exit-Code 6 und eine andere Spezifikation zum Ausprobieren.

  • Nur zwei Regionen akzeptieren eine Pro-Instanz: westDC3 und beijingDC2.

  • Noch kein reiner CPU-Start. AutoDLs eigene Formulierung ist bewusst vorläufig: payload ist dokumentiert als "gpu:有卡开机, 暂不支持API以无卡模式开机"noch nicht unterstützt, nicht nie. Bestätigt auf einer Live-Instanz am 2026-08-24: cpu, no_gpu, nogpu, cpu_only, cpu-only und none geben alle ServerError | 不支持的启动模式 zurück, und ein leeres payload wird akzeptiert, startet aber mit angeschlossener GPU (start_mode: "gpu"). Verwenden Sie in der Zwischenzeit die Web-Konsole für den ¥0.1/hr 无卡模式; dieses Tool wird es bereitstellen, sobald die API es tut.

  • Identitätsprüfung erforderlich, bevor die API überhaupt antwortet.

  • Fehlende Operationen: Umbenennen, geplantes Herunterfahren, Größenänderung, Migration, System-Reset.

  • SSH-Anmeldedaten können sich bei jedem Stromzyklus ändern – Port und Root-Passwort. AutoDL kann die Instanz auf eine andere Maschine umplanen. Das passiert nicht immer (bei einem echten Stopp/Start wurde beobachtet, dass beide identisch blieben), genau das macht Caching gefährlich: Ein veralteter Wert funktioniert oft genug, um den Fehler zu verbergen, bis er es nicht mehr tut. Dieses Tool liest sie bei jeder Verbindung neu, sodass Sie nie darüber nachdenken müssen.

  • running bedeutet nicht, dass sshd bereit ist. Eine frisch erstellte Instanz meldet running, bevor sie Verbindungen akzeptiert. Verbindungsversuche werden hier zeitlich verteilt und nicht direkt hintereinander ausgeführt.

  • Eine nicht-interaktive SSH-Sitzung hat fast kein PATH. Kein python, pip oder conda – sie liegen in /root/miniconda3/bin und kommen nur über das Login-Profil. Aus diesem Grund läuft hier jeder Remote-Befehl unter bash -lc.

  • Die Freigabe erfordert ein abgeschlossenes Herunterfahren, und ein zweites power_off auf einer Instanz, die bereits stoppt, ist ein Fehler. Beides wird intern behandelt.

Auch wissenswert: Eine Instanz, die 15 aufeinanderfolgende Tage heruntergefahren bleibt, wird freigegeben und ihre Daten werden gelöscht.

Verifiziert gegen die Live-API am 2026-08-23: vollständiger Lebenszyklus (Erstellen → SSH-Ausführung → SFTP-Roundtrip → Stopp → Start → erneute Ausführung → Freigabe) auf einer 4090D, Gesamtkosten ¥0.10.

Die Tabellen für GPU-Spezifikation, Region und Basis-Image sind fest eingebaut, weil die API keinen Katalog-Endpunkt bereitstellt. Wenn AutoDL sie ändert, eröffnen Sie bitte ein Issue.

Entwicklung

npm install
npm run build
npm test            # 325 tests, no network access, no cost
npm run lint
npm run typecheck

Echte End-to-End-Tests mieten eine echte GPU und kosten echtes Geld, daher sind sie optional:

AUTODL_E2E=1 AUTODL_TOKEN=<token> npm run test:e2e

Sie fahren die Instanz immer in einem afterAll herunter, auch bei Fehlern. Fügen Sie AUTODL_E2E_RELEASE=1 hinzu, um sie ebenfalls freizugeben.

Mitwirken

Issues und PRs sind willkommen – siehe CONTRIBUTING.md. Besonders wertvoll: Korrekturen am statischen Katalog und echte API-Fehlercodes, die wir noch nicht zugeordnet haben (AutoDL dokumentiert sie nicht).

Lizenz

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that converts SSH operations on training servers into AI-callable tools for GPU monitoring, job submission, file transfer, and more.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables management of AutoDL GPU resources including instance lifecycle, balance queries, elastic deployments, and notifications through typed MCP tools.
    2
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    MCP server that wraps the Vast.ai REST API to enable LLM agents to search GPU marketplace, rent machines, manage instance lifecycle, run commands, and inspect billing.
    20
    1

View all related MCP servers

Related MCP Connectors

  • Massed Compute MCP — GPU inventory, VM lifecycle, billing, SSH keys, and setup recipes.

  • Provision and manage a VPS for AI agents over MCP: register, order, get root, control the server.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Minato-Aqukin/AutoDL-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server