# How Birbsh started [2026-10-11 21:02:06] birbsh needs to be a thing, if it's not already. pretty easy to make your own shell these days. n_n (i already made one, in zig, called nish) [2026-10-11 21:02:21] i dun wanna [2026-10-11 21:02:24] hehehehhehe [2026-10-11 21:02:38] i might [2026-10-11 21:02:39] E F F O R T [2026-10-11 21:02:49] challenge accepted! And on that whim, [2026-10-11 21:07:22] https://dpaste.com/D7HLH95KY btw [2026-10-11 21:07:54] :) 4minutes 20seconds, i estimate that took me. lol. iirc, that original version pastebinned was: birbsh - a shell written in haskell, for birb, by Digit and Mistral 797 bytes of Haskell Created now — expires in 1 day 1 view ``` module Main where import Control.Monad (forever) import System.Directory (findExecutable, setCurrentDirectory) import System.Exit (exitSuccess) import System.IO (hFlush, stdout) import System.Process (spawnProcess, waitForProcess) main :: IO () main = forever $ do putStr "$ " >> hFlush stdout input <- getLine case words input of [] -> return () -- empty line: just re-prompt (cmd:args) -> run cmd args run :: String -> [String] -> IO () run "cd" [dir] = setCurrentDirectory dir run "cd" _ = putStrLn "usage: cd " run "exit" _ = exitSuccess run cmd args = do found <- findExecutable cmd case found of Nothing -> putStrLn (cmd ++ ": command not found") Just exe -> do _ <- spawnProcess exe args >>= waitForProcess return () ``` showing off both how impressive both LLM and Haskell are. Make a shell in 5 minutes, with code you can read. Non-intimidating beginnings. Not even a kilobyte.