Skip to main content
Glama
Minato-Aqukin

autodl

autodl-cli

非公式。 このプロジェクトはAutoDLとは提携、承認、またはスポンサー関係にありません。 「AutoDL」は、このツールが通信するプラットフォームを識別するためにのみ使用されています。

コマンドラインからAutoDLのGPUインスタンスを管理 — そして、あなたのコーディングエージェントにもそれをさせましょう。

AutoDLの公式オープンAPI上に構築されているため、開発者トークンは無期限に有効で、Webコンソールが再設計されても壊れません。

简体中文


なぜ

AIエージェントがタスクの途中でGPUボックスを必要とするとき、それを取得する方法がありません。AutoDLのインスタンスはWebコンソールをクリックして作成されるからです。これにより、エージェントには3つの入り口があり、すべて同じコアに支えられています:

エントリーポイント

対象

方法

CLI

人間

autodl create --gpu 4090 --ttl 2h

MCPサーバー

Claude Code、Cursor、Cline、…

autodl mcp over stdio

SDK

Nodeプログラム

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

すべてのコマンドは安定したスキーマと文書化された終了コードを持つ--jsonを話すため、エージェントは散文を解析せずに結果に基づいて分岐できます。

Related MCP server: AutoDL MCP Server

インストール

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

Node.js 22+が必要です。

ダッシュボード

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

トークンがまだないマシンでは、ログイン画面が開き、2つの選択肢が提供されます — トークンを設定するか、終了するか。トークンを貼り付けると、保存前にAPIに対して検証され、ダッシュボードに移動します。設定後、autodlは直接入ります。

インスタンスのライブテーブル:ステータス、GPU、リージョン、各インスタンスが電源オンになってからの時間とそのおおよそのコスト、および残りのTTL。キー:↑↓移動、Enter詳細、s開始、x停止、cSSHコマンドをクリップボードにコピー、Ctrl+D解放、gGPU在庫、n新規インスタンス、r更新、q終了。解放は単一キーではなくCtrl+Dにあります。インスタンスを完全に消去するためです。

ターミナルを埋め、ヘッダーにアカウントIDと残高を表示します。cでコピーすると、SSHコマンドのみがクリップボードに置かれます — ルートパスワードは決してコピーされません。どのプロセスでも読み取れるためです。クリップボードヘルパーが存在しない場合(SSHセッション、コンテナ)、OSC 52にフォールバックし、その旨を表示します。ターミナルが確認しないためです。

ターミナルの代替画面で実行されるため、既存のコンテンツの下にスクロールするのではなく、固定されたキャンバスを所有し、終了するとプロンプトとスクロールバックはそのまま復元されます。

これは、AutoDLが電源状態に基づいて課金するためです。高価な間違いは間違ったコマンドではなく、誰も停止を忘れたインスタンスです。これを開いたままにしておくと、それが見えるようになります。

2つの意図的な正直さの制約があります。レートは実行中のインスタンスのスナップショットからのみ知ることができるため、停止したインスタンスは経過時間と金額なしを表示します — 数字をでっち上げるよりは何も表示しない方がましです。また、レートがまだ読み込み中の間は、合計がその旨を表示し、静かに過小報告することはありません。

TUIはパイプ、CI、または--json下では決して実行されません:存在しないターミナルを乗っ取る代わりに、コード2と説明で終了します。対話型ターミナル外での裸のautodlは、以前とまったく同じようにヘルプを表示します。

セットアップ

公式APIには、本人確認済みのアカウント(個人または企業の実名認証)からの開発者トークンが必要です。AutoDLコンソール → 設定 → 開発者トークンから取得します。

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

トークンの優先順位:--token › AUTODL_TOKEN › ~/.config/autodl-cli/config.json。

クイックスタート

# 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

または、1つの動詞で全部を行います:

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

これにより、インスタンスを作成し、待機し、コードをアップロードし、コマンドの出力をストリーミングし、結果をダウンロードし、インスタンスの電源をオフにします — Ctrl-C時も含みます。

エージェントから使用する

Claude Code

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

Cursor / Cline / 任意のMCPクライアント

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

公開されるツール: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。さらにautodl://instancesリソース。

MCPのデフォルトはCLIよりも意図的に厳格です。誰も見ていないためです:2時間のTTLが適用され、より長い時間を要求しない限り、解放には明示的なconfirm: trueが必要で、パスワードは要求されない限り伏せ字で返されます。

シェル / CI

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

Gitプロジェクトのデプロイ

# 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はrunと1つの意図的な点で異なります:最後にインスタンスを停止し、解放しません。停止したインスタンスはディスクを保持するため、次のデプロイは既に構築した環境を再利用します。--on-finish releaseでオプトアウトできます。

コードは/root/autodl-tmp/<repo> — データディスクに配置されます。AutoDLのシステムディスクは固定30GBで、保存されたイメージにも含まれます。データディスクは別で、より高速で拡張可能です。知っておくべきトレードオフ:データディスクの内容はイメージを保存するときに含まれません。そのため、環境はシステムディスクに、コードはここに置いてください。

