vm-deploy

Deploys Python projects to Yandex Cloud virtual machines over SSH with uv environments.

2|Updated Aug 3, 2026
One-click install
npx skills add https://github.com/yandex-ai-studio/teen-museum-residence-2026 --skill vm-deploy-yandex-ai-studio
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vm-deploy
Source: https://github.com/yandex-ai-studio/teen-museum-residence-2026/tree/main/skills/vm-deploy
Command: npx skills add https://github.com/yandex-ai-studio/teen-museum-residence-2026 --skill vm-deploy-yandex-ai-studio

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Deploying a Python project (Telegram bot, web service, or any uv-based app) to a remote Yandex Cloud VM involves many error-prone manual steps: fixing SSH key permissions, installing uv, copying files without leaking secrets, creating the environment, and keeping the app running. This Skill automates the entire workflow end to end. ## Core Features & Use Cases - Automated VM provisioning: Reads connection details from vm.yml, fixes SSH key permissions on Windows (icacls) or Unix (chmod 600), verifies connectivity, and installs uv on the VM. - Safe project transfer: Copies the project to ~/projects/<name> via scp, then removes .venv, .git, vm.yml, and private keys from the remote copy while preserving .env. - Lifecycle scripts: Generates deploy.sh on the VM plus local start/stop/status wrappers (.bat or .sh) so the app can be managed with one command, including re-deploy updates. - Use Case: You built a Telegram polling bot locally and want it running 24/7 on a cloud VM. The Skill copies the code, installs dependencies with uv sync, starts the bot in the background, and gives you scripts to stop or check it later. ## Quick Start Deploy my Python project in the current folder to my Yandex Cloud VM using the connection details in vm.yml.

Frequently Asked Questions about vm-deploy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy a Python Telegram bot to a Yandex Cloud VM?

Place a vm.yml file with the VM's ip, user, and SSH key name in your workspace, then run the deployment workflow. It installs uv on the VM, copies the project via scp, creates the environment, and starts the bot with a generated deploy.sh script.

How do I fix the UNPROTECTED PRIVATE KEY FILE SSH error?

The error means the private key is readable by other users. On macOS/Linux run chmod 600 on the key file; on Windows use icacls with /inheritance:r and /grant:r to restrict access to your user only.

Why does uv report command not found when running over SSH?

Non-interactive SSH sessions do not load the PATH from the shell profile, so ~/.local/bin is missing. Prefix remote commands with export PATH="$HOME/.local/bin:$PATH" or call the full path ~/.local/bin/uv.

Can I deploy a project that uses requirements.txt instead of pyproject.toml?

Yes. The workflow detects the dependency type automatically: pyproject.toml projects use uv sync, while projects with only requirements.txt use uv venv followed by uv pip install -r requirements.txt.

Why is my web service running on the VM but unreachable from outside?

The process may be listening only on 127.0.0.1, or the Yandex Cloud security group blocks inbound traffic on that port. Check listening ports with ss -tlnp on the VM and open the port in the security group rules.

How do I update an already deployed project on the VM?

Stop the running process with deploy.sh stop, copy the changed files to the VM with scp, re-run the environment setup if dependencies changed, then start again with deploy.sh start and verify status and logs.