Skip to content

crew: implement gemini, ollama, and anthropic-api backends #53

@jdidion

Description

@jdidion

The v0.2.0 backend architecture (#52) ships pluggable backends under `plugins/crew/tools/backends/`. So far only `cursor` is fully implemented; `codex` is a stub. Three more are planned.

Requested backends

`gemini`

  • CLI: `gemini` (Google's official CLI, if available), or a small wrapper around the Gemini REST API
  • Routed by: `gemini-*` models per the built-in prefix table
  • Auth: `GEMINI_API_KEY` env or config file
  • Blocker: verify the actual CLI name + batch-mode flag shape

`ollama`

  • CLI: `ollama run ""` (stdin not required; prompt as positional arg)
  • Routed by: `llama*`, `mistral*`, `qwen*`, `deepseek*`, `phi*` per the prefix table
  • Local-only, no auth
  • Nice-to-have: expose `--keep-alive` flag so repeated invocations reuse the loaded model

`anthropic-api`

  • Transport: direct `curl` / Python against `api.anthropic.com/v1/messages`
  • Routed by: `claude-*` models when `ANTHROPIC_API_KEY` is set
  • Only relevant if a user wants a Claude-via-API leg distinct from Claude-via-Bedrock (the `code-reviewer` agent path)

Contract each backend must honor

Same as `tools/backends/cursor`:

  • Accept `--prompt-file `, `--model `, `--workspace `, `--timeout `
  • Accept (and ignore) `--mode`, `--resume`, `--output-format` for cross-backend compatibility
  • Print `WORKDIR=` as the first stdout line
  • Write the final text response to `/reply.txt`
  • Exit 0 on success, 1 on backend error, 2 on argument error, 3 on auth error, 124 on timeout

See `plugins/crew/tools/backends/cursor` and `plugins/crew/tools/backends/codex` (stub) for reference implementations.

Registration

Each new backend needs:

  1. The script at `plugins/crew/tools/backends/` with `chmod +x`
  2. An entry in `BACKEND_BINARIES` in `plugins/crew/tools/resolve-backend` (just the required CLI binary name)
  3. A row added to the Backends table in `plugins/crew/README.md`
  4. A row added to the data-flow table in `plugins/crew/docs/security.md`

No change to `skills/review/SKILL.md` required — it already calls `resolve-backend` per model.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions