Dołączył do Partii Zieloni; w 2014 kandydował z jej ramienia w wyborach do Parlamentu Europejskiego w okręgu nr 4.
W maju 2015 współtworzył Partię Razem (od czerwca 2019 do października 2024 działającą pod nazwą Lewica Razem). Wszedł w skład jej zarządu krajowego, w którym zasiadał do 2020. W wyborach parlamentarnych w 2015 bez powodzenia kandydował do Sejmu z pierwszego miejsca na liście tego ugrupowania w okręgu gdyńskim (otrzymał 8694 głosy). W 2018 z ramienia Razem startował do Sejmiku Województwa Śląskiego. W wyborach w 2019 bezskutecznie ubiegał się o mandat eurodeputowanego z listy koalicyjnego komitetu Lewica Razem w okręgu nr 11.
W wyborach parlamentarnych w 2019 uzyskał mandat posła IX kadencji z ramienia Sojuszu Lewicy Demokratycznej (w ramach projektu politycznego Lewica), otrzymując 22 262 głosy w okręgu katowickim. Zwrócił uwagę mediów podczas poselskiego ślubowania – polityk uniósł zaciśniętą pięść w geście nawiązującym do socjalistycznego pozdrowienia. W Sejmie został członkiem Komisji do Spraw Energii, Klimatu i Aktywów Państwowych oraz Komisji Spraw Zagranicznych. W wyborach w 2023 jako kandydat z listy Nowej Lewicy (w ramach porozumienia NL z jego formacją) uzyskał poselską reelekcję z wynikiem 17 901 głosów. W X kadencji podjął pracę w tych samych komisjach sejmowych.