Sachverhalt: A. Das Obergericht des Kantons Zürich verurteilte X._ am 4. Juli 2007 wegen vorsätzlicher Tötung im Sinne von Art. 111 StGB zu einer Freiheitsstrafe von 9 Jahren. Ausserdem verpflichtete es ihn, der Geschädigten A._ eine Genugtuung von 15'000 Franken zu bezahlen. Es hielt für erwiesen, dass X._ am 30. September 2005, um ca. 18:00 Uhr, an der Gertrudstrasse 36, im Verlauf eines Streites seinen Mitbewohner +O._ mit einem Küchenmesser erstochen hatte. Das Kassationsgericht des Kantons Zürich wies am 9. Juli 2008 die von X._ gegen seine Verurteilung erhobene Nichtigkeitsbeschwerde ab. B. Mit Beschwerde in Strafsachen beantragt X._, die Urteile des Obergerichts und des Kassationsgerichts aufzuheben und ihn mit einer Freiheitsstrafe von maximal 4 1⁄2 Jahren zu bestrafen. Eventuell sei das Verfahren ans Obergericht zur Neubeurteilung zurückzuweisen. Er ersucht um unentgeltliche Rechtspflege und Verbeiständung. Vernehmlassungen wurden keine eingeholt. 