Midfielder Marlon Pack has signed a new three-year Bristol City deal, while striker Mohammed Eisa has joined from Cheltenham Town for an undisclosed fee.
Pack, 27, has played 233 games for the Robins since his move, also from Cheltenham, in August 2013.
The Portsmouth-born player has also deputised as captain during his time at Ashton Gate.
Eisa, 24, has agreed a three-year contract after scoring 25 goals in 50 games last season.
"It's a place I adore, a place I now call home and I'm really excited for the future," Pack told the club website.
"The club's going in the right direction, as it has been since I came here. My family's happy here and I'm happy."
Eisa's arrival from the League Two club caps a remarkable rise through the leagues, as he was playing for Greenwich Borough in the eighth tier as recently as 2016.
"We hope he can make another step up the football ladder," said the Championship club's chief executive Mark Ashton.
"He is tall, athletic, a proven finisher and we believe he can become even better."
Cheltenham turned down a bid for Eisa earlier this month from an "unnamed club".
Find all the latest football transfers on our dedicated page.