Happier Docs
Providers

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 --version

If you use hstack, you can install Kilo with the providers installer:

hstack providers install kilo
kilocode --version

See 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 --help

Enable Kilo in Happier (experimental)

Kilo is behind Happier’s experimental providers rollout.

In the app:

  1. Settings
  2. AI provider settings
  3. 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 (or kilo --version)
  • Restart Happier after installing.
  • If Kilo isn’t on PATH, set HAPPIER_KILO_PATH to the absolute path of the kilocode (or kilo) binary.

“Not authenticated”

Authenticate in Kilo using its normal flow (see kilo auth --help or kilocode auth --help), then retry from Happier.

On this page