Skip to main content

Advanced

TopicDescription
Chrome ProfilesIsolated Chrome profile per AWS account
NixOS / home-managerManaging BMC with NixOS and home-manager
MigrationMigrating from the bash version of BMC

Chrome Profiles

BMC can open the AWS console in a dedicated, isolated Chrome profile per AWS account. Each profile has its own cookies and session — no cross-account contamination.

Enable #

{
  "console": {
    "chrome_profiles": true,
    "chrome_binary": "google-chrome"
  }
}

For Brave or Chromium:

{
  "console": {
    "chrome_profiles": true,
    "chrome_binary": "brave-browser"
  }
}

How it works #

On first use for a profile, BMC:

NixOS / home-manager

Installing BMC #

NixOS (configuration.nix) #

{
  inputs.bmc.url = "github:wearetechnative/bmc";

  outputs = { nixpkgs, bmc, ... }: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      modules = [
        {
          environment.systemPackages = [
            bmc.packages.${system}.bmc
          ];
        }
      ];
    };
  };
}

home-manager #

{
  inputs.bmc.url = "github:wearetechnative/bmc";

  home.packages = [ inputs.bmc.packages.${system}.bmc ];
}

Shell integration with home-manager #

bmc install-shell-integration prints snippets instead of writing files when it detects a managed shell config. Add them manually:

Migration from bash version

If you were using the previous bash-based version of BMC, here is what changed and how to migrate.

Steps #

  1. Install the new binary (same name: bmc)
  2. Run bmc install-shell-integration — replaces the source bmc profsel pattern
  3. Create ~/.config/bmc/config.json — replaces ~/.config/bmc/config.env
  4. Run bmc doctor to verify setup

Breaking changes #

OldNew
source bmc profseleval "$(bmc profsel)" — handled automatically by the shell wrapper
~/.config/bmc/config.env~/.config/bmc/config.json
bmc gencompletionsbmc completion bash|zsh (Cobra built-in)

Config migration #

Old config.env: