Skip to content

phairoh/doom-agent-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

doom-agent-shell

A Doom Emacs module for agent-shell — interact with LLM coding agents (Claude, Gemini, Codex, Poolside, and more) from Emacs via the Agent Client Protocol (ACP).

Installation

Clone this repo into your Doom modules directory:

git clone https://github.com/phairoh/doom-agent-shell \
  ~/.config/doom/modules/tools/agent-shell

Enable the module in your init.el under :tools, with at least one provider flag:

:tools
(agent-shell +claude)   ; or +gemini, +codex, +goose, etc.

Run doom sync and restart Emacs.

Flags

The first provider flag sets the default agent. Additional flags only enable doom doctor checks for those providers.

FlagProvider
+claudeAnthropic Claude
+geminiGoogle Gemini CLI
+codexOpenAI Codex
+gooseGoose (Block)
+mistralMistral Vibe
+auggieAugment Code Auggie
+qwenQwen Code
+cursorCursor
+githubGitHub Copilot
+opencodeOpenCode
+poolPoolside pool

Prerequisites

Run doom doctor after installation to verify dependencies are detected.

+claude

  • claude CLI (Claude Code) — run it once outside Emacs to log in
  • claude-agent-acp:
    npm install -g @agentclientprotocol/claude-agent-acp
        

+gemini

+codex

  • codex-acp:
    npm install -g @zed-industries/codex-acp
        

+goose

+mistral

  • vibe-acp:
    uv tool install mistral-vibe
        

+auggie

  • auggie:
    npm install -g @augmentcode/auggie
        

+qwen

  • qwen:
    npm install -g @qwen-code/qwen-code@latest
        

+cursor

  • cursor-agent-acp:
    npm install -g @blowmage/cursor-agent-acp
        

+github

  • copilot CLI: install GitHub Copilot CLI

+opencode

+pool

  • pool CLI:
    curl -fsSL https://downloads.poolside.ai/pool/install.sh | sh
    pool login
        

Usage

Starting a shell

KeybindingDescription
SPC A aOpen or reuse an agent shell
SPC A nStart a new agent shell
SPC A tToggle agent shell window

Use C-u SPC A a to force the agent picker when a default is set.

Sending content

KeybindingDescription
SPC A sSend region or error at point to shell
SPC A fSend current file to shell
SPC A cCompose a multi-line prompt
SPC A iPaste clipboard image into shell

Inside the shell

KeybindingDescription
RETSubmit prompt (normal mode)
RETInsert newline (insert mode)
C-c C-cInterrupt current agent operation
TAB / S-TABNavigate interactive elements
C-<tab>Cycle session mode
C-c C-oSwitch between shell and viewport

Evil notes

  • Normal mode RET submits the prompt.
  • Insert mode RET inserts a newline (use normal mode RET to send).
  • Diff buffers (*agent-shell-diff*) open in Emacs state so y/n/p/q pass through directly. Press C-z to enter evil if needed.

Configuration

Authentication is handled by each provider’s CLI (run claude login, pool login, etc. outside Emacs first). For API key based providers, set authentication in your private config.el:

;; Claude — API key instead of subscription login
(setq agent-shell-anthropic-authentication
      (agent-shell-anthropic-make-authentication :api-key "your-key-here"))

;; Gemini — API key
(setq agent-shell-google-authentication
      (agent-shell-google-make-authentication :api-key "your-key-here"))

See agent-shell for full authentication documentation for each provider.

Poolside pool

This module includes agent-shell-pool.el, a provider extension for Poolside’s pool CLI. Pool is ACP-compatible and handles authentication via pool login. It is not part of the upstream agent-shell package.

About

Doom Emacs module for agent-shell — LLM coding agents via ACP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors