driving fleet from an agent
Letting a session open, read and steer the other sessions in Fleet.
The fleet plugin carries an MCP server as well as the status hooks, so an
agent running inside Fleet can act on Fleet itself: open a session for a
separate task, look at what the others are doing, file them into groups, launch
a saved profile, change a setting. Claude Code, Codex and Antigravity all get
it.
It arrives with the rest of the integration — see AI enhancements for setup. Nothing else to install.
The two switches
Both live under Settings (⌘,) → Claude Code integration, and both govern every agent rather than only Claude.
| Switch | Default | What it allows |
|---|---|---|
| Let agents control Fleet | On | Everything below except typing |
| Let agents type into sessions | Off | send_input — keystrokes into another session |
Typing is separate because it is one agent driving another: the session receives the keystrokes as if you had typed them, including a Return that answers a permission prompt. Turning the first switch off disables the second.
What a session can do
| Tool | What it does |
|---|---|
list_sessions |
Every row, and what each one is doing |
read_session |
The scrollback of one session |
new_session |
Open one, optionally in a folder and with a starting prompt |
focus_session |
Bring one to the front |
close_session |
Close one — refused, by name, if something is running in it, unless forced |
update_session |
Rename, recolour, move between groups, mute |
send_input |
Type into a session |
list_groups, manage_group |
Read and change the sidebar’s groups |
list_profiles, manage_profile, launch_profile |
Read, edit and start launch profiles |
get_settings, set_setting |
Read and change settings |
fleet_status |
Version, session counts, update state, Claude Code integration health |
check_for_updates |
Ask the updater to look now |
Fleet also installs a skill for each agent that says when to reach for any of
this — so “open a session for this and get it started on the migration”
works without naming a tool. Claude Code gets /new-session and /sessions as
slash commands besides.
What it cannot do
set_setting takes an allowlist. Let agents control Fleet, Let agents
type into sessions and the privacy setting are outside it. A tool that can
widen its own permissions has none, and one that can switch off the reporting of
what it did has less than that.
Closing goes through the same path as closing a session yourself, so a session
with a command still running is refused rather than killed — and the refusal
names what is running, since nobody is looking at a dialog. Only asking again
with force closes it anyway.
How it connects
Fleet listens on a Unix domain socket at control.sock inside its own
configuration directory, mode 0600. There is no port and no token: the
directory is 0700, and file permissions are the whole of the access control.
A loopback TCP port would raise the “accept incoming connections” dialog on
every launch and would be reachable by anything else on the machine.
Every session Fleet starts gets FLEET_CONTROL_SOCKET in its environment, so a
session drives the Fleet that started it rather than another copy.
Something here wrong or missing? help@fleet-terminal.app.