diff --git a/flake.nix b/flake.nix
index da23d8e50608be36d22b689610a171a3a972f8a3..f602c58a33bcb6ec712c4267f8f4054bb2b134ad 100644
--- a/flake.nix
+++ b/flake.nix
@@ -119,6 +119,10 @@
           kikit = flake-utils.lib.mkApp { drv = self.packages.${system}.kikit; };
           kibot = flake-utils.lib.mkApp { drv = self.packages.${system}.kibot; };
           default = kibot;
+
+          #python-kibot = flake-utils.lib.mkApp { name = "python"; drv = self.devShells.${system}.kibot.passthru.python; };  # doesn't work
+          python-rust  = flake-utils.lib.mkApp { name = "python"; drv = self.devShells.${system}.rust.passthru.python; };
+          python-modbus = python-rust;
         };
         devShells = let
           flakePkgs = self.packages.${system};
@@ -126,10 +130,9 @@
           kibot = with flakePkgs; pkgs.mkShell rec {
             passthru.packages = [ flakePkgs.kibot ];
             passthru.pythonPackages = p: [ flakePkgs.kibot ];
+            passthru.python = python3.withPackages passthru.pythonPackages;
 
-            packages = passthru.packages ++ [
-              (python3.withPackages passthru.pythonPackages)
-            ];
+            packages = passthru.packages ++ [ passthru.python ];
 
             shellHook = ''
               # KiAuto wants to run stuff inside xvfb so let's make sure that we don't leak windows to our Wayland desktop.
@@ -168,17 +171,16 @@
               rustup udev.dev pkg-config openssl.dev picotool
             ];
             passthru.pythonPackages = p: with p; [ pymodbus3 pyserial modbus-tk ];
+            passthru.python = python3.withPackages passthru.pythonPackages;
 
-            packages = passthru.packages ++ [
-              (python3.withPackages passthru.pythonPackages)
-            ];
+            packages = passthru.packages ++ [ passthru.python ];
           };
 
-          default = pkgs.mkShell {
+          default = pkgs.mkShell rec {
+            passthru.python = flakePkgs.python3.withPackages (p: kibot.passthru.pythonPackages p ++ rust.passthru.pythonPackages p);
+
             #packages = kibot.nativeBuildInputs ++ rust.nativeBuildInputs;
-            packages = kibot.passthru.packages ++ rust.passthru.packages ++ [
-              (flakePkgs.python3.withPackages (p: kibot.passthru.pythonPackages p ++ rust.passthru.pythonPackages p))
-            ];
+            packages = kibot.passthru.packages ++ rust.passthru.packages ++ [ passthru.python ];
             shellHook = kibot.shellHook;
           };
         };