Miguel de Icaza z firmy Ximian zauważył, że w platformie .NET drzemie potencjał, który umożliwi zwiększenie produktywności powstającego kodu i ułatwi pracę programistów. Dodatkowo umożliwi ona tworzenie aplikacji wieloplatformowych bez konieczności korzystania z natywnego języka dla danej platformy. W związku z tym rozpoczęto prace nad przygotowaniem implementacji platformy .NET dla systemu Linux. Wkrótce okazało się, że projekt ten jest zbyt obszerny, aby poradziła sobie z nim niewielka garstka programistów. W związku z tym, 19 lutego 2001 roku, na konferencji O’Reilly ogłoszono rozpoczęcie prac nad otwartym projektem Mono.

Po trzech latach pracy, 30 stycznia 2004 roku opublikowano Mono 1.0. Z małego projektu, którego początkowym założeniem było stworzenie platformy programistycznej dla desktopowej wersji systemu Linux, stało się ono platformą programistyczną, która umożliwiała uruchamianie aplikacji przystosowanych dla środowiska .NET Framework na szerokiej gamie platform sprzętowych i na wielu systemach operacyjnych, wliczając w to systemy wbudowane.