diff --git a/overlays/unstable/default.nix b/overlays/unstable/default.nix
index 130f452..7ba9efd 100644
--- a/overlays/unstable/default.nix
+++ b/overlays/unstable/default.nix
@@ -6,6 +6,11 @@ final: prev: {
     open-webui
     claude-code
     aider-chat
+    vscode
     ;
+
   goose-cli = channels.unstable.callPackage ./goose.nix { };
+  vscode-extensions = channels.unstable.vscode-extensions // {
+    rooveterinaryinc = { roo-cline = channels.unstable.callPackage ./roo-code.nix { }; };
+  };
 }
diff --git a/overlays/unstable/roo-code.nix b/overlays/unstable/roo-code.nix
new file mode 100644
index 0000000..b92f425
--- /dev/null
+++ b/overlays/unstable/roo-code.nix
@@ -0,0 +1,24 @@
+{ lib
+, vscode-utils
+, vscode-extensions-update-script
+,
+}:
+
+vscode-utils.buildVscodeMarketplaceExtension {
+  mktplcRef = {
+    publisher = "RooVeterinaryInc";
+    name = "roo-cline";
+    version = "3.11.10";
+    hash = "sha256-ZonPsVG9IIbdz1i3oBPcOjRsXTYZ/pUOjguUhY0bzWY=";
+  };
+
+  passthru.updateScript = vscode-extensions-update-script { };
+
+  meta = {
+    description = "AI-powered autonomous coding agent that lives in your editor";
+    downloadPage = "https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline";
+    homepage = "https://github.com/RooVetGit/Roo-Code";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ emaryn ];
+  };
+}
diff --git a/systems/x86_64-linux/x1/default.nix b/systems/x86_64-linux/x1/default.nix
index 8811e56..91cff05 100644
--- a/systems/x86_64-linux/x1/default.nix
+++ b/systems/x86_64-linux/x1/default.nix
@@ -86,6 +86,17 @@ with lib.metacfg;
     claude-desktop-with-fhs
     goose-cli
     aider-chat
+    #vscode
+    (vscode-with-extensions.override {
+      vscodeExtensions = with vscode-extensions; [
+        rooveterinaryinc.roo-cline
+        rust-lang.rust-analyzer
+        github.copilot
+        ms-python.python
+        ms-azuretools.vscode-docker
+        ms-vscode-remote.remote-ssh
+      ];
+    })
   ];
 
   zramSwap.enable = true;