Agent and terminal tools create new Solo-managed processes, help MCP sessions identify the caller, and manage the agent tools that agents launch from.
Tools
list_agent_tools— List enabled configured agent runtimes. Use each returnedidasagent_tool_idforspawn_agentorspawn_process.spawn_agent— Preferred tool for creating a new Solo agent. Requiresagent_tool_idfromlist_agent_tools; returnsprocess_id,name, and optionalagent_instructions.spawn_process— Generic create-and-start tool. Usekind: "terminal"for an interactive shell orkind: "agent"with anagent_tool_id; preferspawn_agentfor agent-only calls.identify_session— Identify this MCP session to Solo. With no arguments, auto-detect and report the current identity.whoami— Show how Solo identified this caller's process, actor, and effective project scope.
Spawning agents
Both spawn tools accept these agent options:
agent_tool_installation_id— The environment-specific installation of the agent tool to launch. Preferred overagent_tool_idalone when project-scoped agent discovery returns installations.name— Custom name for the spawned process; omitted names are auto-generated.extra_args— Per-launch arguments appended to the resolved agent command without changing the saved agent tool defaults.include_agent_instructions— Include bootstrap instructions in the response. Defaults to true.
If you pass both agent_tool_id and agent_tool_installation_id, they must refer to the same agent tool; otherwise the call is rejected.
By default, spawning an agent includes agent_instructions: a Solo orchestration preamble with the new process ID, project, and MCP tool hints. Set include_agent_instructions: false to omit them. When included, prepend them to the agent's first prompt, then send that prompt with send_input(process_id=..., input=...).
Spawning never changes the caller's own identity. Pass project_id to spawn into a different project without changing the session's default scope.
Managing agent tools
These tools manage the global agent tool configurations shown in Settings > Agents > Agent tools:
list_agent_tool_configs— List full agent tool configurations. Disabled tools are included unless you passincludeDisabled: false. Unlikelist_agent_tools, which returns only enabled runtimes for spawning, this returns every editable field.get_agent_tool— Read one configuration byid.create_agent_tool— Add an agent tool from a requirednameandcommand. Optional fields aredefaultArgs(default empty),icon(defaultterminal),toolTypeMode(auto, the default, detects the agent type;manualrequiresmanualToolType),headlessCmd,promptMode(stdin, the default, orarg), andenabled(defaulttrue).update_agent_tool— Patch fields with{"id": 42, "patch": {...}}. Omitted fields are preserved, andheadlessCmd: nullclears the headless command. Changing the command or type clears the saved resume IDs of agents that use it.delete_agent_tool— Delete a configuration byid. It's idempotent, detaches processes that used it, and leaves those processes running.set_agent_tool_enabled— Enable or disable an agent tool byid. This affects future launches only; running agents keep going.list_agent_tool_installations— List detected installations of each agent tool with their cached health.refresh_agent_tool_installation_health— Re-check installations and refresh their health, like Refresh health in Settings.
The same operations are available through the HTTP API and the solo agents CLI commands.
Session identity
Solo-managed agents are normally identified automatically. Use whoami to check the current identity, and call identify_session only if whoami cannot identify the session. identify_session has three modes:
- Auto-detect — Call with no arguments to detect and report the current identity. An optional
pid(the caller's host OS PID) helps detection when nothing else matches. - Self-assertion — Pass
solo_process_idwith this client's own value from theSOLO_PROCESS_IDenvironment variable, only when auto-identification failed. This is a Solo-managed process ID, not a host OS PID. - External registration — Pass
externalwith a displayname(plus optionalagent_idandmetadata) when the caller runs outside Solo but needs an actor identity for coordination features like locks, todos, and scratchpads.
Never use identify_session to target another process. Use project_id parameters for project scope and delivery_process_id for timer delivery.
Notes
Use spawn_agent or spawn_process for new work. Use start_process or restart_process from Process tools for existing Solo process entries, and close_process to remove stored terminals and agents.
Identification lets Solo associate timers, locks, todos, scratchpad activity, and process cleanup with the correct Solo process. Use whoami to confirm what Solo already knows about the session.