Teams
Last updated: 2026-10-29
A team is a group of hosts you share with other people. Everyone you invite sees the group and its hosts in their own SpectaShell and connects to them, and one let in on the same account as you can watch a shell you run there. There is no team account to make and no server: a team is your group, shared through iCloud with the people you name, and who may log in to a host is still decided by the host.
What you need#
- iCloud sync on, on your device and on each member's (see Syncing through iCloud). With sync off, the team actions are not offered.
- A group of your own. A cloud's group cannot be shared: its hosts are listed again from the cloud account, which the team does not have.
- Each person invited uses SpectaShell with their own Apple Account.
Sharing a group#
- Open the group's page: on the Mac and the iPad, choose the group on the Hosts page; on the iPhone, tap it in the Hosts tab.
- Choose Share…. On the iPhone it is in the menu at the top right of the group's page.
- The sheet Share group says what the team gets, and what a member you let in on a host can do there (see What a member can do on a host). Read it.
- Choose Invite People…. The system's share sheet opens: pick people by email address or phone number, choose for each whether they may make changes or only view, and send the invitation by Messages, Mail or another way.
Only the people you invite can open the invitation; someone else given the link cannot join. The group is shared only once you pick how to send the invitation: a sheet you close before that shares nothing.
When the invited person opens the link, SpectaShell opens and the group appears on their Hosts page, with its hosts. If it cannot be taken, they see "The invitation could not be opened" with the reason.
Who it is shared with#
Under the group's name, its page says who has it:
- To you, the owner: "Shared with Felix, Mina", with "(invited)" after anyone who has not accepted yet, or "Shared · no one has joined yet".
- To a member: "Kennt Kim's team", and "· view only" when they may only view it.
On the Hosts page, the group says "· shared" after its number of hosts, and each of its hosts, wherever its card or row is, carries the team's mark: two people and the group's name. Hold the pointer over it on the Mac to read whose team it is, and "view only" when you may not change it.
When anyone with the link may join#
The system's share sheet lets the owner choose to allow anyone with the link, although SpectaShell asks for invited people only. If you choose that, the group's page warns you — "Anyone with the link can join this group and see its hosts." — and the Hosts page says "· link open" after its number of hosts. Manage Sharing… sets it back to the people you invite.
Roles#
For each person, the owner chooses one of two roles:
- Someone who may make changes adds hosts to the group, edits and removes its hosts, moves hosts in and out, and changes the group with Edit Group…. They can let teammates log in to a host with Who May Log In….
- Someone who may only view sees the group and its hosts, connects to them and opens shells, but changes nothing: Edit… is dimmed for its hosts, and nothing can be moved in or out.
Only the owner deletes the group, which ends the team. A role is about the group in SpectaShell only: what a person may do on a host depends on the host's account they log in as.
What a team shares#
A team shares the group and its hosts. A host moved into the group joins the team; moved out, it leaves it.
It does not share:
- Keys or passwords. Each person logs in with their own device's key, let in host by host (see Letting people log in to a host).
- Trusted host keys. Each person's device checks a host's key itself, the first time it connects (see Security and privacy).
- Snippets, triggers, port forwards and favourite folders, nor the choice of keeping shells running on a host: these stay each person's own. Snippets for a team are not in this release.
A team's host saved with no user stays without one: each person logs in as their own user, and a first login does not write one in for everyone.
Managing a team#
On the group's page, the owner has:
- Manage Sharing…: the sheet Sharing group, then Manage People…, the system's sheet for the people in the team. Invite more, change someone's role, or remove someone there.
- Stop Sharing…: asks Stop sharing group?; Stop Sharing ends the team. The people it was shared with lose the group and its hosts. It stays yours.
A member has:
- Leave Team…: asks Leave group?; Leave takes the group and its hosts off your devices. Whoever shares it can invite you again.
- Send My Key…, for a member who may only view (see A member who may only view).
On the iPhone these are in the menu at the top right of the group's page.
Someone removed from the team, or every member of a team that ended, loses the group and its hosts on all their devices. Their port forwards, favourite folders and snippets stay theirs.
Letting people log in to a host#
Sharing a host does not let anyone log in to it. Each person logs in with their own device's key, and the key has to be in the authorized_keys of the host's account. On a team's host someone else shares, SpectaShell does not offer a member's key after a password login, as it does on their own hosts (see A team's host gets no key by itself). Someone who logs in there already lets them in with Who May Log In….
Who May Log In… is in a team's host's menu (on the iPhone, touch and hold the host), for the owner and for members who may make changes.
- The sheet first asks the host whose keys it holds, over your own login there: "Asking host whose keys it holds…". It may ask for Face ID, Touch ID or your device's password, as any login does.
- It lists each member's device whose key the team holds, with the person's name, the device's name and the key's fingerprint, and a switch: on when the host lets that device in now.
- Turn the switches on for the devices to let in, and off for those to let out.
- When you save lists every key saving adds or removes, each with its fingerprint. Before you let a key in, compare its fingerprint with the one on the person's device, on their Keys page.
- Choose Save. Saving changes that account's
authorized_keyson the host.
A member who may make changes publishes their device's key in the team by itself, when their device opens the team. One who may only view cannot, and sends it instead (see A member who may only view).
The sheet also shows:
- Its key changed since it was let in, under a device whose line on the host holds a different key from the one it publishes now, with the fingerprint the host holds. Saving puts the new key in place of the old: make sure the person made it anew before you save.
- Its key is on the host already, in a line not put on for group. That device is left as it is: nothing on the sheet changes it.
- Also on the host: lines put on for this group that belong to no device above — someone no longer in the team, a device no longer theirs, or a key someone sent. Those switched off go when you save.
- Not offered: keys iCloud cannot confirm are their devices' own, because someone else changed them or the person who published them is no longer in the team. They are shown, never offered.
A member let in also gets their device's listing key, which the host lets do nothing but list its kept shells. Their Running then shows that host's shells without a connection of its own (see The listing key).
What the sheet changes, and what it never does#
Each line it puts on names the team, the person and the device, such as SpectaShell team GPU Lab: Felix Kim on Felix's iPad, followed by tags that the sheet reads back from the host. So what you see is what the host holds now, not what a record says.
- It takes off only lines it put on for this team. Never your own key, a key added by hand, or a line of another team.
- Switching a device off takes its lines off. A person with no device left on loses every line of theirs for this team, even one put on since the sheet read the host.
- No one else's key changes.
A member who may only view#
A member who may only view cannot publish their key in the team. On the group's page they choose Send My Key…, which sends their device's key by Messages, Mail or another way, with a note to paste it into Who May Log In….
Whoever lets them in pastes it under A key someone sent you in Who May Log In… and saves. "This is not a public key." means what was pasted is not one. A key sent this way is the login key only: their listing key is not put on.
What a member can do on a host#
The sheets that share a group and let people in say it in amber, and it is the rule of this release:
A member you let in on a host logs in as that host's account: they can see and control every shell of that account there, yours too, and do anything the account may.
A member let in on an account has everything that account has: its files and its ~/.ssh, every shell kept there with its last lines, and the keyboard of any of them. SpectaShell does not hide your shells from them, since hiding would look like a protection and be none.
To keep people apart, give each person an account of their own on the host, and let each in on their own account only.
Watching a teammate's shell#
A member who logs in to the same account sees its kept shells in Running, yours among them. They can Watch one: they see the shell as you type in it, at your size, scaled down to fit their screen. Take Keyboard takes the keyboard from you. See Watching a shell.
A teammate can watch only shells of an account they log in to: a shell's keeper is reachable by its own account alone.
A team's host gets no key by itself#
On the account of a host in a team someone else shares with you, SpectaShell changes no key by itself:
- After a password login, it does not offer to add your device key there.
- It puts no listing key there.
Who may log in there is the owner's to say, with Who May Log In…. The same account reached under another name — an alias of ~/.ssh/config, a saved host of your own — is left alone too.
The one exception is a key of one of your own devices that you took off your hosts: it comes off there too, at the next login of any of your devices (see A lost or sold device).
Until SpectaShell has read iCloud after it starts, it puts no key on any host at all, so a device that has not yet heard of a team you joined never writes to a teammate's account (see Keys wait for iCloud).
Good to know#
- The team's owner appears by name to members once iCloud names them; until then the group says "A team".
- A team needs SpectaShell with iCloud sync on for everyone in it. With sync off, the team's group is not updated, and the team actions are not offered.
- A member who may only view can still open shells on the team's hosts, as far as the hosts let them in.
- Sharing a group shares names and addresses, not access: without a key let in, or a password, no one logs in to your hosts.