Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 10 additions & 22 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,41 +1,29 @@
[package]
name = "animus-provider-gemini"
version = "0.2.6"
version = "0.3.0"
edition = "2021"
license = "MIT"
description = "Google Gemini CLI provider plugin for Animus"
description = "Google Gemini provider plugin for Animus (drives the Gemini CLI over ACP)"
repository = "https://github.com/launchapp-dev/animus-provider-gemini"
homepage = "https://github.com/launchapp-dev/animus-cli"
readme = "README.md"
default-run = "animus-provider-gemini"

[lib]
name = "animus_provider_gemini"
path = "src/lib.rs"

[[bin]]
name = "animus-provider-gemini"
path = "src/main.rs"

[dependencies]
animus-plugin-protocol = { git = "https://github.com/launchapp-dev/animus-protocol", tag = "v0.1.13.5" }
animus-provider-protocol = { git = "https://github.com/launchapp-dev/animus-protocol", tag = "v0.1.13.5" }
animus-plugin-runtime = { git = "https://github.com/launchapp-dev/animus-protocol", tag = "v0.1.13.5" }
animus-session-backend = { git = "https://github.com/launchapp-dev/animus-protocol", tag = "v0.1.13.5" }

serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Reuse the shared ACP client. This plugin is a thin wrapper that pins the
# harness to `gemini --acp` and advertises provider_tool = "gemini", so the
# kernel routes Gemini models here while ACP stays an internal transport detail.
animus-provider-acp = { git = "https://github.com/launchapp-dev/animus-provider-acp", tag = "v0.1.1" }

tokio = { version = "1", features = ["rt-multi-thread", "macros", "io-util", "process", "sync", "time"] }
async-trait = "0.1"
futures = "0.3"
animus-plugin-protocol = { git = "https://github.com/launchapp-dev/animus-protocol", tag = "v0.1.17" }
animus-plugin-runtime = { git = "https://github.com/launchapp-dev/animus-protocol", tag = "v0.1.17" }

serde_json = "1"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
anyhow = "1"
thiserror = "1"

tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

[dev-dependencies]
tempfile = "3"
tokio = { version = "1", features = ["test-util", "macros", "rt-multi-thread"] }
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

A [Google Gemini CLI](https://github.com/google-gemini/gemini-cli) provider plugin for [Animus](https://github.com/launchapp-dev/animus-cli).

> **Status:** Under construction — landing in Animus v0.4.x. This crate currently lives in the Animus core workspace at `crates/animus-provider-gemini/`; v0.4.x extracts it to this standalone repository.

## What this is

Animus v0.4.0 makes providers (LLM CLI wrappers) pluggable. This repository will ship `animus-provider-gemini`, a stdio plugin that wraps Google's Gemini CLI as an Animus provider. Any workflow phase that targets `tool: gemini` dispatches through this plugin.
A stdio provider plugin that exposes Google's Gemini CLI as an Animus provider. Any workflow phase that targets `tool: gemini` dispatches through this plugin.

As of v0.3.0 it drives the Gemini CLI over the **Agent Client Protocol (ACP)** — `gemini --acp` — rather than scraping stdout. It is a thin wrapper over the shared ACP client ([`animus-provider-acp`](https://github.com/launchapp-dev/animus-provider-acp)), pinned to the Gemini harness and advertising `provider_tool = "gemini"`. This gives structured streaming + tool events and a **native permission callback**, with every tool call gated through `animus agent approve-hook`. ACP is an internal transport detail; the kernel still routes Gemini models to `tool: gemini` exactly as before.

## Install (planned)

Expand Down
Loading
Loading