You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(cli): list remote agents for the mobile app - #15159
Refs #15133. The issue is fixed once this and the cloud PR ship.
What
Adds a list_agents remote-control command. It returns the agents a session can run as (not subagent-only, not hidden), resolved in a directory:
directory (relative, contained under the launch directory, resolved like create_session.directory) wins.
Otherwise a sessionId uses that session's directory.
Otherwise the launch directory.
The handler runs Agent.Service.list() inside that directory's instance, so project agents from .kilo/agents are included exactly as kilo agent list includes them.
Response: { protocolVersion: 1, agents: [{ name, displayName?, description? }] }, capped in count and string length.
Why
The mobile app's agent picker for a remote computer only knew the built-in modes and the cloud profile's agents. The remote protocol published models, slash commands and directories, but never agents, so project agents never reached the app.
Compatibility
Older CLIs answer unknown command: list_agents; the relay maps that to CLI_UPGRADE_REQUIRED and the app keeps its current list. The cloud side (relay allowlist, SDK helper, mobile picker) ships in a separate Kilo-Org/cloud PR.
The list_agents remote command is consistent with the existing list_models/create_session patterns: request validation rejects malformed versions and undecodable session IDs before dispatch, directory is resolved through the shared resolveUnderLaunch containment helper (rejecting escape/missing paths), and the async work runs inside the provided directory instance so project agents from .kilo/agents are resolved the same way kilo agent list resolves them. RemoteAgentCatalog.build filters subagent/hidden agents in line with the existing ACP/stream filtering conventions, truncates over-long descriptions, drops unfit names, and bounds the response count. No memory leaks, race conditions, or unhandled rejection paths introduced.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #15133. The issue is fixed once this and the cloud PR ship.
What
Adds a
list_agentsremote-control command. It returns the agents a session can run as (notsubagent-only, not hidden), resolved in a directory:directory(relative, contained under the launch directory, resolved likecreate_session.directory) wins.sessionIduses that session's directory.The handler runs
Agent.Service.list()inside that directory's instance, so project agents from.kilo/agentsare included exactly askilo agent listincludes them.Response:
{ protocolVersion: 1, agents: [{ name, displayName?, description? }] }, capped in count and string length.Why
The mobile app's agent picker for a remote computer only knew the built-in modes and the cloud profile's agents. The remote protocol published models, slash commands and directories, but never agents, so project agents never reached the app.
Compatibility
Older CLIs answer
unknown command: list_agents; the relay maps that toCLI_UPGRADE_REQUIREDand the app keeps its current list. The cloud side (relay allowlist, SDK helper, mobile picker) ships in a separate Kilo-Org/cloud PR.