Deploy tt-vscode-toolkit to Koyeb
Get your own cloud-based VSCode IDE with the Tenstorrent extension pre-installed, running on Koyeb with access to N300 hardware.
What You'll Build
A browser-accessible VSCode environment with:
- ✅ Tenstorrent extension pre-installed
- ✅ tt-smi for hardware monitoring
- ✅ Access to Tenstorrent N300 accelerator hardware
- ✅ Persistent development environment
- ✅ Accessible from anywhere via HTTPS
Prerequisites
- Koyeb account (free tier available)
- ~5 minutes for deployment
Why Deploy to Koyeb?
Koyeb offers direct access to Tenstorrent N300 hardware (gpu-tenstorrent-n300s instance type) with:
- Native N300 support (2 Wormhole chips)
/dev/tenstorrent/device access- Dedicated hardware for your workloads
- HTTPS endpoints with automatic SSL
- Simple deployment from source code
Perfect for:
- Learning Tenstorrent development without local hardware
- Remote development with real hardware
- Sharing reproducible environments
- Testing before purchasing hardware
Step 1: Install Koyeb CLI
curl -fsSL https://cli.koyeb.com/install.sh | sh
Verify installation:
koyeb version
Step 2: Login to Koyeb
koyeb login
This opens your browser for authentication.
Verify you're logged in:
koyeb profile show
Step 3: Deploy the IDE
Deploy using our pre-built image - no cloning or building required!
koyeb services create vscode \
--app tt-vscode-toolkit \
--docker ghcr.io/tenstorrent/tt-vscode-toolkit:latest \
--ports 8080:http \
--routes /:8080 \
--env PASSWORD=your-secure-password \
--env MESH_DEVICE=N300 \
--regions na \
--instance-type gpu-tenstorrent-n300s \
--privileged
What this does:
- Pulls pre-built image from GitHub Container Registry
- Configures N300 hardware access
- Sets up HTTPS endpoint
- Creates your cloud IDE
Deployment time: ~30-60 seconds (image pull + start)
⚠️ Save your password! You'll need it to access your IDE.
Step 4: Get Your Access URL
Wait for deployment to complete:
koyeb services get vscode
Expected output:
ID APP NAME STATUS CREATED AT
73553d44 tt-vscode-toolkit vscode HEALTHY ...
Once STATUS shows HEALTHY, get your URL:
# Your service URL will be shown in the services list
koyeb services get vscode | grep koyeb.app
Access your IDE: https://vscode-<your-hash>.koyeb.app
Enter the password you set in Step 3.
✅ That's it! Your cloud IDE with N300 hardware is ready.
Step 5: Verify Hardware Access
Open a new terminal in your cloud IDE (Terminal → New Terminal) and run:
tt-smi
Expected output:
Board type: p300c
Num devices: 2
Device 0:
Coordinates (rack,shelf,y,x): (0,0,0,0)
PCI domain:bus:device.function: 0000:01:00.0
Board type: n300
...
Note: N300 reports as 2 devices (2 Wormhole chips on one board) - this is correct!
Step 6: Explore the Extension
The Tenstorrent extension is pre-installed and active:
- Click the Tenstorrent icon in the left sidebar (TT logo)
- Browse lessons - All 16+ interactive lessons available
- Open Welcome Page - Click "Welcome Page" in the sidebar
- Try a lesson - Start with "Your First Inference" or "Hardware Detection"
What's Included in the Deployment
Your cloud IDE includes:
Software Stack:
- Ubuntu 24.04 (noble)
- code-server (VSCode in browser)
- Tenstorrent tools installed via tt-installer (container mode)
- Tenstorrent VSCode extension
- Git, Python 3, build tools
Hardware:
- Tenstorrent N300 (2x Wormhole chips)
- Device access via
/dev/tenstorrent/0and/dev/tenstorrent/1
CLI Tools (via tt-installer):
tt-smi- Tenstorrent hardware monitoringtt-flash- Firmware update tooltt-topology- Hardware topology detectiontt-inference-server- Production inference serverhf- HuggingFace CLI for downloading modelsclaude- Claude Code CLI for AI-assisted development- Standard dev tools (git, python3, npm, etc.)
- Full hardware permissions configured
Note: tt-metal can be built via lessons when needed (not pre-installed)
Configuration:
- Auto-configured theme (Tenstorrent Dark)
- Device permissions (sudo, video, render groups)
- Privileged container mode for hardware access
- No telemetry, auto-updates disabled
- MOTD (Message of the Day) displays on terminal open with system info
Managing Your Deployment
Check Status
koyeb services get vscode
Watch Logs
koyeb services logs vscode -f
Update Deployment
Pull the latest image:
koyeb services redeploy vscode
This fetches the newest :latest image and restarts the service.
Delete Service
When you're done:
koyeb services delete vscode
Troubleshooting
Deployment Stuck or Fails
Check build logs:
koyeb services get vscode --full -o json | jq
Common issues:
- ✅ Network timeouts: Redeploy, usually succeeds on retry
- ✅ Archive too large: Ensure old
.vsixfiles are cleaned up - ✅ CLI bug errors: Ignore
DEPLOYMENT_STRATEGY_TYPE_DEFAULTmessages, check actual service status
Can't Access Hardware
If tt-smi shows "Permission denied":
- Verify privileged mode: Check
koyeb services get vscodeshowsprivileged: true - Check device files:
ls -la /dev/tenstorrent/ - Verify groups:
groupsshould showsudo,video,render
The entrypoint script automatically fixes permissions on startup via:
sudo chmod -R 666 /dev/tenstorrent/*
Extension Not Visible
If the Tenstorrent extension doesn't appear:
- Check Extensions sidebar (Cmd/Ctrl+Shift+X)
- Search for "Tenstorrent"
- Verify it's installed and enabled
The extension should auto-install during build. If missing, the container needs rebuilding with proper user permissions.
Cost Considerations
Koyeb N300 pricing:
- Charges while running (compute + hardware)
- No charge when stopped/paused
- Pay-as-you-go or reserved instances
Recommendations:
- Delete service when not in use:
koyeb services delete vscode - Redeploy in ~5 minutes when needed
- Archive size is small (84MB) so redeployment is fast
Advanced: Custom Configuration
Change Password
Set PASSWORD environment variable before deploying:
export PASSWORD=my-secure-password
./scripts/koyeb-deploy-direct.sh
Change Region
Edit scripts/koyeb-deploy-direct.sh and modify:
--regions na # North America (default)
# Options: na (US), fra (Europe), sin (Asia)
Use Different Instance Type
For testing without hardware:
koyeb deploy . tt-vscode-toolkit/vscode \
--archive-builder docker \
--archive-docker-dockerfile Dockerfile.koyeb \
--ports 8080:http \
--routes /:8080 \
--env PASSWORD=yourpass \
--regions na \
--instance-type small # No hardware, cheaper for testing
Next Steps
✅ You now have a cloud VSCode IDE with Tenstorrent hardware!
Continue your journey:
- 🎯 Deploy Your Work to Koyeb - Deploy your own apps with N300
- 🚀 Your First Inference - Run your first model
- 🏭 vLLM Production - Production model serving
Share your deployment:
- Show teammates: Share the URL + password
- Create tutorials: Your environment is reproducible
- Test ideas: Spin up/down as needed
Advanced: Custom Builds
Need to customize? Check our Dockerfile on GitHub to see how the image is built. You can:
- Fork the repo and modify the Dockerfile
- Build your own image:
docker build -t myimage:latest . - Deploy your custom image: Use
--docker myimage:latestinstead
The published image includes:
- code-server (VSCode in browser)
- Tenstorrent tools installed via tt-installer (
tt-smi,tt-flash, etc.) - HuggingFace CLI (
hf) - Claude CLI (
claude) - All hardware permissions configured
- MOTD system for terminal welcome messages
- tt-metal can be built via lessons when needed (not pre-installed)
Build locally and deploy:
# Clone and modify
git clone https://github.com/tenstorrent/tt-vscode-toolkit.git
cd tt-vscode-toolkit
# ... make your changes ...
# Build extension
npm install
npm run build
npm run package
# Deploy using the included script
./scripts/koyeb-deploy-direct.sh
This approach is useful for:
- Testing local changes before contributing
- Adding custom extensions or configurations
- Experimenting with different base images
Summary
What you learned:
- ✅ Deploy VSCode to cloud in 60 seconds using published images
- ✅ Access real Tenstorrent N300 hardware remotely
- ✅ Manage cloud deployments with Koyeb CLI
- ✅ Configure hardware access in containers
Key concepts:
- Published Docker images eliminate build time
- Single command deployment (
koyeb services create) - Hardware access via
--privilegedflag - Custom builds available for advanced users
Time invested: ~5 minutes Result: Professional cloud IDE with hardware access 🎉