EN | 中文

🚀 MTCode RemoteGPU

The user-side client for MTCode GPU Server. Run Python projects on authorized remote GPUs directly from VS Code or MTCode Studio — upload files, start execution, stream output, and download results from your editor.

🛡 Privacy — End-to-end encrypted. No MTCode infrastructure in your data path.
⚡ Simplicity — No public IP, domain, VPN, or port forwarding.
🚀 Performance — Direct peer-to-peer data path. No relay hop.

What Is MTCode RemoteGPU?

MTCode RemoteGPU is the VS Code extension for using MTCode GPU Server. It lets you select an authorized GPU server, upload a Python project, run it remotely, and stream results back to your editor — without SSH access or manual server setup.

GPU server access is by invitation only. If you have been invited, follow the link in the invitation email to create your user account, then sign in from the RemoteGPU extension.

The extension works in both VS Code and MTCode Studio. In MTCode Studio, the Python project configuration dialog and RemoteGPU extension share the same launch.json format, so you can configure a task locally and run the same task on a remote GPU when you need more compute power.

Built on the same core library used by the MTCode DirectLink platform, MTCode RemoteGPU can operate as a standalone extension. No separate MTCode Portal installation is required.

Watch RemoteGPU in Action

Watch the video below to see MTCode RemoteGPU in action — from logging in and selecting a GPU server, to uploading a project, launching execution, and streaming results back to your editor.

Click the preview to play the full demo

Getting Started

New to MTCode RemoteGPU? Watch the demo video above to see every step in action before diving in.

1

Install the Extension

Install MTCode RemoteGPU from the downloaded mtcode-remotegpu.vsix file (download here). Alternatively, use MTCode Studio where it is pre-installed.

2

Log In

Click the Login button in the sidebar title bar and sign in with your account. If you are the administrator, use your administrator account. If you don't have an account, click the registration link in the login dialog. Credentials are stored securely using VS Code's Secrets API.

3

Select a GPU Server

At the top of the panel, the "GPU servers" dropdown lists all available servers. Selecting a server automatically connects to it and displays the server's account name, computer name, and GPU information.

4

Upload & Run Online Execution

Load a project folder, select or configure a task, upload the project files, and click "Start Execution." Output streams back in real time to the VS Code Output terminal of the RemoteGPU extension. Note: if you log out, close VS Code / MTCode Studio, or lose your network connection, the execution will be stopped.

5

Offline Execution

Click "Submit Offline Job" to run the task on the GPU server independently. You can safely disconnect after submission. Output is saved to a *_output.log file in the project output directory. Open the "Project Output" tab and click "Refresh" to view all output files. Use Shift or Ctrl + left-click to select multiple folders and files, then right-click to download the selection.

The GPU Control Panel

The sidebar is divided into two resizable areas: the server area at the top and the project area below. A draggable separator lets you resize them.

Server Area

  • GPU servers button — refreshes the list of available servers
  • Server dropdown — select a server (shows account, computer, GPU model)
  • Server info button — displays detailed server specifications including CPU, RAM, GPU, and VRAM
  • Settings gear — opens Python interpreter management and About info
  • GPU Utilization — per-GPU usage percentages from the connected server
  • Disk Utilization — your used disk space vs. allocated quota

Project Area (3 Tabs)

  • Project Content — file tree with sync status, upload controls. Task configuration with script and argument specification. Server shared and user uploaded datasets are also displayed here.
  • Project Output — browse and download output files from the server
  • User Directory — browse all your files on the server, download or remove them

Above the tabs: project dropdown to switch between projects, "Fetch From Server" to list server-side projects, and "Load Project" to add a local folder.

Project Upload & Sync

The Project Content tab shows your project's file tree with real-time sync status indicators. Select files to upload, and the extension handles verification and transfer efficiently.

File Sync Status

  • ✓ synced — file on server matches local version
  • ↑ upload pending — local file changed, needs upload
  • ↑ not uploaded — new file not yet on server
  • ↓ update available — server version is newer
  • ↓ server only — file exists only on server
  • changed / new — local changes detected

