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 |
|
MCP-Server | Claude Code, Cursor, Cline, … |
|
SDK | Node-Programme |
|
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 installingErfordert Node.js 22+.
Das Dashboard
autodl tui # or just `autodl` in an interactive terminalAuf 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 spendToken-Priorität: --token › AUTODL_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 dataOder alles in einem einzigen Befehl erledigen:
autodl run "python train.py" \
--gpu 4090 --sync ./ --pull /root/autodl-cli/checkpoints --ttl 4hDas 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 mcpCursor / 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.yml → requirements.txt → pyproject.toml → package-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, everywhereLesen 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_listgibt AutoDL die breiteste Auswahl, was empirisch am häufigsten gelingt.Nur zwei Regionen akzeptieren überhaupt eine Pro-Instanz:
westDC3(West-B-Zone) undbeijingDC2(Peking-B-Zone). Die anderen neun in der Bestandstabelle sind nur für Elastic-Deployment; eine davon an--regionzu übergeben wird sofort abgelehnt, anstatt später mit AutoDLs undurchsichtigem „Parameterfehler" zu scheitern. Die SpaltePro möglichmarkiert, 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:
Innerhalb der Instanz.
--ttl 2haktiviert ein abgekoppeltessleep && shutdownauf der Box selbst überstart_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.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.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 1mEin 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 |
|
2 | Ungültige Argumente |
|
3 | Token fehlt oder ungültig |
|
4 | Ressource nicht gefunden |
|
5 | Budget überschritten / durch Schutz blockiert |
|
6 | Kein GPU-Bestand |
|
7 | Zeitüberschreitung |
|
8 | SSH-Fehler |
|
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 |
| Token-Verwaltung |
| Guthaben, Gutscheine, Lebenszeitausgaben |
| Instanzen auflisten |
| Details, Live-SSH-Informationen, Ressourcennutzung |
| Erstellt eine Pay-as-you-go-Pro-Instanz |
| Einschalten / Ausschalten / Freigeben |
| Interaktiver Login (zusätzliche Flags werden an |
| Befehl ausführen, Ausgabe streamen, Exit-Code weitergeben |
| SFTP-Übertragung, rekursiv, respektiert Ignore-Dateien |
| Erstellen → Synchronisieren → Ausführen → Abrufen → Ausschalten |
| Erstellen → Klonen → Abhängigkeiten installieren → Starten → Stoppen, Daten behalten |
| Live-GPU-Bestand pro Region |
| Kostenschutz |
| Verwaltung privater Images |
| Katalog-Nachschlagewerk |
| Interaktives Dashboard (auch durch ein nacktes |
| 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:
westDC3undbeijingDC2.Noch kein reiner CPU-Start. AutoDLs eigene Formulierung ist bewusst vorläufig:
payloadist 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-onlyundnonegeben alleServerError | 不支持的启动模式zurück, und ein leerespayloadwird 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.
runningbedeutet nicht, dass sshd bereit ist. Eine frisch erstellte Instanz meldetrunning, 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/binund kommen nur über das Login-Profil. Aus diesem Grund läuft hier jeder Remote-Befehl unterbash -lc.Die Freigabe erfordert ein abgeschlossenes Herunterfahren, und ein zweites
power_offauf 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 typecheckEchte 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:e2eSie 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
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityCmaintenanceManages AutoDL GPU cloud instances, including lifecycle management, SSH operations, file transfer, and GPU monitoring.1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that converts SSH operations on training servers into AI-callable tools for GPU monitoring, job submission, file transfer, and more.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables management of AutoDL GPU resources including instance lifecycle, balance queries, elastic deployments, and notifications through typed MCP tools.2MIT
- FlicenseAqualityBmaintenanceMCP 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.201
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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