When a nio add <block> is run, the cli manually creates the submodule in the blocks/ directory, installs dependencies from requirements.txt, and updates etc/blocks.cfg with the new block data.
The project manager component in nio currently opens up an endpoint where one could POST to /project/blocks with data like:
{
"branch": null,
"path": null,
"tag": null,
"url": "git://github.com/nio-blocks/<blockType>.git"
}
Which allows nio download the new block and its dependencies without manually changing the files running on the machine.