Biosphere is a simple CLI tool to bootstrap development environments across multiple operating systems.
It’s primarily a learning project: I’m teaching myself Rust by converting old scripts into something more structured and robust. You can think of it as a (very minimal) alternative to Ansible or Brewfiles — but JSON-based and written entirely in Rust.
Given a JSON config file that specifies which apps to install per OS/distro, Biosphere will:
- Detect your OS (and Linux distro, if applicable)
- Look up relevant commands and apps
- Run them (or simulate with `–dry-run`)
$ git clone [email protected]:Zolmok/biosphere.git
$ cd biosphere
$ cargo install --path .
To install apps based on your configuration file:
$ biosphere --config /path/to/apps.json
To preview what would be executed (no changes made):
$ biosphere --config /path/to/apps.json --dry-run
Your configuration file (`apps.json`) should look like this:
{
"operating_systems": [
{
"name": "linux",
"versions": [
{
"types": ["pop", "ubuntu"],
"commands": [
{
"meta": {
"command": "sudo",
"args": ["apt-get", "update"]
}
},
{
"meta": {
"command": "sudo",
"args": ["apt-get", "install", "-y"],
"apps": [
"clamav",
"curl",
"emacs"
// ...
]
}
}
]
}
]
}
]
}
Each command entry has:
- a `command` (e.g. `sudo`)
- optional `args` (e.g. `[“apt-get”, “install”, “-y”]`)
- optional `apps`: a list of packages appended to `args` for each app not already installed
This is a learning tool — but if you find it helpful, have suggestions, or want to add support for more distros (macOS, Arch, Windows WSL, etc.), PRs are welcome!