diff --git a/CLAUDE.md b/CLAUDE.md
index e1ac653338..3dec141091 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -2,7 +2,7 @@
Paseo is a mobile app for monitoring and controlling your local AI coding agents from anywhere. Your dev environment, in your pocket. Connects directly to your actual development environment — your code stays on your machine.
-**Supported agents:** Claude Code, Codex, GitHub Copilot, OpenCode, Pi, Antigravity, and Muse Code.
+**Supported agents:** Claude Code, Codex, GitHub Copilot, OpenCode, Pi, Antigravity, Muse Code, and Hoplite.
## Repository map
diff --git a/README.md b/README.md
index aa0a841e7e..41c9a8393c 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@
-
One interface for Claude Code, Codex, Copilot, OpenCode, Pi, Antigravity, and Muse Code agents.
+
One interface for Claude Code, Codex, Copilot, OpenCode, Pi, Antigravity, Muse Code, and Hoplite agents.
@@ -42,7 +42,7 @@
Run agents in parallel on your own machines. Ship from your phone or your desk.
- **Self-hosted:** Agents run on your machine with your full dev environment. Use your tools, your configs, and your skills.
-- **Multi-provider:** Claude Code, Codex, Copilot, OpenCode, Pi, Antigravity, and Muse Code through the same interface. Pick the right model for each job.
+- **Multi-provider:** Claude Code, Codex, Copilot, OpenCode, Pi, Antigravity, Muse Code, and Hoplite through the same interface. Pick the right model for each job.
- **Voice control:** Dictate tasks or talk through problems in voice mode. Hands-free when you need it.
- **Cross-device:** iOS, Android, desktop, web, and CLI. Start work at your desk, check in from your phone, script it from the terminal.
- **Privacy-first:** Paseo doesn't have any telemetry, tracking, or forced log-ins.
@@ -69,6 +69,7 @@ You need at least one agent CLI installed and configured with your credentials:
- [OpenCode](https://github.com/anomalyco/opencode)
- [Pi](https://pi.dev)
- [Antigravity](https://paseo.sh/docs/supported-providers#antigravity)
+- [Hoplite](https://paseo.sh/docs/supported-providers#hoplite)
- [Muse Code](https://paseo.sh/docs/muse-code)
### Desktop app (recommended)
diff --git a/docs/providers.md b/docs/providers.md
index 47c39fd1a8..991de2bab1 100644
--- a/docs/providers.md
+++ b/docs/providers.md
@@ -6,7 +6,7 @@ server integrations.
## Plugin providers
Keep a bundled provider in `plugins//` and register it through
-`@getpaseo/plugin/server/provider`. Antigravity and Muse Code follow this pattern. Built-in loading and SDK
+`@getpaseo/plugin/server/provider`. Antigravity, Muse Code, and Hoplite follow this pattern. Built-in loading and SDK
import rules belong to [plugins.md](plugins.md#built-in-plugins); the
[public provider guide](../public-docs/plugins/providers.md) covers the provider contract.
@@ -19,6 +19,7 @@ provider icon map. You do not need a core manifest entry or provider factory.
| ----------- | ------------------------------------------ | ---------------------------------------------------------------- |
| Antigravity | Installed `agy` CLI | [Antigravity](../public-docs/supported-providers.md#antigravity) |
| Muse Code | MSP over one `muse serve` host per session | [Muse Code](../public-docs/muse-code.md) |
+| Hoplite | ACP shim over `hoplite acp` | [Hoplite](../public-docs/supported-providers.md#hoplite) |
## Provider-native session options
diff --git a/docs/qa-evidence/hoplite-provider/agent-dark.png b/docs/qa-evidence/hoplite-provider/agent-dark.png
new file mode 100644
index 0000000000..f39aedfa5f
Binary files /dev/null and b/docs/qa-evidence/hoplite-provider/agent-dark.png differ
diff --git a/docs/qa-evidence/hoplite-provider/agent-light.png b/docs/qa-evidence/hoplite-provider/agent-light.png
new file mode 100644
index 0000000000..ef0034702e
Binary files /dev/null and b/docs/qa-evidence/hoplite-provider/agent-light.png differ
diff --git a/docs/qa-evidence/hoplite-provider/new-agent-model-picker.png b/docs/qa-evidence/hoplite-provider/new-agent-model-picker.png
new file mode 100644
index 0000000000..6c69da5500
Binary files /dev/null and b/docs/qa-evidence/hoplite-provider/new-agent-model-picker.png differ
diff --git a/docs/qa-evidence/hoplite-provider/settings-available.png b/docs/qa-evidence/hoplite-provider/settings-available.png
new file mode 100644
index 0000000000..13e7149663
Binary files /dev/null and b/docs/qa-evidence/hoplite-provider/settings-available.png differ
diff --git a/docs/qa-evidence/hoplite-provider/settings-unlinked-directory.png b/docs/qa-evidence/hoplite-provider/settings-unlinked-directory.png
new file mode 100644
index 0000000000..2a9cfaa026
Binary files /dev/null and b/docs/qa-evidence/hoplite-provider/settings-unlinked-directory.png differ
diff --git a/packages/app/src/assets/acp-provider-icons.ts b/packages/app/src/assets/acp-provider-icons.ts
index 65f123cb3d..7fb0f3ad1c 100644
--- a/packages/app/src/assets/acp-provider-icons.ts
+++ b/packages/app/src/assets/acp-provider-icons.ts
@@ -48,6 +48,8 @@ export const ACP_PROVIDER_ICON_SVGS = {
goose:
'\n',
grok: '\n',
+ hoplite:
+ '\n',
junie:
'\n',
kilo: '\n',
diff --git a/packages/app/src/assets/acp-provider-icons/hoplite.svg b/packages/app/src/assets/acp-provider-icons/hoplite.svg
new file mode 100644
index 0000000000..8423442b67
--- /dev/null
+++ b/packages/app/src/assets/acp-provider-icons/hoplite.svg
@@ -0,0 +1,5 @@
+
diff --git a/packages/app/src/data/acp-provider-catalog.ts b/packages/app/src/data/acp-provider-catalog.ts
index 1fdb1c6f5d..c154c2fa78 100644
--- a/packages/app/src/data/acp-provider-catalog.ts
+++ b/packages/app/src/data/acp-provider-catalog.ts
@@ -238,6 +238,15 @@ const CATALOG_DATA = [
installLink: "https://hermes-agent.nousresearch.com/docs/user-guide/features/acp",
command: ["hermes", "acp"],
},
+ {
+ id: "hoplite",
+ title: "Hoplite",
+ description: "Hoplite's coding agent through the local hoplite acp bridge",
+ version: "manual",
+ iconId: "hoplite",
+ installLink: "https://hoplite.sh/docs/cli/acp",
+ command: ["hoplite", "acp"],
+ },
{
id: "junie",
title: "Junie",
diff --git a/packages/app/src/hooks/use-acp-provider-catalog.test.ts b/packages/app/src/hooks/use-acp-provider-catalog.test.ts
index 63e360aba0..c5b77f0f0d 100644
--- a/packages/app/src/hooks/use-acp-provider-catalog.test.ts
+++ b/packages/app/src/hooks/use-acp-provider-catalog.test.ts
@@ -44,6 +44,7 @@ describe("ACP provider catalog", () => {
expect(findProvider("codewhale").command).toEqual(["codewhale", "serve", "--acp"]);
expect(findProvider("devin").command).toEqual(["devin", "acp"]);
expect(findProvider("goose").command).toEqual(["goose", "acp"]);
+ expect(findProvider("hoplite").command).toEqual(["hoplite", "acp"]);
expect(findProvider("junie").command).toEqual(["junie", "--acp", "true"]);
expect(findProvider("kiro").command).toEqual(["kiro-cli", "acp"]);
expect(findProvider("poolside").command).toEqual(["pool", "acp"]);
@@ -59,6 +60,15 @@ describe("ACP provider catalog", () => {
expect(findProvider("minimax-code").iconSvg).toContain("