Colin Powell, who served as America's top military officer and top diplomat under Republican presidents, said Sunday he will vote for Democrat Joe Biden, accusing Donald Trump of drifting from the US constitution and Republicans of failing to hold him accountable.

In a scathing indictment of Trump on CNN, Powell denounced the US president as a danger to democracy whose lies and insults have diminished America in the eyes of the world.

"We have a constitution. We have to follow that constitution. And the president's drifted away from it," Powell said.

A retired four-star army general, Powell was the latest in a series of retired top military officers to publicly criticize Trump's handling of the mass anti-racism protests that have swept the United States since the police killing of George Floyd, an unarmed black man, in Minneapolis May 25.

Former Chairman of the Joint Chiefs of Staff and former Secretary of State Colin Powell Former Chairman of the Joint Chiefs of Staff and former Secretary of State Colin Powell Photo: GETTY IMAGES NORTH AMERICA / Drew Angerer

A tipping point appeared to have been reached last week among the normally reticent retired officers when Trump threatened to use the active duty military to quell protests in US cities, setting off a confrontation with the Pentagon leadership.

Among those who broke their silence was Trump's former defense secretary, Jim Mattis, a retired Marine general who accused the president of deliberately setting Americans against each other and making "a mockery of our Constitution."

Powell's comments carried particular force as the nation's first and so far only African American chairman of the Joint Chiefs and the country's first black secretary of state, serving under Republican presidents George H.W. Bush and George Bush respectively.

Condoleeza Rice, former US secretary of state, pictured at the Elysee Palace in Paris in June 2008 Condoleeza Rice, former US secretary of state, pictured at the Elysee Palace in Paris in June 2008 Photo: AFP / ERIC FEFERBERG

Powell blasted Republican senators for not standing up to Trump.

"We are in a turning point," he said.

"He lies about things. And he gets away with it because people will not hold him accountable," he said, referring to Trump.

Powell also rebuked Trump for offending "just about everyone in the world."

"We're down on NATO. We're cutting more troops out of Germany. We have done away with our contributions to the World Health Organization. We're not happy with the United Nations.

Condoleezza Rice, former US secretary of state, urges President Donald Trump to "speak the language of unity Condoleezza Rice, former US secretary of state, urges President Donald Trump to "speak the language of unity" Photo: AFP / -

"And just about everywhere you go, you'll find some kind of disdain for American foreign policy that is not in our interests," he said.

In contrast, Condoleezza Rice, Powell's successor as secretary of state and who also is African American, counseled setting aside "the language of recrimination" to help the country heal and move forward.

"I would ask the president to first and foremost speak in the language of unity, the language of empathy," she said on CBS's "Face the Nation."

"Not everyone is going to agree with any president, with this president, but you have to speak to every American, not just to those who might agree with you," she said.

Rice also warned against sending in the military to contain peaceful protest, adding, "This isn't a battlefield."

Rice would not say who she intends to vote for in November.

Powell, a moderate who has distanced himself from the Republican party in recent years and did not vote for Trump in 2016, said he would cast his ballot for Biden.

"I'm very close to Joe Biden in a social matter and political matter. I worked with him for 35, 40 years. And he is now the candidate, and I will be voting for him," he said.

"Every American citizen has to sit down, think it through, and make a decision on their own," he said. "Use your common sense, say is this good for my country before you say this is good for me."

Biden thanked Powell for his endorsement, tweeting, "This isn't about politics. This is about the future of our country. Grateful for your support, Secretary Powell."

Trump also responded, dismissing Powell in a tweet as "a real stiff who was very responsible for getting us into the disastrous Middle East Wars."