/kick — Remove a paired peer (host only)
Run this yourself — don't ask the user.
Execute
airc kick <peer-name> [optional reason]
If you're the host of the room: drops the peer's SSH key from ~/.ssh/authorized_keys, deletes peers/<name>.json + .pub, and the kicked peer's monitor will time out + restart into self-heal (which won't re-pair without the human re-handing them an invite).
If you're a joiner (not host): kick refuses with a helpful error. Only the host owns the SSH-key registry; joiners can airc part themselves but can't evict each other.
When to use
- Peer's behavior is wrong and you need them gone (compromised credentials, stuck process spamming the room, etc.).
- Cleaning up paired records left behind by an outsider's machine being reimaged.
- Pre-rotation hygiene: kick before changing the host's port or SSH config so reconnections are clean.
What kick does NOT do
- Doesn't touch the kicked peer's local state. Their config still says they're paired with you; they just can't reach you over SSH any more.
- Doesn't broadcast a "kicked" event in the room (current behavior; an explicit broadcast was discussed in early kick PRs but the host-side notice was felt to be enough).
- Doesn't permanently ban — if you re-hand them an invite, they can re-pair. (That's a feature, not a bug — banning is a UX layer above kick.)
Notes
- Kick refuses path-traversal in peer name (
../../fooand similar). Validated before any filesystem op. - The
[reason]arg is currently informational only — printed by the command, not sent to the kicked peer (they're already off the wire by the time the message would arrive). - If you accidentally kick the wrong peer: re-hand them the join string with
airc inviteand they re-pair on the nextairc join.