본관은 의성(義城). 자는 숙명(淑明). 김여건(金汝鍵)의 증손으로, 할아버지는 김경온(金景溫)이고, 아버지는 증이조참의 김두동(金斗東)이며, 어머니는 전주유씨(全州柳氏)로 유세원(柳世源)의 딸이다.
이상정(李象靖)의 문하에서 수학하였다.
1792년(정조 16) 사마시에 합격, 몇 달 뒤에 도산(陶山) 응제(應製)에서 장원하였다. 1794년 규장각 강제문신(講製文臣)으로 뽑혀 족형인 김희주(金熙周)와 함께 궁중을 출입하며 여러가지 과제(課製)와 『사서(四書)』 조대(條對)에서 자주 장원하였다.
1794년에서 1800년 사이에 삼조(三曹)의 낭관(郎官)과 사헌부지평·사간원정언을 지내는 동안 춘추관기사관을 겸하였고, 말년에는 노모를 봉양하기 위하여 흥양현감(興陽縣監)을 자원하였다.
관직에 있으면서 문장과 학식이 뛰어나 정조로부터 특별한 총애를 받았고 많은 강제문과 응제문을 지어 올렸으며, 편수관으로서 『해동인물고(海東人物攷)』·『영남명신록』·『홍재전서(弘齋全書)』 등의 편찬에 참여하였다. 저서로 『고식(故寔)』 5권 3책이 있다.