HappierDocs
Agents and models

Agent capabilities

What each coding agent can and cannot do inside Happier, generated from the agent manifest.

Happier drives coding agents; it does not replace them. What any given session can do is therefore the intersection of what Happier supports and what that agent's own CLI exposes — which is why these tables exist rather than one list of features.

Every table on this page is generated from the agent manifest in packages/agents, so it describes the build you are reading the docs for rather than the state of things whenever someone last updated a wiki page. A dash means the agent does not support that capability, not that Happier has not got to it yet.

3 of the 14 agents are marked Stable: Claude, Codex, OpenCode. The rest are Experimental — they work, and people use them daily, but their integration is younger and more likely to change. Availability of an agent is separate from availability of a feature; see Server feature flags for the latter.

Agents at a glance

AgentStart it withStatusModelsManaged install
Claudehappier claudeStableQueried from the agent, custom ids allowedVendor recipe
Codexhappier codexStableQueried from the agentVendor's own installer
OpenCodehappier opencodeStableQueried from the agent, custom ids allowedopencode-ai
Geminihappier geminiExperimentalQueried from the agent, custom ids allowed@google/gemini-cli
Auggiehappier auggieExperimentalQueried from the agent@augmentcode/auggie
Qwen Codehappier qwenExperimentalFixed list@qwen-code/qwen-code
Kimihappier kimiExperimentalQueried from the agentVendor recipe
Kilohappier kiloExperimentalQueried from the agent, custom ids allowed@kilocode/cli
Kirohappier kiroExperimentalFixed list, custom ids allowedVendor's own installer
Custom ACPhappier customAcpExperimentalQueried from the agent, custom ids allowedVendor recipe
Pihappier piExperimentalQueried from the agent, custom ids allowed@earendil-works/pi-coding-agent
Copilothappier copilotExperimentalQueried from the agent@github/copilot
Cursorhappier cursorExperimentalQueried from the agentVendor recipe
Grokhappier grokExperimentalQueried from the agentVendor recipe

Where the managed-install column names a package, Happier can install the agent for you from the machine's detail screen. Where it says the vendor's own installer, run that first — see the agent's own page for the exact command.

Custom ACP is not a bundled agent. It is how you point Happier at any agent that speaks the Agent Client Protocol, so its row describes the adapter rather than a particular vendor. See Custom ACP.

Several subcommands accept aliases, so the name you already have in your fingers usually works: codex also answers to codex-acp, codex-mcp, openai, gpt; opencode also answers to open-code; qwen also answers to qwen-code; kimi also answers to kimi-cli; kilo also answers to kilocode; kiro also answers to kiro-cli; customAcp also answers to custom-acp; pi also answers to pi-coding-agent; copilot also answers to github-copilot, copilot-cli; cursor also answers to cursor-agent; grok also answers to grok-build, grok-cli.

Sessions

Resume, browse, fork and roll back are the four things people most often assume work everywhere. They do not.

AgentResume its own sessionsFork a conversationFork from a messageRoll backDeclares session listing
ClaudeYesYes
CodexExperimentalYesYesYes
OpenCodeYesYesYesYes
GeminiYes
AuggieYes
Qwen CodeYes
KimiYes
KiloYes
KiroExperimental
Custom ACP
PiYes
CopilotYes
CursorExperimental
GrokExperimental

"Resume its own sessions" means Happier can reattach to a conversation the agent started outside Happier. "Fork" means the agent's own runtime can branch a conversation; where it cannot, Happier's replay fork still works, because that is Happier's own mechanism rather than the agent's. See Session forking.

The last column is a declaration rather than a gate — nothing currently reads it, so it does not decide whether you can browse an agent's own sessions. What you can actually browse and import is described in Continuing a session.

Running a turn

AgentSteer a running turnSession modesDedicated plan controlAccept edits
ClaudeYesAgent modes, built inYesYes
CodexPolicy presets, from the agent
OpenCodeAgent modes, from the agentYes
Gemini
Auggie
Qwen Code
Kimi
KiloAgent modes, from the agentYes
KiroAgent modes, from the agentYes
Custom ACPAgent modes, from the agentYes
PiYes
CopilotAgent modes, from the agentYes
CursorAgent modes, from the agentYes
GrokYes

Steering is what lets you add a correction to a turn already in flight instead of interrupting it. Where an agent cannot steer, Happier interrupts and resends, which is slower and loses less than it sounds — see Steering.

Session modes are not permission modes. Where the list comes from the agent, Happier shows whichever modes that build advertises for the session, so the choices can differ between versions and the Mode control is hidden when the runtime offers none. A dash under "Dedicated plan control" means Happier has no plan-specific affordance for that agent — not that the agent lacks a plan mode. Codex, for instance, reaches plan through the Mode control.

Media and tools

AgentPublishes generated mediaDeclares image inputDeclares native image generationHappier toolsConnected Services
ClaudeYesYesYes (native_mcp)claude-subscription, anthropic
CodexYesYesYesYes (native_mcp)openai-codex, openai
OpenCodeYesExperimentalYes (native_mcp)openai-codex, openai, claude-subscription, anthropic
GeminiYesYes (native_mcp)gemini
AuggieExperimentalExperimental
Qwen CodeYesExperimental
KimiYesExperimental
KiloYesExperimental
KiroYesExperimentalYes (native_mcp)
Custom ACPYesExperimentalYes (native_mcp)
PiExperimentalExperimentalopenai-codex, openai, claude-subscription, anthropic
CopilotYesExperimental
CursorYesYes
Grok

Two of these columns describe what an integration declares, not what Happier enforces, and the distinction matters if you are deciding whether to attach a screenshot.

Publishes generated media is behavioural: Happier reads it when wiring an agent's runtime, so an agent marked here really can put generated images into a session.

Declares image input and Declares native image generation are the integration's own statements about the agent, and no code path currently gates on either. In practice, an ACP-backed session attaches your trusted local images to the prompt regardless of what the manifest says — whether the agent then does anything useful with them is the agent's business, not Happier's. So treat a dash in those two columns as "not claimed", not "will be refused", and expect some declarations to lag the runtime.

Authentication

AgentWhere its credentials liveBackground auth checks
Claude~/.claude/.credentials.json or ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKENAutomatic
Codex~/.codex/auth.json or OPENAI_API_KEY, CODEX_API_KEYAutomatic
OpenCodeAgent-managedAutomatic
Gemini~/.gemini/oauth_creds.json or GEMINI_API_KEY, GOOGLE_API_KEYAutomatic
AuggieAgent-managedAutomatic
Qwen CodeAgent-managedAutomatic
KimiAgent-managedAutomatic
KiloAgent-managedAutomatic
KiroAgent-managedManual only
Custom ACPAgent-managedManual only
PiOPENAI_API_KEY, ANTHROPIC_API_KEYAutomatic
CopilotCOPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKENAutomatic
CursorCURSOR_API_KEYAutomatic
GrokXAI_API_KEYAutomatic

Agents whose background checks are manual only will not be re-probed on a timer; their status refreshes when you open the backend's settings screen or start a session. See Agent authentication.

On this page