Skip to main content
What’s New β†’
This project has moved from spring-ai-community/agent-client to markpollack/agent-client. The Maven groupId changed from org.springaicommunity.agents to io.github.markpollack.
Portable Java API for autonomous CLI agents. No Spring Boot required β€” build a model, create a client, run a goal. Optional Spring Boot starters for auto-configuration. Agent Client is the bridge between raw SDK calls (Claude Agent SDK) and higher-level orchestration (Agent Workflow). Version 0.29.3 β€” Maven Central 0.29.0: Provider trajectories through the facade. Grok, Codex, and Antigravity now publish their parsed run trajectory through AgentClientResponse.getPhaseCapture(), matching the Claude facade contract β€” Grok from its native streaming-json ACP stream, Antigravity from stream-json, and Codex by harvesting its durable rollout JSONL after execution. Live facade gates verify all three return a capture containing tool uses. The adapters consume the released Agent Journal 1.8.0 capture modules, so agent-model and the production surface of agent-client-core take on no journal dependency. LOOSE-mode Codex execution is repaired: full-auto now maps to the global --sandbox workspace-write and --ask-for-approval never options and no longer implicitly grants full-disk access. All 29 modules are published, agent-tck included. 0.28.0: Two new CLI providers. agent-grok / grok-cli-sdk / agent-starter-grok for Grok, whose headless JSON envelope yields a read rather than scraped session id, token usage, and per-run USD cost, and whose caller-supplied session UUID makes resume possible without recovering an id from output. agent-antigravity / antigravity-cli-sdk / agent-starter-antigravity for Google’s agy, which declares its working directory with --add-dir so the CLI cannot divert writes to a shared scratch directory while reporting success, and derives run success from whether work was produced and nothing refused rather than from a status field that reports ERROR on complete and correct responses. Both join the parity TCK and pass all ten scenarios against live CLIs. 0.27.0: Published-consumer correction. Direct Jackson and Log4j declarations now survive flattened child POMs, a generated no-parent/no-BOM gate verifies all 23 public runtime modules, and the compatible Claude SDK 1.5.0, Agent Journal/Capture 1.7.0, and Agent Sandbox Core 0.10.0 train is adopted. Current source/archive licensing is aligned with the Mark Pollack BSL distribution and retained Apache history. 0.26.0: Breaking diligence cleanup. Removes the abandoned Vendir context advisor and Git-repository DSL, retires the stale agents-runtime container build and Docker TCK, and pins release automation. Claude Code, Codex, and Gemini CLI are the actively verified provider set; other adapters remain experimental. Its immutable Maven Central child POMs do not preserve all reviewed dependency floors; use 0.27.0 for the published-consumer correction. 0.25.0: Fixes Spring Boot auto-configuration for all providers β€” the org migration had left the auto-config registration files pointing at the old org.springaicommunity package, so the starters failed to auto-configure (ClassNotFoundException) at boot. No public API changes. 0.24.0: Compatibility fix β€” agent-claude now builds against agent-journal 1.6.0, restoring Claude trace-wiring for Spring Boot consumers on agentworks-bom 1.12.0+ (journal 1.5.0 had relocated TraceContentMode). No public API changes. 0.23.0 highlights: Upgraded to Spring AI 2.0.0 GA on Spring Boot 4.0.7, clearing transitive Boot and Spring AI CVEs. Spring AI 2.0 moves to Jackson 3, so Jackson 2 usage is now declared explicitly. Default Gemini model is now gemini-3.5-flash. Still current from 0.21.0: portable reasoning effort (low/medium/high) via AgentOptions.getEffort(), with provider-native overrides for Claude (--effort, up to max) and Codex (model_reasoning_effort, up to xhigh). Dependency: claude-code-sdk 1.4.0.

Architecture

Three layers, each usable independently:

Providers

Claude Code, Codex, Gemini CLI, Grok, and Antigravity all pass the provider parity TCK β€” ten scenarios each, zero skips, against live CLIs. CI re-verifies Claude Code, Codex, and Gemini on every commit; Grok and Antigravity are verified against live CLIs but cannot run in CI, because both authenticate interactively and cache credentials rather than reading an API key. Amazon Q, Amp, Qwen Code, and SWE-agent carry no parity coverage and remain experimental. Provider selection happens at construction time β€” everything after AgentClient.create(model) uses the shared client contract.

LOOSE / STRICT Modes

AgentClientMode controls default permissiveness. LOOSE (default) bypasses sandbox restrictions and git checks for frictionless evaluation. STRICT requires explicit opt-in.

Documentation

Getting Started

Plain Java quick start β€” create your first agent task

Tutorial

Step-by-step lessons from first task to multi-provider

Claude Reference

18 configuration options, trace files, authentication

Portable Options

Configuration precedence, LOOSE/STRICT modes

Source

GitHub

Source code, examples, and getting started guide

Agent Sandbox

Isolated execution β€” local, Docker, or E2B cloud

Agent Workflow

Uses Agent Client for ClaudeStep and AgentClientStep