Skip to content

Groups and inheritance

A group holds hosts, and can hold other groups. Its settings apply to every host inside it unless a host sets its own. Set the login for twenty production servers once, on the group, and change it in one place later.

  1. On the Hosts page, press New group.
  2. Type a Name, such as Production.
  3. Pick a Parent group if this group goes inside another one, or leave it at None.
  4. Set any of the settings below. The sheet reminds you: “Hosts in this group use these settings unless they set their own.”
  5. Press Save.
The Edit Production sheet with More options open: Deploy as the identity and Vaulterm Production as the terminal theme.

You can also create a group while editing a host: choose New group… at the end of the Group list.

A group has the same settings as a host, except the hostname, name and tags:

Setting Example on a group
Port Every host in Home lab listens on 2222.
Identity Every host in Production signs in as Deploy.
Jump host Everything in Production goes through bastion.
Agent forwarding Turned on for Staging only.
Terminal theme Production is red, so you always know where you are.
Shell integration Every Staging terminal reports its commands and folder to smart panes.
Startup snippet Every Staging terminal runs cd /srv/app && git status when it connects.

Settings you leave at Default on the group come from the group above it, if there is one.

Say you have these groups and hosts:

Production identity: Deploy, theme: Vaulterm Production, jump host: bastion
├── bastion
├── web-01
├── web-02
└── Databases port: 5433
└── db-primary port: 22
Staging identity: Ops, theme: Solarized Dark
└── staging-api

Here’s what each host ends up with:

Host Signs in as Port Jump host Theme
bastion Deploy 22 none (see below) Vaulterm Production
web-01 Deploy 22 bastion Vaulterm Production
db-primary Deploy (from Production, two levels up) 22 (its own) bastion Vaulterm Production
staging-api Ops 22 none Solarized Dark

The rules:

  • The nearest value wins. Vaulterm looks at the host first, then its group, then that group’s parent, and so on up. The first one that sets a value decides it.
  • A host’s own setting always wins. db-primary sets port 22, so the Databases group’s 5433 doesn’t apply to it.
  • A group’s jump host doesn’t apply to that jump host. bastion is in Production, whose jump host is bastion, but it doesn’t try to connect through itself. It connects directly.
  • A jump host uses its own settings. When web-01 connects through bastion, the connection to bastion uses bastion’s own identity, port and jump host, so jump hosts can chain.
  • If nothing up the chain sets a value, Vaulterm’s default applies: port 22, no jump host, agent forwarding off, your app’s terminal theme, no startup snippet, and asking who to sign in as when you connect.

Open the host and change the setting. It now wins over the group’s. To go back to the group’s value, choose the Default option for that setting again. The Default option for each setting says where its value comes from, for example “Default (from group, or prompt on connect)” for Identity.

Turn off a group’s startup snippet on one host

Section titled “Turn off a group’s startup snippet on one host”

A group’s startup snippet runs on every host in it. To stop it on one host, set that host’s Startup snippet to None. Default would inherit the group’s snippet; None means no snippet at all.

Set Parent group to put a group inside another. The Hosts page shows it indented under its parent, and its hosts inherit from both, nearest first.

A group can’t go inside itself or one of its own subgroups. Vaulterm says “A group can’t sit inside one of its own subgroups.”

Open the host and change Group. Its inherited settings change straight away to the new group’s.

Or drag the host onto the group on the Hosts page, or use Move to… from its menu. Several hosts, and whole groups, move the same way. See Organise hosts and groups.

In the Command Center, find the group (type @ and part of its name), press Tab, and choose “Connect to all 4 hosts”. Each opens in its own tab.

Or drag the group into the workspace, or choose Open all… from its menu in the host list: Vaulterm asks whether to open the hosts As tabs, as a grid in one tab, or only the ones you Choose…. See Drop hosts, groups and files onto panes.

Only an empty group can be deleted. Move or delete its hosts and subgroups first. If anything is still in it, Vaulterm says “It’s still used by host web-01. Change that first.”

Open the group and press Delete group. Vaulterm asks first, with Cancel focused.

  • Groups are stored in your encrypted vault, like hosts.
  • The Hosts page shows each host’s address with the port and user it ends up with after inheritance, so you can check the result without opening the host.
  • Terminal themes fall back up the chain too: if a host’s theme was imported on another computer and isn’t here, the group’s theme is used instead.
  • Imported hosts arrive in a group called Imported from this computer or Imported from PuTTY. Rename it, move it inside another group, or move the hosts out and delete it.