<style>
h2 { counter-increment: h2; }
h2:before { content: counter(h2) ". " }
.markdown-body { font-family: -apple-system, BlinkMacSystemFont, "SFNS Display", "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif !important; }
</style>
# How to run VS Code on your host OS and develop inside the class VM
1. Forward 127.0.0.1:2222 on your machine to port 22 of the VM:
```
VBoxManage modifyvm CS356 --natpf1 "ssh,tcp,,2222,,22"
```
Now you can log into the VM through SSH: `ssh -p 2222 trojan@127.0.0.1`
(The VM should have this mapping already.)
2. Install VS Code on your machine (macOS, Windows, Linux)
3. Install the [Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) extension of VS Code
4. `F1`, `Remote-SSH: Connect to host...`, `ssh://trojan@127.0.0.1:2222`, enter password `developer` (many times)
![](https://i.imgur.com/hf2wOZf.png)
5. To avoid entering the password many times, you can [configure an SSH key](https://code.visualstudio.com/docs/remote/troubleshooting#_ssh-tips)
6. Now your VS Code terminal is `trojan@cs356`: any command that you give here is running on the VM. You can clone your assignment repository with `git clone ...`, open its folder in VS Code, and run `make` inside it (or debug).
![](https://i.imgur.com/LN48iYo.png)