본관은 상주(尙州). 구명(舊名)은 김리(金理), 자는 계보(谿甫).
어려서 아버지를 여의고 여러 곳에서 공부를 하였다. 과거에 급제하여 금양현위(金壤縣尉)를 거쳐 국학학유(國學學諭)를 역임하다가 벼슬을 그만두고 두문불출하였다.
손수 전원을 가꾸고 채소를 팔아 생계를 꾸려나가며 매일 아동들을 가르치는 것을 낙으로 삼았다. 뒤에 다시 벼슬에 나가 1126년(인종 4) 직사관(直史館)으로 있을 때 이자겸(李資謙)의 난으로 궁궐이 불타자, 궁중에서 숙직하다가 『국사(國史)』를 짊어지고 산호정(山呼亭) 북쪽에 이르러 땅을 파고 묻어 소실되는 것을 막았다.
그 뒤 직한림원(直翰林院)으로 옮겼으나, 곧 병을 얻었다. 왕을 가까이 모시는 근시직을 좋아하지 않았고, 또 노모를 봉양하기 위하여 외직에 나가기를 원하여 예주방어사(禮州防禦使)로 있다가 죽었다.
인종(仁宗) 때에 몸을 돌보지 않고 『국사(國史)』를 보전한 공으로 이부시랑 한림시독학사 지제고(吏部侍郎翰林侍讀學士知制誥)에 추증되었다.