ACE - LLM Providers CLI

CLI-backed provider adapters that extend ace-llm with local tool execution. ACE Logo

Gem Version Ruby License: MIT

Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.

ace-llm Usage Guide | ace-llm Handbook | Part of ACE

ace-llm-providers-cli extends ace-llm with provider clients that execute through installed CLI tools (Claude, Codex, OpenCode, Gemini, pi, Codex OSS) while preserving the shared command interface. Provider defaults live in versioned YAML, and a health-check command verifies local readiness.

This package intentionally does not ship a package-local docs/ directory. Public usage and operator guidance live in the shared ace-llm Usage Guide, while ace-llm-providers-cli-check --help remains the authoritative runtime help surface for local readiness checks.

How It Works

  1. The gem registers CLI provider clients on require, making them available to ace-llm automatically.
  2. Provider defaults are read from .ace-defaults/llm/providers/*.yml and can be overridden through the ace-support-config cascade.
  3. When ace-llm routes a model call, the matching CLI adapter executes a subprocess command and returns a normalized response.

Use Cases

Use CLI-native providers through one surface - run prompts against Claude, Codex, OpenCode, Gemini, pi, and Codex OSS via ace-llm without changing calling conventions.

Keep provider configuration in versioned YAML - tune model behavior and provider settings through ace-support-config instead of custom glue code.

Diagnose local provider readiness - run ace-llm-providers-cli-check to verify that CLI tools are installed, authenticated, and reachable before starting work.

Testing

  • ace-test ace-llm-providers-cli runs deterministic fast coverage from test/fast/.
  • ace-test ace-llm-providers-cli feat runs deterministic feature coverage from test/feat/.
  • ace-test ace-llm-providers-cli all runs fast + feat deterministic coverage.
  • ace-test-e2e ace-llm-providers-cli runs retained workflow scenarios from test/e2e/.
  • E2E provider-discovery scenarios avoid helper interception: the no-tools path uses a baseline PATH (/usr/bin:/bin), and success-path stubs are kept as text scripts in a dedicated sandbox stub directory.

The package no longer uses legacy test/integration naming and does not use ace-test ace-llm-providers-cli e2e as a deterministic test path.