Happy has three core concepts: sessions, machines, and agents.

Sessions

A session is a conversation between you and an AI coding agent. When you run happy in your terminal, you create a session. Sessions contain:
  • A sequence of messages between you and the agent
  • The agent type (Claude, Codex, or Gemini) and model
  • The working directory on your machine
  • Permission settings
Sessions persist across devices. You can start a session from your terminal and continue it from your phone, or vice versa.

Machines

A machine is a computer running the Happy CLI. When you install Happy and start your first session, your computer is registered as a machine. One machine can run multiple sessions at the same time. The Happy daemon (background service) manages sessions on your machine — it keeps track of active sessions and lets the mobile app start new ones remotely.

Agents

An agent is the AI coding tool that powers a session. Happy supports three agents:
AgentCommandDescription
Claude CodehappyAnthropic’s coding agent (default)
Codexhappy codexOpenAI’s coding agent
Geminihappy geminiGoogle’s coding agent
Each agent has its own set of models and configuration options. You choose the agent when creating a session, and you can run different agents in parallel across multiple sessions.

How they fit together

Machine (your laptop)
├── Daemon (background service)
├── Session 1 — Claude Code (sonnet-4-6)
├── Session 2 — Gemini (gemini-2.5-pro)
└── Session 3 — Codex (gpt-5.4)

Your Phone (Happy App)
└── Can view and control all 3 sessions
Everything is end-to-end encrypted. The Happy server syncs encrypted data between your devices, but it cannot read your messages or code. See Encryption for details.