Kilo (experimental)
Configure Kilo Code in Happier (ACP), including install, auth, resume, tool support, and permission behavior.
This page documents how Happier integrates with Kilo Code as an ACP-backed provider.
What Happier runs
Happier spawns the local Kilo Code CLI (kilo / kilocode) and talks to it via ACP (kilo acp / kilocode acp).
That means:
- Kilo runs on your machine (Happier does not proxy your code to a hosted agent).
- Kilo uses your normal Kilo configuration, including models/providers you’ve configured in Kilo.
Install Kilo Code
Install Kilo Code on your machine, then restart Happier:
npm install -g @kilocode/cli@latest
kilocode --versionIf you use hstack, you can install Kilo with the providers installer:
hstack providers install kilo
kilocode --versionSee Kilo’s CLI docs for the latest install and usage details:
Authenticate (API key vs “already logged in”)
Happier does not require an API key if Kilo is already authenticated on your machine.
- If you have an API key workflow, set it up in Kilo (or via environment variables supported by Kilo).
- If you use an interactive login/subscription flow, log into Kilo once, then Happier can reuse that local auth state.
Kilo’s auth commands live under:
kilocode auth --helpEnable Kilo in Happier (experimental)
Kilo is behind Happier’s experimental providers rollout.
In the app:
- Settings
- AI provider settings
- Kilo (experimental)
Features supported in Happier
Tool calls (ACP)
In real ACP runs, Kilo consistently surfaces a core tool set that Happier fully traces + normalizes:
- Execute → canonicalized to Bash
- Read
- Edit / Write
- Search → canonicalized to CodeSearch (including “glob-like” patterns)
- Task (sub-agent / child task)
- MCP tool calls (for example Happier’s
change_title)
Happier records Kilo’s original tool name as _happier.rawToolName and also assigns a _happier.canonicalToolName so downstream rendering and schema validation are stable.
Resume / session attach
If Kilo’s ACP implementation reports session load support, Happier stores a kiloSessionId in session metadata and can resume the Kilo session on a later attach.
Kilo CLI features that still apply
Because Happier runs the real Kilo CLI, Kilo’s own “project-level” features still matter, including:
- Kilo configuration files (for example
~/.kilocode/config.json) - Skills and project conventions (for example
.kilocode/skills/) - Custom commands (for example
.kilocode/commands/)
Refer to Kilo’s CLI docs for the canonical list:
Permissions and safety behavior
Happier exposes a provider-agnostic permission mode (default, read-only, safe-yolo, yolo, plan) in the UI.
However, Kilo’s ACP implementation does not currently emit ACP permission-request events reliably in our end-to-end traces. As a result:
- Happier’s per-tool “approve/deny” UI prompts are limited for Kilo.
- Kilo’s own permission / auto-approval system (configured in Kilo) is the primary mechanism that controls what Kilo will do without interactive confirmation.
Kilo documents auto-approval settings and interactive vs autonomous behavior in:
If you want stricter enforcement today, prefer configuring Kilo’s own permissions/auto-approval settings, and treat Happier’s permission picker for Kilo as “best effort”.
Troubleshooting
“Kilo not found”
- Confirm Kilo is installed:
kilocode --version(orkilo --version) - Restart Happier after installing.
- If Kilo isn’t on PATH, set
HAPPIER_KILO_PATHto the absolute path of thekilocode(orkilo) binary.
“Not authenticated”
Authenticate in Kilo using its normal flow (see kilo auth --help or kilocode auth --help), then retry from Happier.