依存関係はこの順序で自動検出され、最初にヒットしたものが優先されます — environment.yml → requirements.txt → pyproject.toml → package-lock.json/package.json。--setup "<cmd>"で上書き、--no-setupでスキップできます。

リモートコマンドはログインシェルを通じて実行されます。AutoDLイメージはpython、pip、condaを/root/miniconda3/binに保持しており、これはログインプロファイルを介してのみPATHに到達します — プレーンな非対話型ssh host "pip install ..."は127で終了します。これはautodl execにも適用されるため、手動でautodl sshで入ったときと同じように動作します。

GitHubまたはHuggingFaceからのクローンは、AutoDLの学術プロキシ(source /etc/network_turbo)を自動的に有効にします。Giteeは国内向けでスキップされます。--no-accelで無効化できます。AutoDLはプロキシが「学術用であり、安定性は保証されない」と述べています。

プライベートリポジトリ:--git-token、または環境内のGIT_TOKEN / GITHUB_TOKEN。トークンはログ行、エラーメッセージ、--json出力、またはチェックアウトの保存されたgitリモートには決して到達しません。

GPU在庫の確認

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

この表を注意深く読んでください — 数字は見た目ほど権威的ではありません。 これらはAutoDLの弾力性デプロイメント在庫エンドポイントからのもので、存在する唯一の容量APIであり、Proインスタンスの可用性を追跡しません。2026-08-23に測定:westDC3で140台のアイドルRTX 4090Dを報告しましたが、そこでのProインスタンス作成は*「在庫なし」*と応答しました — そしてリージョン制約なしの同一リクエストは成功し、beijingDC2に着地しました。

2つの結果がツールに組み込まれています:

  • インスタンスの作成は、それ自体でリージョンを絞り込むことはありません。 data_center_listを省略すると、AutoDLに最も広い選択肢が与えられ、経験的に最も成功します。

  • Proインスタンスを受け入れるリージョンは2つだけです:westDC3(西北B区)とbeijingDC2(北京B区)。在庫表の他の9つは弾力性デプロイメント専用です。--regionに渡すと、AutoDLの不透明な「リクエストパラメータエラー」で後で失敗する代わりに、事前に拒否されます。可建Pro列はどちらかを示します。

コストガード

AutoDLは純粋に電源状態に基づいて課金します。 1時間前にトレーニングを終了したインスタンスは、100%使用率のインスタンスとまったく同じコストがかかります。これは、無人エージェントが実際のお金を無駄にする最も簡単な方法であるため、保護はオプションではなく組み込まれています。

3つのレイヤー:

  1. インスタンス内。 --ttl 2hは、ボックス自体にsleep && shutdownを切り離して武装させます。このCLIが強制終了されたり、ラップトップがスリープしたり、ネットワークが切断されたりしても発火します。これは実際にあなたの財布を保護するレイヤーです。

  2. ローカル台帳。 すべてのコマンドは、TTLを過ぎたインスタンスを日和見的にスイープして電源をオフにします。レイヤー1ができないケースをキャッチします — 静かに失敗したstart_command、または新しいタイマーなしの手動電源オン。

  3. アイドル検出。 autodl guard idle <id>はSSH経由でGPU使用率をサンプリングし、持続的な低迷後にシャットダウンします。

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

残高ゲートは、ウォレットが--min-balance(デフォルト¥5)未満の場合、インスタンスの作成を拒否します。AutoDLは残高がゼロになった瞬間にインスタンスを回収しません — データを保護するために保持します — そのため、低残高はクリーンな失敗ではなく、スタックした使用不可能なインスタンスになります。

エージェント契約

マイナーバージョン間で安定。破壊的な変更にはメジャーが必要です。

--jsonモードのstdoutは純粋なJSONです。 進行状況、プロンプト、警告はすべてstderrに送られるため、autodl ... --json | jqは常に安全です。

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

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

終了

意味

エラーコード

0

成功

—

1

一般的な失敗

GENERIC、API_ERROR、NETWORK

2

不正な引数

USAGE

3

トークンが欠落または無効

AUTH_MISSING、AUTH_INVALID

4

リソースが見つからない

NOT_FOUND

5

予算不足 / ガードでブロック

INSUFFICIENT_BALANCE、GUARD_BLOCKED

6

GPU在庫なし

NO_STOCK

7

タイムアウト

TIMEOUT

8

SSH失敗

SSH_FAILED

autodl execとautodl runは代わりにリモートコマンドの終了コードで終了するため、autodl exec box "make test" && deployは期待どおりに動作します。

コマンド

コマンド

機能

login / logout / whoami

トークン管理

account

残高、バウチャー、生涯支出

ls [--status]

インスタンス一覧

info <id> [--show-password]

詳細、ライブSSH情報、リソース使用状況

create --gpu <spec>

従量課金のProインスタンスを作成

start / stop / rm <id>

電源オン / オフ / 解放

ssh <id>

対話型ログイン(追加フラグはsshに渡されます)

exec <id> <cmd…>

コマンドを実行、出力をストリーミング、終了コードを伝播

push / pull <id>

SFTP転送、再帰的、無視ファイルを尊重

run <cmd…>

作成 → 同期 → 実行 → 取得 → 電源オフ

