Prime Minister Justin Trudeau took sharp aim at his chief electoral opponent today, casting Andrew Scheer as a divisive force in a campaign-style speech to fire up his troops.

Addressing about 3,000 delegates at the Liberal policy convention in Halifax, Trudeau seized on the Conservative leader's characterization as "Stephen Harper with a smile."

"It may be Andrew Scheer's smile. But it's still Stephen Harper's party," he told a raucous room of supporters. "The same policies, the same politics of fear and division. If anything, they've been emboldened by successful campaigns elsewhere in the world to divide one against the other."

With 18 months to go before the 2019 election, Trudeau asked supporters for their enthusiasm, ideas, positivity and energy to help the Liberal government win re-election.

"Most of all, we need your hope and hard work," he said.

Positive politics

Trudeau said Canadians rejected the politics of fear and division in 2015, opting instead for positive politics fuelled by ideas over demonizing opponents.

The prime minister goes after the Conservative Party, cites government record of change in remarks to delegates in Halifax. 28:38

He touted the Liberal record on everything from the economy, to gun control, to helping the Syrian refugee crisis.

He thanked the more than two million Canadians who played a role in sponsoring refugees.

"What makes me proudest of our fellow citizens is that they did it despite the flood of fact-less fear-mongering that aimed to dissuade them from doing it," he said. "We Canadians know who we are."

Trudeau reached out to Conservative supporters, noting that Conservatives are not enemies of Liberals, but their neighbours.

"We will fight for Canadians. All Canadians," he said. "We will fight for their future and for their hopes and dreams. We will fight for their right to have a government that respects them, that listens to them, that sticks up for them, and that cares about them."

Trudeau also invoked his popular past "sunny ways" motto in his speech. In a subsequent news conference, the prime minister was asked how that reconciles with his sharp words for Scheer.

"I will always be very clear and unapologetic about when I disagree on policy, on the choice to divide Canadians, or play up the politics of fear or anger," he said. "But I won't engage in personal attacks."

Conservative MP Lisa Raitt was at the convention as an observer and tweeted her reaction to the speech.