For activly using it localy it's a short answer: HubSpot CMS (or CMS Hub as it's called now) is a cloud based software (Saas) - there is no local version of it.
for development reasons there are multiple ways/solutions:
Info: If you're using this method consider that this is a cut down version so you won't have everything what you have in your regular account but you can develop everything and then simply right-click on the element in the design-manager and select "move to portal". If you link CSS, JS files to the template(s) or modules they will be automaticly copied too.
As for staging: You have it build-in into HubSpot. Here's an article about it:
Hi @ravi_535, Your production environment is the hub you already have. The default staging is bound to it / build in. You can't seperate them.
What you could do is set up a local environment/copy of the production environment with the CLI version (you could also link it to a git repo). After the setup you can write the code on your local machine, push it to git(if you want) and push it to your hubspot portal. (Production or another one)
Your developers can create a developer account with a cut down version of HubSpot for free. Important: you can't use it as a production version but it's great to write/test code/modules/functions outside the main instance. And since it's HubSpot you can easily transfer code/modules/functions between the instances (if they won't use the CLI version).
If you have a small page and want to use just the CRM and CMS take a look at "HubSpot marketing starter"(~40$ montly) and "CMS hub pro"(~220$ monthly).
I think The best option to determine what package fits your needs the most is to contact the HubSpot sales team or a certified HubSpot partner agency(like one I'm working for; www.thoughtleadersystems.com; diamond partner)