Skip to content

v0.2.1

Choose a tag to compare

@ScottRBK ScottRBK released this 02 Aug 17:19
· 33 commits to main since this release

Model discovery

AgentShell can now ask every supported CLI which models it currently advertises:

models = await shell.list_models(cwd="/path/to/project")
response = await shell.execute(
    cwd="/path/to/project",
    prompt="Review this project",
    model=models[0],
)

The returned strings are passed unchanged to execute(model=...) and stream(model=...).
Discovery is account/workspace-aware, sends no inference prompt, imports no harness SDK, and
uses no static fallback catalog.

Supported discovery paths:

  • Claude Code stream-JSON initialization
  • opencode models
  • Copilot CLI headless JSON-RPC
  • codex debug models
  • pi --no-approve --list-models
  • cursor-agent models

Reliability

  • Added timeout, cancellation, malformed-output, and UTF-8 error handling.
  • Discovery subprocesses use an isolated live process-group sentinel, preventing both leaked
    descendants and signalling through a reaped/reused CLI PID.
  • Pi selectors are provider-qualified so duplicate model IDs remain unambiguous.
  • Harness ordering and aliases such as auto and default are preserved.

Documentation and tests

  • Updated the README, AgentShell skill, architecture notes, and agent parameter comparison.
  • Added parser, integration, process-lifecycle, selector pass-through, and real-CLI E2E tests.
  • 726 unit/integration tests pass, all six model-discovery E2Es pass, and the full local E2E
    suite was verified before release.