Działalność publiczna W 1980 został członkiem komitetu założycielskiego Niezależnego Zrzeszenia Studentów na Wydziale Humanistycznym UMK, później wchodził w skład zarządu wydziałowego i uczelnianego. Działalność podziemną w NZS prowadził także po wprowadzeniu stanu wojennego, był członkiem tajnego NZS UMK. W latach 80. współpracował ze strukturami podziemnymi „Solidarności” (m.in. przy organizacji druku i dystrybucji oraz redakcji pism drugiego obiegu). Od 1987 wraz z Romanem Bäckerem wydawał podziemne pismo publicystyczne „Chrześcijański Ruch Społeczny”. Od 1988 współpracował z reaktywującym się NZS, dołączył również do komisji uczelnianej „S”.

W 1989 wstąpił do Stronnictwa Pracy, w 1990 został jednym z założycieli Porozumienia Centrum w Toruniu. Był członkiem zarządu wojewódzkiego i rzecznikiem prasowym lokalnego PC. W 2004 dołączył do Prawa i Sprawiedliwości. W 2010 stał na czele toruńskiego społecznego komitetu poparcia Jarosława Kaczyńskiego w trakcie kampanii prezydenckiej.

W wyborach parlamentarnych w 2011 bez powodzenia kandydował z ramienia PiS do Senatu w okręgu toruńskim. W 2016 wszedł w skład Narodowej Rady Rozwoju utworzonej przez prezydenta Andrzeja Dudę.