diff --git a/setup.sh b/setup.sh
new file mode 100644
index 0000000..1447512
--- /dev/null
+++ b/setup.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# Install dependencies
+sudo apt-get update
+
+# Python 3 and related packages
+sudo apt-get install -y python3 python3-pip python3-venv
+
+# Terminal
+sudo apt-get install -y zsh fzf jq knot-dnsutils tre-command
+# Install fx
+curl https://fx.wtf/install.sh | sh
+
+# Install Rust
+curl https://sh.rustup.rs -sSf | sh
+
+cargo install --locked zellij
+sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
+curl -s https://ohmyposh.dev/install.sh | bash -s
+curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
+curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
+cargo install eza
\ No newline at end of file