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
Additional Command: list — Inspect active capabilities
agentloop list <capability> [options]
Capabilities:
tools All registered tools (built-in + MCP + custom)
agentprofiles All loaded agent profiles (built-in + user-defined)
skills All active skills (built-in + user-defined)
providers Configured LLM and search providers with their status
Options
--json Output as JSON array instead of table
--verbose Include full description, permissions, and source path for each entry
Examples
# List all registered tools
agentloop list tools
# List all agent profiles in machine-readable format
agentloop list agentprofiles --json
# List all active skills with full details
agentloop list skills --verbose
# List configured providers and their status (API key present, active, etc.)
agentloop list providers
Sample output: agentloop list tools
NAME PERMISSION SOURCE DESCRIPTION
─────────────────────────────────────────────────────────────────────
code-search safe built-in Search files by literal or regex pattern
file-read safe built-in Read a file from the workspace
file-write cautious built-in Write or overwrite a file
shell-run dangerous built-in Execute a shell command
web-search cautious built-in Search the web via configured provider
web-fetch cautious built-in Fetch a URL and return clean Markdown
plan safe built-in Generate a multi-step execution plan
run cautious built-in Execute a previously generated plan
git-branch cautious built-in Create or list git branches
my-custom-tool safe custom Loaded from TOOLS_DIR
gh-issues safe mcp GitHub MCP server — list/create issues
TYPE NAME STATUS NOTE
────────────────────────────────────────────────────────
llm mistral ✅ active MISTRAL_API_KEY set
search tavily ✅ active TAVILY_API_KEY set
search langsearch ⚠ inactive LANGSEARCH_API_KEY not set
search duckduckgo ✅ active no key required
search searxng ⚠ inactive SEARXNG_BASE_URL not set
Implementation Notes for list
Discovery: call ensureInitialized() to hydrate the registries, then read from:
toolRegistry.getAll() → tools
agentProfileRegistry.getAll() → agent profiles
skillRegistry.getAll() → skills
appConfig + env var presence checks → providers
Source tagging: each registry entry already carries metadata; add a source field ("built-in" | "custom" | "mcp") during loadFromDirectory() if not already present.
Table rendering: use a simple column-aligned padEnd() formatter — no extra dependency. --json outputs JSON.stringify(entries, null, 2).
Extensibility:list should accept any future capability noun (e.g. agentloop list prompts, agentloop list mcp-servers) — route unknown nouns to a "not yet supported" message rather than erroring hard.
Additional Acceptance Criteria
agentloop list tools prints a formatted table of all registered tools with name, permission level, source, and description
agentloop list agentprofiles prints all loaded agent profiles with name, source, active skills, and description
agentloop list skills prints all active skills with name, source, and description
agentloop list providers prints LLM and search provider status, indicating whether the required API key / URL is configured
--json flag outputs a JSON array for all list subcommands
--verbose flag includes full description, file path, and all metadata fields
Unknown capability nouns print a usage hint listing supported values and exit 1
Unit tests cover registry hydration and table/JSON formatting for each capability type
Here's the addendum text to append to the issue:
Additional Command:
list— Inspect active capabilitiesOptions
Examples
Sample output:
agentloop list toolsSample output:
agentloop list agentprofilesSample output:
agentloop list providersImplementation Notes for
listensureInitialized()to hydrate the registries, then read from:toolRegistry.getAll()→ toolsagentProfileRegistry.getAll()→ agent profilesskillRegistry.getAll()→ skillsappConfig+ env var presence checks → providerssourcefield ("built-in" | "custom" | "mcp") duringloadFromDirectory()if not already present.padEnd()formatter — no extra dependency.--jsonoutputsJSON.stringify(entries, null, 2).listshould accept any future capability noun (e.g.agentloop list prompts,agentloop list mcp-servers) — route unknown nouns to a "not yet supported" message rather than erroring hard.Additional Acceptance Criteria
agentloop list toolsprints a formatted table of all registered tools with name, permission level, source, and descriptionagentloop list agentprofilesprints all loaded agent profiles with name, source, active skills, and descriptionagentloop list skillsprints all active skills with name, source, and descriptionagentloop list providersprints LLM and search provider status, indicating whether the required API key / URL is configured--jsonflag outputs a JSON array for alllistsubcommands--verboseflag includes full description, file path, and all metadata fields1