Secrétaire fédéral du Parti communiste français dans l'Allier[2], il est conseiller municipal d'opposition à Moulins depuis 2008[3],[4]. Il mène la liste de rassemblement de la gauche pour les élections municipales de 2020 et est reconduit pour un troisième mandat[5],[6].
En vue des élections législatives de 2022, il est désigné par les adhérents communistes de la 1re circonscription pour remplacer Jean-Paul Dufrègne qui avait souhaité « passer le relais »[2]. Candidat sous la bannière de Nouvelle Union populaire écologique et sociale, avec Jean-Paul Dufrègne comme suppléant, il arrive largement en tête au premier tour[8] et est élu député le avec 55,51% des suffrages, face au candidat de la majorité présidentielle[9].
Il indique souhaiter s'engager prioritairement sur les questions de santé avec trois mesures pour les territoires ruraux : le renforcement de l’hôpital public, la sortie de la tarification à l’activité et l'ouverture des centres de santé avec des médecins salariés. Ces mesures sont selon lui indispensables pour l’attractivité de ces territoires[10].