본관은 안동(安東). 자는 중보(仲甫), 호는 용재(庸齋), 아버지는 성균관 진사 김시서(金時叙), 어머니는 은진송씨(恩津宋氏)로 비안현감(比安縣監) 송이석(宋彛錫)의 딸이다. 강규환(姜奎煥)의 문인이다.
15세에 경전을 통달하여 대기(大器)가 될 수 있다는 촉망을 받았다. 진사시에 합격하여 세자익위사(世子翊衛司)의 세마(洗馬)가 되고, 이어서 사어(司禦)에 승진한 뒤 김포군수(金浦郡守)와 1780년(정조 4) 인천부사(仁川府使)에 이르렀다.
태자익위사세마로 있을 때는 경연(經筵)에서 『상서(尙書)』의 태갑(太甲)의 상·하를 강의하였고, 사어(司禦)로 있을 때는 『성학집요(聖學輯要)』를 강의하였으며, 김포군수로 재임시에는 학교를 설치하여 군민을 잘 교육시켰다는 암행어사의 보고에 따라 임금으로부터 『소학』 한 질을 하사 받았다.
관직에서 물러난 뒤에도 교육에 힘써 서린(西隣)에서 「맹자공손추장(孟子公孫丑章)」과 「대학정심장(大學正心章)」을 강의하여 후진을 가르쳤다. 특히 역리학(易理學)을 깊이 연구하여 『주역(周易)』·『역학계몽(易學啓蒙)』·『기삼백(朞三百)』·『태극도(太極圖)』·『율려신서(律呂新書)』 등을 주해하여 이해하기 쉽도록 도시(圖示)하고 설명을 첨가했다. 저서로는 『용재문집』 15권이 있다.