Gemini
Gemini contacts run the gemini installed on your computer, with the same sign-in, settings.json, GEMINI.md, extensions and MCP servers.
Set it up. Install Gemini CLI (0.33 or newer) and sign in:
npm install -g @google/gemini-cli # or: brew install gemini-cli
gemini # choose "Sign in with Google"
To use an API key instead, get one from Google AI Studio, set GEMINI_API_KEY, run gemini and choose Use Gemini API key.
It isn't bundled. The app finds gemini on your PATH; set BUDDYLIST_GEMINI_CLI to use a different one.
Add a contact. Pick Gemini as the Service in Add a Contact.
You get the same windows as with Claude:
- streamed replies
- a line for each command, file read, file change, search and tool call
- Accept / Always allow / Decline invitations
- Nudge to stop
- conversations that pick up where they left off
- Gemini's own slash commands (
/memory,/init,/restore, …) in Activities
Gemini has its own Mode menu:
| Mode | Gemini asks before... |
|---|---|
| Ask before acting | changing files and running commands |
| Auto-accept file edits | running commands |
| Plan mode | nothing: it only reads, and writes a plan |
| Never ask | nothing. Only use it in folders you don't mind breaking |
Good to know:
- A new mode or model applies straight away.
- In a folder Gemini doesn't trust, it stays in Ask before acting or Plan mode, and says so. It also skips that folder's
.gemini/settings.json,.envandGEMINI.md. - Out of the box Gemini trusts none of the contacts' worktrees, in
~/.buddylist/worktrees. Keep it that way. A worktree's branch can be someone else's pull request, and in a folder it trusts Gemini starts the MCP servers and commands in the branch's.gemini/settings.jsonwithout asking. So don't trust~/.buddylist/worktreesor a folder above it, and don't turn folder trust off. - Always allow lasts until you quit the app or start a new chat.
- A message sent while Gemini is busy waits for its turn.
- Gemini leaves Plan mode with an ordinary invitation, not plan-approval buttons.
- Its thinking isn't shown, and it doesn't report what a reply cost.