Smart Upload

  • Batch verification — before uploading, the extension sends file metadata (paths, sizes, timestamps) to the server. Only files that are new or changed are transferred.
  • File watchers — the extension monitors your project for file changes (save, create, delete) in real time and marks affected files for upload
  • Unsaved file check — before upload, if any files have unsaved changes, a prompt offers "Save All and Continue," "Continue Anyway," or "Cancel"
  • Stop upload — uploads can be cancelled at any time with a priority stop message

Task Configuration & Execution

Below the file tree, the execution configuration area lets you set up what to run on the remote GPU.

Task Setup

  • Active Task dropdown — select from configured tasks, or click "New task" to create one
  • Script dropdown — populated from Python files in the project; select the entry point script
  • Arguments — command-line arguments for the script (e.g., --epochs 50 --batch-size 32)
  • Dataset Paths — reference shared server datasets using ${env:dataset-1}, ${env:dataset-2}, ${env:dataset-3} in your arguments
  • Select Interpreter — choose which Python interpreter on the server to use
  • Update launch.json — saves the task configuration to .vscode/launch.json

Execution Modes

  • Online execution — click "Start Execution" to run the script. Output streams back in real time to the VS Code Output channel. GPU utilization is tracked during the run.
  • Offline execution — click "Submit offline job" to queue the script on the server. Output is logged to a file on the server. You can disconnect and check results later.
  • Stop / Cancel — running scripts can be stopped with a priority message that bypasses the normal queue. The server sends SIGINT first for graceful shutdown before force-killing.
  • Job status — when an online or offline execution is ongoing, a spinning wheel keeps spinning. The server area displays the GPU usage in real time. When execution is finished or stopped, a pop-up notification informs you of the completion status.

Output & Results

After execution, switch to the Project Output or User Directory tab to browse and download results.

📂

Project Output

Shows the directory tree of your project's output folder on the server. Refresh to see new files. Select any folders and files to download to local computer.

📁

User Directory

Browse all files including datasets stored on the server under your account — across all projects. Select folders or files to download or remove from the server.

📥

Download or Delete

Select folders and files in the tree view (Shift+click for range, Ctrl+click to toggle), then click Download or Delete. Choose a local destination folder for downloads.

Dataset Management

Local & Server Datasets

  • Local and uploaded datasets — select dataset folders from your machine to upload alone or alongside your project. Each dataset shows a file count status indicating the number of files in both local and server copies.
  • Shared datasets — datasets shared by the GPU server administrator. Each dataset shows file count, folder count, and total size. Double-click on a shared dataset to browse file trees.

Using Datasets in Scripts

Reference dataset paths in your script arguments using environment variable syntax:

Arguments: --data ${env:dataset-1} --val ${env:dataset-2}

The extension resolves these to the actual server paths at execution time. Shared datasets from the administrator and your own uploaded datasets are both accessible.

Python Interpreter and Package Management

Use the Python Interpreter dialog to choose the server-side Python environment for your current task and manage user-installed packages without SSH or terminal access. Open it from the settings gear in the server area, or click Select Interpreter in the task configuration area.

Interpreter Selection

  • Available interpreters — view Python interpreters provided by the GPU server, including system Python, Conda environments, virtual environments, or other interpreters configured by the administrator.
  • Task-specific selection — choose an interpreter from the dropdown for the current active task. The selected interpreter is used when that task runs online or as an offline job.
  • Package visibility — when you select an interpreter, the package list updates to show both administrator-managed system packages and your own user-installed packages for that interpreter.

Package Management

  • System packages — installed and maintained by the GPU server administrator. Users can view them, but cannot modify or remove them.
  • User packages — installed into your private package environment for the selected interpreter, so you can customize dependencies without affecting other users. When a Python script runs, packages in private environment take precedence over system packages with the same name.
  • Install user packages — click Add Package and enter a package name with an optional version specifier, such as torch==2.1.0, to install it on the server.
  • Remove user packages — select one or more user-installed packages and remove them from your private environment.
Note: Package changes apply only to your user package environment for the selected interpreter. They do not change administrator-managed system packages and do not affect other users on the same GPU server.

Integration With MTCode Studio

MTCode RemoteGPU is included in MTCode Studio distribution. The Python project configuration dialog in MTCode Studio and the RemoteGPU extension share the same .vscode/launch.json format. Configure your Python task (script, arguments, dataset paths) in MTCode Studio's configuration dialog. Run task locally for quick testing, then switch to remote GPU execution for full training — same configuration, no changes needed.

× ×