Happier Update - August 2026 #226
leeroybrun
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hey Happier fam!
This update is long overdue.
If you've joined us on Discord or followed the commit history, you already know that Happier is continuing to move a lot. I've worked on many new features, fixes and larger internal changes over the past few months.
Development is now happening on two tracks: stabilizing the public v0.2.x
devchannel before promoting it topreviewandstable, while also building the new v0.3 architecture in an unpublished worktree.Latest updates on the dev channel
A lot changed in the latest
devreleases.The main transcript renderer has moved from FlashList to LegendList. That migration touched much more than the list component itself, including scrolling, pagination, position restoration, following new messages and handling large transcripts.
I've also made substantial changes to:
These changes affect some of Happier's busiest code paths. I'm keeping them on
devfor now while I fix issues reported by the people using it, before pushing the long-overdue updates topreviewandstable.If you're using
stableorpreviewand running into an issue, there's a good chance it has already been fixed ondevand will reach you soon. You can see the full changelog between the currentstable/previewreleases anddevat the end of this post for a clearer picture of what's coming.If you encounter an issue on
dev, please report it through GitHub Issues or Discord. Feel free to open a PR directly when the fix is relatively straightforward. Any help, in any shape or form (testing, reporting issues, suggesting features or improvements, fixing issues) is deeply appreciated!Upcoming v0.3: a unified runtime and public plugin system
At the same time, I'm continuing to work on Happier v0.3.
v0.3 changes the project's architecture around a unified agent runtime and a new plugin system. It builds on the existing code and features, but changes who owns the shared behavior.
Historically, each agent integration implemented some combination of session handling, message delivery, transcripts, activity tracking, permissions, recovery and process management. Similar logic ended up spread across several agents. Some integrations were also forced through ACP-shaped paths even when their native runtime behaved differently.
This made new agents harder to add and maintain. Improvements to shared behavior often had to be implemented several times.
In v0.3, Happier's runtime owns the shared parts: session and turn lifecycle, pending input, transcripts, permissions, activity, persistence and recovery.
Agent plugins own the behavior specific to Claude Code, Codex, OpenCode, Pi, Antigravity and other executable coding agents. This includes launching their CLI, speaking their native protocol, interpreting their events and declaring their capabilities.
ACP still has an important role for agents that support it, but it is now an adapter rather than the shape every agent must follow.
This should make new agents easier to add while allowing shared runtime improvements to benefit every compatible integration.
The Happier Plugin SDK
The v0.3 source now treats first-party agents as plugins. Claude, Codex, OpenCode, Antigravity and the other bundled agents use the same plugin architecture being prepared for external authors.
The authoring workflow includes commands such as:
Plugins are not limited to agents. They can contribute model providers, actions, hooks, events, settings, UI, managed dependencies, MCP integrations and other capabilities.
They can be packaged as npm-compatible archives and shared through npm or other supported sources. Happier's daemon handles installation review, trust, enablement, rollback and removal.
The authoring experience takes inspiration from Pi's extension workflow: create a small plugin, run it in development mode, edit the source and let Happier validate and reload it. The workflow is also designed to work well with coding agents. You can ask an agent to help create or customize a plugin while
happier plugins devhandles validation and reload through the daemon.Plugins are trusted code, much like editor extensions or other local development tools. They are not sandboxed. Happier will show what a plugin declares and ask for trust where appropriate, but you should still review third-party code before installing it.
The public Plugin SDK has not been released yet. It will have its own version number, separate from the Happier v0.3 application release, and will initially ship as a Developer Preview.
What else is coming with v0.3
The new architecture has also given me a better place to finish several larger features:
Guided desktop onboarding: install and configure the CLI and background service, choose Happier Cloud or a self-hosted relay, authenticate the machine and verify that everything is running. Basically, you install the desktop app, follow the guided process, and you can have everything installed and configured automatically for you (including your self-hosted relay, remote access through Tailscale or Cloudflare Tunnels, etc)
Remote SSH hosts: configure and manage remote machines, install the CLI and daemon, and optionally host a relay through SSH.
An embedded browser workspace: open external pages and local previews, use tabs and navigation, inspect diagnostics, capture browser context for a session, record supported targets and optionally allow agent automation.
Better terminal rendering: experimental native renderers based on Ghostty on iOS and Termux components on Android
A rebuilt Voice system: Local Voice, OpenAI Realtime, experimental Codex Live, Grok Realtime, configurable speech providers and local speech model packs. Codex Live attaches the conversation to a real Codex session so it can delegate coding work, use tools and follow the same permission model.
Antigravity support: Antigravity is being implemented as a native Happier agent plugin, including its CLI runtime and external-session support.
Better usage and context data: more accurate token, cost, quota and context-window reporting, together with an in-session instrument strip, richer usage charts and recap views.
First-class support for models providers and local models: we were already integrating external model providers in Happier using profiles in v0.2 (Deepseek, Minimax, etc). In v0.3 you will be able to add any kind of providers and models to your agents, detect and use local models (Ollama, LM Studio), use CLIProxyAPI (running OpenAI models in Claude for example), etc in a much better and integrated way.
& much much more :-)
Development effort, contributions and next steps
My immediate priority is still to stabilize the public v0.2.x
devrelease so it can move topreviewandstable, while continuing v0.3 work in parallel.I'm trying to avoid large new features on v0.2.x for now. Every change there also has to be manually ported to the v0.3 worktree, which takes time away from finishing both releases.
Bug-fix contributions and PRs are especially welcome and deeply appreciated. Larger features may be better coordinated around v0.3, depending on their scope, so please talk with me first on our Discord or Github issues if you are considering one.
The v0.3 work is not public yet. Once it is stable enough for outside testing, I'll push it to a dedicated branch. It will eventually replace the current
devline.Feel free to join us on Discord if you have questions, run into issues or want to discuss an idea. I'm always happy to hear what you think and to understand how I can make you even happier with Happier ;-)
Full changelog between 0.2.1 (preview) and current
devNew agents and models
Grok Build
Grok joins Claude, Codex, Cursor and the other bundled coding agents as a fully supported Happier agent.
Thank you @jaylfc for contributing Grok Build in PR #195.
Cursor
Cursor is now a fully supported Happier agent alongside Claude and Codex.
cursor-agent modelsfeeds the model picker, including Composer fast, GPT reasoning and fast modes, and Claude thinking, effort and fast modes.MiniMax profiles
Two built-in MiniMax profiles are available for the global and China endpoints.
ANTHROPIC_*andOPENAI_*environment variables.Thank you @octo-patch for contributing the built-in profiles.
Claude Opus 5
Current supported agents list
Claude, Codex, Cursor, Grok, OpenCode, Gemini, Copilot, Qwen, Kimi, Auggie, Kilo, Kiro and Pi.
Transcript
The transcript now uses LegendList across web, iOS and Android. Main transcripts, sidechains and public or read-only transcripts share the same renderer.
This was more than a list-component replacement. It changed how Happier owns scrolling, pagination, restoration, streaming growth, navigation and first-paint behavior.
Scrolling and position
Navigation rail and message pins
Long transcripts now have a dedicated navigation surface.
Message selection and send to session
Message delivery and pending queue
Sending is now durable, visible and restart-safe.
Goals, workflows and work state
Goals describe what a session is trying to accomplish. Workflows show how that work is distributed, while runtime activity distinguishes the current foreground turn from background tasks that may continue afterwards.
Session goals
/goalstate rather than a parallel Happier representation./goalis sent./goal. You can inspect the active goal and remaining budget, then edit or cancel it from the composer.Workflows and subagents
Work state across providers
Runtime activity and background tasks
Session organization
Pins, folders and tags are now server-backed, so they remain consistent across devices and reloads.
Folders
Folders are enabled by default.
Tags
Create, assign, remove and filter by tags, including filters containing several tags.
Pins
Multi-select for sessions list
Long-press a row or use its menu, then archive, delete, move or mark several sessions as read. Selection survives list updates and scrolling.
Read state
Mark a session read or unread from the row menu, context menu, header or detail actions. Marking unread returns it to attention surfaces, and the change reaches connected devices immediately.
Cockpit on mobile
Cockpit provides all of the in-session tools necessary to work from your phone.
Claude unified terminal
Claude Unified runs the real Claude Code TUI inside a shared terminal host that can be controlled from both the terminal and Happier.
It is opt-in in Happier's Claude settings.
Runtime controls
Large-session resume
Choose between ask every time, resume from summary and resume the full session.
Clear a blocked composer
When leftover text in Claude's terminal blocks a queued message, Happier offers a Clear composer action.
Connected Services
Connected Services lets you link Codex and Claude accounts directly to your Happier account, then use them in sessions across your machines.
Instead of signing in separately on every machine, you connect an account once in Happier. When you start a session, Happier materializes the selected authentication on the machine running it without modifying your global
~/.codexor~/.claudehome.Connected Services remains experimental and can be enabled under Settings, Features.
Link once, use across machines
Account pools
Add several accounts for the same service to a pool and let Happier choose which one should be active.
Pools are shared by every session using them. When the active account changes, Happier applies the new pool generation to the other sessions bound to that pool instead of making each session discover the same exhausted account independently.
Hot account switching
Codex and Claude can switch accounts without restarting the session.
For Codex, Happier applies the new authentication directly to the running app-server and verifies that it adopted the expected account.
For Claude, Happier rematerializes and verifies the authentication inside the pool's managed Claude home. The session keeps its existing state and continues with the new account.
Before committing a switch, Happier checks that the target account and session state are reachable. A switch is reported as successful only after the running session proves that it adopted the new account.
If a live switch cannot be verified safely, Happier fails closed and can use an explicit restart-and-resume path where supported.
Soft-limit switching and pool-wide protection
Happier can switch before an account reaches its hard limit.
Before starting a turn, it can move to another account when:
If one session discovers that the active pool account has reached a usage limit, Happier switches the pool and distributes that change to the other sessions using it. Those sessions can adopt the replacement account before they encounter the same limit themselves.
Switch limits prevent a broken pool or repeated authentication failure from causing an endless switching loop.
Automatic continuation
When a session reaches a hard usage limit, Happier can switch to another account and continue automatically.
After the new account is active, Happier can:
Continuation preferences can be remembered for an account and overridden for an individual session. You can also ask Happier to switch accounts immediately instead of waiting for automatic recovery.
Quotas and reset times
Monitor connected-account usage directly from Happier.
Quota gauges show what remains, so 30% means 30% left. Warning colors appear as the remaining quota gets low.
Codex usage resets
Some Codex accounts receive usage-limit resets from OpenAI. Happier lists how many resets are available, when they expire and the individual reset credits reported by Codex.
Usage resets can be applied directly from Happier. Use "Apply usage reset" from the Connected Services account details, session quota gauge or usage-limit recovery banner. You do not need to visit a separate account page or restart the session.
Happier reports whether the reset succeeded, there was nothing to reset, no credit remained or the credit had already been used. A blocked session can continue once Codex accepts requests again.
Visible switches and notifications
Account switches appear as events in the session transcript, including why the switch happened and which account became active.
Happier can also notify you about meaningful quota, authentication and account-switch events using your existing notification preferences and quiet hours. Routine low-quota observations stay out of the transcript so they do not bury the conversation.
Agent autonomy
Happier already supported session creation and cross-session messaging in v0.2.1. This cycle makes those capabilities much more useful by exposing session creation directly to in-session Agents and expanding the coordination controls around it.
Coordination between sessions
Agents can create additional sessions with
session.spawn_new, assign them work and continue while those sessions run independently.They can also:
Child sessions inherit the relevant runtime and Agent context from their parent.
Permissions cannot be escalated. A child session cannot receive more authority than the calling session already has.
Coordination policy
Session creation and normal coordination are allowed by default, with Off and Ask-first controls available per action.
Useful runtime actions such as changing the model or mode and managing usage-limit recovery can be enabled separately. Destructive actions such as stopping or archiving another session remain disabled by default.
Session-spawn policy and pending-message timing are configurable from Settings.
Action approvals
Happier actions can pause execution and show a blocking approval request directly in the composer.
This avoids duplicate approval prompts while keeping sensitive cross-session actions visible and controllable.
Code review and source control
Review comments
Review comments turn diff review into a complete feedback workflow. Mark individual lines while browsing changes, collect comments across several files, then send the structured feedback to the current session or another session in the same workspace.
review_comments.v1metadata alongside a readable prompt.Pull requests and branches
These features are experimental.
ghas a fallback.Codex native review
Codex review runs now use the native
review/startapp-server API where the request can be represented safely.review.startremains the product entry point.ReviewTarget::Custompreserves user instructions.enteredReviewModeandexitedReviewModeappear in the transcript.review_findings.v2./codex.reviewstarts an inline review.Content and rendering
Mermaid on mobile
Mermaid diagrams render on iOS and Android. The runtime is bundled locally with no CDN fallback, and native network, message and navigation boundaries are sanitized.
Markdown rendering
Rich Markdown editor
Edit markdown using the TipTap integrated editor and Notion-like slash commands.
Generated images
Images produced by an Agent are treated as durable session media rather than temporary local paths or large base64 values embedded in transcript metadata.
Desktop and interaction
Custom themes
Create, edit and share custom theme profiles under Settings, Appearance, Themes.
Navigation transitions
Keyboard shortcuts and commands
/.Desktop shell
Visual refresh
Avatars
Avatar styles are deterministic across devices. Users can choose between several variants. Completed and archived sessions render in monochrome, while active sessions retain color.
Drafts and message history
New-session picker
Enter to send
Mobile has an enter-to-send setting. Web handling was refined to avoid accidental sends in multi-line input.
Sharing and privacy
Terminal
Authenticated pairing
Reliability
CLI, daemon and development stack
happier statusProduces a read-only setup report covering authentication, relay health, background service, CLI installation and Connected Services.
happier servicehappier service start | stop | status | repairprovides explicit lifecycle control.KillModeandAbandonProcessGroup.happier doctor repair--report-onlyand--yes.$PATH.Built-in commands
/happier-diagnosecreates a structured diagnostic snapshot.MCP
session_agent.happier mcpand--mcp-serverare available.Local memory search
Local memory search builds a semantic index from previous conversations, allowing session-list search to find relevant work even when the exact words differ. It focuses on what you and the Agent said instead of treating every tool result or internal event as useful memory.
Provider runtime improvements
Session runner migration
Tracked sessions move to the new runner after a CLI update or restart.
Development stack
yarn tuiandyarn devreload without dropping sessions.Release pipeline and OTA
Performance
Thirty-five measured improvements landed across the app.
Transcript and lists
Rendering
Data and crypto
Server and CLI
Other features
Voice
Pets
pets.synccontrols synchronization.Notifications and connectivity
Session handoff
Windows
HAPPIER_HOME_DIRis respected..cmdshims are preferred.wx.Self-hosting
@fastify/compressreduces mobile transfer size.ghopscredentials use Keychain.Fixes
Claude
process.execPath.Codex
tool.id.OpenCode, Pi, Gemini, Grok and ACP
Connected Services and authentication
Sessions and transcripts
Transcript rendering and composer
Interface
CLI, daemon, server and release
setup-relaypreserves the selected server.sherpa-nativeandsessionHookAttributionmodules are included.All reactions