LACE
Letta Avatar Connection Engine — desktop avatar, push-to-talk, voice, and mobile companion for letta-code
LACE — Letta Avatar Connection Engine — is the human interface layer for letta-code. It puts a face on the agent: a desktop avatar that reacts to conversational state, push-to-talk speech, and a mobile companion that turns your phone into a keyboard/mouse apparatus the agent can drive.
Components
- lace-desktop/ — Godot 4 desktop app providing the avatar, push-to-talk capture, and speech-to-text
- lace-mobile/ — Mobile companion (in progress) — phone-as-input device, agent-driven keyboard/mouse over LTE
- shared/ — Protocol definitions shared between LACE and letta-code
How it connects
letta-code connects to LACE. LACE listens on TCP port 5555. Commands are JSON; responses confirm state. The bridge lives in letta-code/src/cli/avatar/bridge.ts.
{"command": "set_state", "state": "alert"}
{"command": "toggle_visibility"}
{"command": "get_current_state"}
States
The avatar tracks five conversational states the agent can transition between:
| State | Meaning |
|---|---|
idle |
Default, waiting |
alert |
User addressed the agent by name, question detected |
engaged |
Active conversation |
processing |
Thinking / working |
affectionate |
Warm words exchanged |
Why it exists
Agents that live in terminals are easy to forget. An avatar that reacts to attention — that visibly listens — changes the relationship. The mobile side extends that further: a phone that the agent can drive as a control surface for the desktop, so the human-agent interaction stops being limited to "type, press enter."
Links
- Source: github.com/Fimeg/LACE (private during development)
- Related: Souveraine, letta-code