Skip to content
Closed
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
33 changes: 33 additions & 0 deletions Dockerfile.copilot
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# --- Build stage ---
FROM rust:1-bookworm AS builder
WORKDIR /build
COPY Cargo.toml Cargo.lock ./
RUN mkdir src && echo 'fn main() {}' > src/main.rs && cargo build --release && rm -rf src
COPY src/ src/
RUN touch src/main.rs && cargo build --release

# --- Runtime stage ---
FROM node:22-bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/*

# Install GitHub Copilot CLI (native ACP support via --acp)
RUN npm install -g @github/copilot@1 --retry 3

# Install gh CLI (used by Copilot for GitHub integration)
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
-o /usr/share/keyrings/githubcli-archive-keyring.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
> /etc/apt/sources.list.d/github-cli.list && \
apt-get update && apt-get install -y --no-install-recommends gh && \
rm -rf /var/lib/apt/lists/*

ENV HOME=/home/node
WORKDIR /home/node

COPY --from=builder --chown=node:node /build/target/release/openab /usr/local/bin/openab

USER node
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
CMD pgrep -x openab || exit 1
ENTRYPOINT ["openab"]
CMD ["/etc/openab/config.toml"]
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ Supports Kiro CLI, Claude Code, Codex, Gemini, and any ACP-compatible CLI.
| `codex` | Codex | [@zed-industries/codex-acp](https://github.com/zed-industries/codex-acp) | `codex login --device-auth` |
| `claude` | Claude Code | [@agentclientprotocol/claude-agent-acp](https://github.com/agentclientprotocol/claude-agent-acp) | `claude setup-token` |
| `gemini` | Gemini CLI | Native `gemini --acp` | Google OAuth or `GEMINI_API_KEY` |
| `copilot` | GitHub Copilot CLI | Native `copilot --acp` | `gh auth login` (GitHub OAuth) |

### Helm Install (recommended)

Expand All @@ -116,6 +117,16 @@ helm install openab openab/openab \
--set agents.claude.command=claude-agent-acp \
--set agents.claude.workingDir=/home/node

# Copilot only (native --acp mode)
helm install openab openab/openab \
--set agents.kiro.enabled=false \
--set agents.copilot.discord.botToken="$DISCORD_BOT_TOKEN" \
--set-string 'agents.copilot.discord.allowedChannels[0]=YOUR_CHANNEL_ID' \
--set agents.copilot.image=ghcr.io/openabdev/openab-copilot:latest \
--set agents.copilot.command=copilot \
--set 'agents.copilot.args={--acp}' \
--set agents.copilot.workingDir=/home/node

# Multi-agent (kiro + claude in one release)
helm install openab openab/openab \
--set agents.kiro.discord.botToken="$KIRO_BOT_TOKEN" \
Expand Down Expand Up @@ -158,6 +169,12 @@ command = "gemini"
args = ["--acp"]
working_dir = "/home/node"
env = { GEMINI_API_KEY = "${GEMINI_API_KEY}" }

# GitHub Copilot (native ACP — requires copilot CLI in PATH)
[agent]
command = "copilot"
args = ["--acp"]
working_dir = "/home/node"
```

## Configuration Reference
Expand Down