For this custom shell, I used C to implement common shell commands such as cd, status, and exit. I also handled input and output redirection and implemented custom signal handlers. I also developed a function to parse commands into tokens to determine user input.