HappierDocs
Extras

Feature flags

Every capability Happier can gate, who controls it, and what it defaults to — generated from the feature catalog.

Not everything Happier can do is switched on for everybody. A capability can be gated in three places, and a feature is only usable when all three agree:

  1. The server advertises which features it supports. Self-hosters control this with HAPPIER_FEATURE_* environment variables; on Happier Cloud it is set for you.
  2. The build can deny features regardless of the server, through HAPPIER_BUILD_FEATURES_ALLOW and HAPPIER_BUILD_FEATURES_DENY.
  3. You turn some of them on in Settings → Features.

Every feature in the catalog is fail-closed: if the client cannot get a clear answer about whether a feature is available, it treats it as unavailable. That is why a feature can seem to vanish when a server is unreachable, and why a misconfigured self-hosted server hides features rather than half-enabling them.

There are 72 features in the catalog. 22 of them have a switch you can reach; the other 50 are decided before you get there.

Features you can turn on yourself

These appear in Settings → Features. 15 of the 22 are marked experimental.

FeatureIdKindDefault
Attachment uploadsattachments.uploadsExperimentalOff
AutomationsautomationsExperimentalOn
Channel bridgeschannelBridgesExperimentalOff
Connected servicesconnectedServicesExperimentalOff
Connected services quotasconnectedServices.quotasExperimentalOff
Subagentsexecution.runsExperimentalOff
Diff syntax highlightingfiles.diffSyntaxHighlightingStandardOn
Embedded file editorfiles.editorStandardOn
Rich markdown editorfiles.markdownRichEditorExperimentalOff
File review commentsfiles.reviewCommentsStandardOn
Advanced syntax highlightingfiles.syntaxHighlighting.advancedStandardOn
Memory searchmemory.searchExperimentalOff
Petspets.companionStandardOn
Source control operationsscm.writeOperationsExperimentalOff
Direct sessionssessions.directStandardOn
Session folderssessions.foldersStandardOn
Friendssocial.friendsExperimentalOff
Embedded terminalterminal.embeddedPtyExperimentalOff
Usage reportingusage.reportingExperimentalOn
VoicevoiceExperimentalOff
Voice agentvoice.agentExperimentalOff
Zenzen.navigationExperimentalOn

Experimental toggles are hidden until you turn on the experiments switch at the top of that screen. If a page tells you to enable something here and you cannot find the row, that switch is almost always why.

A toggle only offers what the server already allows. Turning something on locally cannot enable a feature the server has not advertised.

Features the server decides

These have no user-facing switch. A self-hoster sets them through the environment; on Happier Cloud they are managed for you. server means the server owns the decision outright; client means the client owns the behaviour but still needs the server to advertise the capability.

IdWhat it gatesOwned byDepends on
actions.approvalsActionSpec-driven approval request queue and inbox UI surfaces.clientinbox.global
agent.goalsGeneralized agent session goal controls and work-state goal projection (umbrella over provider-specific goal sub-gates).client
app.analyticsAnonymous analytics and instrumentation (PostHog).client
app.crashReportsCrash reports and error telemetry (Sentry).client
app.ui.changelogWhat’s New / changelog UI surfaces (banner, settings entry, changelog screen).client
app.ui.onboardingShowcaseFirst-launch onboarding story-deck modal (shares renderer with release notes).client
app.ui.releaseNotesCurated release-notes story-deck modal (Notelet-style cards). Shares renderer with onboarding showcase.client
app.ui.sessionGettingStartedGuidanceSession getting-started guidance UI (includes CLI install instructions).client
app.ui.storeReviewPromptsIn-app store review prompts (native App Store / Play Store review sheet).client
auth.login.keyChallengeKey-challenge login route availability (POST /v1/auth).server
auth.mtlsmTLS client certificate authentication support.server
auth.pairing.desktopQrMobileScanPairing session support for desktop/web QR → logged-out mobile scan sign-in.server
auth.recovery.providerResetAuth provider reset support during recovery flows.server
auth.ui.recoveryKeyReminderRecovery key reminder UI behavior.server
bugReportsBug report submission and diagnostics capability.server
channelBridges.telegramTelegram channel bridge provider.serverchannelBridges
connectedServices.accountFallbackConnected service account group fallback and automatic active account switching APIs.serverconnectedServices.accountGroups, sessions.usageLimitRecovery
connectedServices.accountGroupsConnected service account groups and member management APIs.serverconnectedServices
e2ee.keylessAccountsKeyless account support (accounts may omit E2EE signing keys).server
encryption.accountOptOutPer-account encryption opt-out toggle support.serverencryption.plaintextStorage
encryption.plaintextStoragePlaintext session storage support (no E2EE at rest).server
inbox.globalGlobal inbox aggregation surfaces (approvals, permissions, social, updates).client
machinesMachine control-plane transport capabilities.client
machines.transferSame-account machine transfer control plane.clientmachines
machines.transfer.directPeerDirect peer machine transfer capability.servermachines.transfer
machines.transfer.serverRoutedServer-routed machine transfer fallback capability.servermachines.transfer
mcp.serversMCP servers management and injection support.client
pets.syncSynced account pet library and cross-device pet package references.server
prompts.assets.externalExternal prompt assets import/export surfaces and daemon adapters.clientprompts.library
prompts.libraryPrompt library (docs + skills bundles) stored as artifacts.client
prompts.skills.registriesPrompt/skills registries and marketplace integrations (registry-of-registries).clientprompts.library, prompts.assets.external
providers.claude.unifiedTerminalClaude unified terminal runtime availability.client
providers.claude.unifiedTerminal.tuiRuntimeControlClaude unified terminal TUI runtime-control controller (live model/effort/permission-mode controls). Falls back to restart/unsupported outcomes when disabled.clientproviders.claude.unifiedTerminal
providers.codex.appServer.goalsCodex app-server native session goal controls and work-state projection (provider-specific sub-gate under the generalized agent.goals umbrella).client
providers.codex.appServer.permissionProfilesCodex app-server permission profile transport.clientsessions.direct
providers.codex.appServer.pluginsCodex app-server readonly vendor plugin catalog and structured mentions.clientsessions.direct, prompts.skills.registries
providers.codex.appServer.structuredInputCodex app-server structured turn inputs for text, images, skills, and vendor plugin mentions.clientsessions.direct, attachments.uploads
session.media.generatedGenerated/provider/tool session media output substrate.server
sessionsSession-level product surfaces and control-plane capabilities.client
sessions.agentSwitchingContinue one Session in place with another coding Agent, and create configurable Sessions from a typed source-context recipe.serversessions
sessions.draftsCross-device composer and new-session draft synchronization.serversessions
sessions.handoffSession handoff between machines.serversessions
sessions.usageLimitRecoverySession usage-limit recovery, wait/resume intent, and retry metadata APIs.serversessions
sharing.contentKeysSharing content-key exchange support (E2EE sharing).server
sharing.pendingDeliveryStateProvider delivery-state materialization support for pending queue routes and fields.serversharing.pendingQueueV2
sharing.pendingQueueV2Pending queue v2 sharing/bridging surfaces and runtime.server
sharing.publicPublic sharing link support for session content.server
sharing.sessionSession sharing capability (share session with other users/devices).server
updates.otaExpo over-the-air update checks and apply flows.server
voice.happierVoiceHappier-hosted voice backend availability (server-configured voice).servervoice

Where a feature depends on another, both must be enabled — enabling the dependant alone does nothing.

On this page