초명은 김자수(金子粹). 본관은 경주(慶州). 자는 순중(純仲), 호는 상촌(桑村). 아버지는 통례문부사(通禮門副使) 지제고(知制誥)를 지낸 김오(金珸)이다.
1374년(공민왕 23) 문과에 급제하여 덕녕부주부(德寧府注簿)에 제수되었다.
우왕 초에 정언이 되었는데, 왜구 토벌의 공으로 포상받은 경상도도순문사 조민수(曺敏修)의 사은편지에 대하여 회답하는 교서를 지으라는 왕명을 받았으나, 김자수가 전날 김해·대구에서 있었던 왜구와의 전투에서 비겁하게 도망하여 많은 사졸을 죽게 한 사실을 들어 거절한 죄로 전라도 돌산(突山)에 유배되었다.
뒤에 전교부령(典校部令)을 거쳐 판사재시사(判司宰寺事)가 되고, 공양왕 때에 이르러 대사성·세자좌보덕(世子左輔德)이 되었다.
이 때에 왕대비에 대하여 효성을 다할 것, 왕세자의 봉숭례(封崇禮)를 서두르지 말 것, 사전(祀典)에 기재된 바를 제외하고는 일체의 음사(淫祀)는 금지하고 모든 무당의 궁중 출입을 엄단할 것, 천변이 자주 일어나는 것은 숭불로 인한 것이니 연복사탑(演福寺塔)의 중수공사를 중지할 것, 언관의 신분을 보장할 것 등의 상소를 올렸다.
1392년에 판전교시사(判典校寺事)가 되어 좌상시에 전보되자, 중국 조정에 파견하는 환관들에게 관직을 남발하는 것과 재정 운영에 관한 상소를 하였다. 이후 충청도관찰사·형조판서에 이르렀다. 이숭인(李崇仁)·정몽주(鄭夢周) 등과 친분이 두터웠으며, 문장이 뛰어나 김자수의 시문이 『동문선(東文選)』에 실려 있다.
조선 건국 이후 1397년 청주목사를 지내면서, 흉년으로 인해 보리에 대한 세금을 감면해 줄 것을 요청했다. 이후 태종이 즉위한 후에 좌산기 상시(左散騎常侍)를 거쳐, 충청도 도관찰사, 판강릉대도호부사(判江陵大都護府事)를 역임하였다.