deploy <repo>

作成 → クローン → 依存関係インストール → 開始 → データを保持して停止

stock [--gpu] [--region]

リージョンごとのライブGPU在庫

guard ttl|cancel|idle|list|sweep

コストガード

image save <id> <name> / images

プライベートイメージ管理

gpus / regions

カタログ参照

tui

対話型ダッシュボード(裸のautodlでも入ります)

mcp

MCPサーバーとして実行

グローバルフラグ:--json、--yes、--token、--base-url、--lang zh|en、--verbose、--no-color、--no-sweep。

push と pull は .git、node_modules、__pycache__、.venv などをスキップし、次に .autodlignore があればそれを適用し、なければ .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);

パッケージルートから再エクスポートされるものはすべて公開APIです。価格は元(number)として届き、タイムスタンプはISO文字列、Goの sql.NullTime の形は string | null にフラット化されます。

公式APIではできないこと

これらはAutoDLの制限であり、このツールの制限ではありません。事前に知っておくと混乱が大幅に減ります:

  • 従量課金のみ。 日次・週次・月次のプランはなく、更新エンドポイントもありません。

  • Proインスタンスのみ。 autodl gpus の7つのスペック — より安価な標準インスタンスはオープンAPIからは利用できません。

  • Proの在庫照会は利用不可。 唯一の容量エンドポイントは弾力性デプロイの在庫を報告しますが、これはProの空き状況と明らかに一致しません(上記参照)。作成は実質的に盲目的な試行であり、容量がない場合は終了コード6となり、別のスペックを試すことになります。

  • Proインスタンスを受け入れるリージョンは2つだけ:westDC3 と beijingDC2。

  • CPUのみでの起動はまだ不可。 AutoDL自身の表現は意図的に暫定的です:payload は "gpu:有卡开机, 暂不支持API以无卡模式开机" と文書化されています — まだサポートされていないのであって、「決して」ではありません。2026-08-24に実機で確認済み:cpu、no_gpu、nogpu、cpu_only、cpu-only、none はすべて ServerError | 不支持的启动模式 を返し、空の payload は受け入れられますがGPUが接続された状態で起動します(start_mode: "gpu")。当面はWebコンソールで ¥0.1/hr 無卡模式 を使用してください。このツールはAPIが対応した時点で公開します。

  • 本人確認が必要 です。APIが応答する前に本人確認が必須です。

  • 存在しない操作: 名前変更、予約シャットダウン、リサイズ、マイグレーション、システムリセット。

  • SSH認証情報は電源サイクルのたびに変わる可能性があります — ポートとrootパスワードの両方。AutoDLはインスタンスを別のマシンに再スケジュールすることがあります。常に起こるわけではありません(実際の停止/起動で両方が同一に保たれるのを観測済み)。だからこそキャッシュは危険です:古い値が十分な頻度で機能するため、機能しなくなるまでバグが隠れてしまいます。このツールは接続のたびに再読み込みするので、考える必要はありません。

  • running はsshdが準備完了であることを意味しません。 作成直後のインスタンスは接続を受け付ける前に running を報告します。ここでの接続試行は連続して行うのではなく、間隔を空けて行われます。

  • 非対話型SSHセッションにはPATHがほとんどありません。 python、pip、condaはありません — これらは /root/miniconda3/bin にあり、ログインプロファイルを通じてのみ利用可能になります。そのため、ここでのすべてのリモートコマンドは bash -lc の下で実行されます。

  • リリースにはシャットダウンの完了が必要 であり、すでに停止中のインスタンスに対する2回目の power_off はエラーです。どちらも内部的に処理されます。

知っておく価値があること:15日間連続でシャットダウンされたままのインスタンスはリリースされ、データは消去されます。

2026-08-23にライブAPIで検証済み:4090Dでの完全なライフサイクル(作成 → SSH実行 → SFTP往復 → 停止 → 起動 → 再実行 → リリース)、合計コスト ¥0.10。

GPUスペック、リージョン、ベースイメージのテーブルは、APIがカタログエンドポイントを公開していないため組み込まれています。AutoDLがこれらを変更した場合は、issueを開いてください。

開発

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

実際のエンドツーエンドテストは実際のGPUをレンタルし、実際の費用がかかるため、オプトインです:

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

失敗した場合でも、常に afterAll でインスタンスの電源をオフにします。リリースも行うには AUTODL_E2E_RELEASE=1 を追加します。

コントリビューション

IssueとPRを歓迎します — CONTRIBUTING.md を参照してください。特に価値があるもの:静的カタログの修正、およびまだマッピングしていない実際のAPIエラーコード(AutoDLはこれらを文書化していません)。

ライセンス

MIT

Related MCP Connectors

Related MCP Servers

  • 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.
    3
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for renting real GPUs from the terminal. Enables browsing, renting, chatting, managing, and pooling GPU instances with per-second billing, designed for AI agents.
    244 npm
    1
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables MCP-capable agents to manage Meshive GPU Cloud resources, including account, workspaces, pods, storage, GPUs, templates, serverless deployments, tasks, assets, machines, and billing history.
    Apache 2.0