HAPI Copy Copied text Could not render diagram. Binary file not shown Show %1$d more lines Collapse Pair with your hub HAPI is self-hosted: your coding agents run on your own machines behind a HAPI hub you operate. Pair this app with that hub to watch and steer them from your phone. Scan the “Companion app” QR code your hub prints on startup (with --relay), or enter the hub URL and access token by hand. Scan QR code Enter manually Dismiss Dismiss Checking hub… Pair with this hub? This hub is already paired on this device. Pair now Use existing pairing Re-pair with the new code Cancel That pairing link is invalid, incomplete, or does not use HTTPS. Back Manual pairing Find both values in the hub terminal on startup, or in the web app under Settings → Companion pairing. Hub URL https://hub.example.com Access token Paste the access token Pair Scan pairing QR Point the camera at the pairing QR code That QR code is not a valid HTTPS HAPI pairing code. Scan one of the two QR codes your hub prints (Companion app or Web app). Scan again Camera access is needed to scan the pairing QR code. You can also pair manually instead. Grant camera access Menu Settings Hub Hubs and settings Switch hub Pair another hub… Sign out Remove this hub pairing? The stored credentials are deleted from this device (the hub itself is untouched). Cancel New session Back New session Machine Loading machines… No machines online Runner last spawn error: %1$s Directory /path/to/project Browse directories Choose directory Go to parent directory Refresh Show hidden No subdirectories Select current directory Recent paths Session type Simple Use selected directory as-is Worktree Create a new git worktree next to the repo Worktree name feature-x (optional) Agent Checking installed Agents… Retry Model Effort Reasoning effort Permission mode Managed by agent This agent manages its own permissions. YOLO mode is not available. unavailable Grok did not enable Auto permissions for this account or CLI build. YOLO mode Bypass approvals and sandbox Uses dangerous agent flags when spawning. Applies native %1$s mode. Collaboration mode Agent mode Fast mode Standard Fast Loading… Create Creating… Create and make directory Settings General Appearance, language, and about Back Cancel Retry Could not load this dashboard. This dashboard is only available to the hub owner (default namespace). Appearance Theme Follow system Light Dark OLED black Material You colors Derive app colors from your wallpaper. Not available with OLED black. Color theme Default Notion One Proof Raycast Rose Pine Solarized Vercel VS Code Plus Xcode Linear Lobster Material Matrix Monokai Night Owl Nord Not available while a color theme is in use. Language App language Follow system Insights Token usage across agents and models Hub database size on disk About App version Protocol version Hub Checking hub… Status: %1$s · protocol v%2$d Hub unreachable — tap to retry. Usage 7 days 30 days All time Total tokens Uncached Input Output Cache read Cache creation Cache hit rate Requests Daily tokens %1$s tokens · %2$d req · in %3$s / out %4$s 0 tokens By agent By model %1$d requests · in %2$s · out %3$s Sessions with usage: %1$d No usage recorded in this period. Storage Disk footprint of the hub\'s SQLite database (database, write-ahead log, shared memory). SQLite files No storage data reported. Database Write-ahead log Shared memory Total Path Refresh Refreshing… Permission requests An agent is waiting for you to allow or deny a tool call Questions for you An agent needs you to answer a question in the session Agent ready An agent finished and is waiting for input Task notifications Task completed or failed, and other updates Allow Deny Reply Dismiss Message Allowing… Denying… Sending… Allowed Denied Reply sent Already handled Session is no longer active — open the app to resume it Session not found on any paired hub Couldn’t reach the hub — open the app to respond Reply not sent — open the app to try again Pinned Sessions All Unknown machine Offline — showing cached sessions Recent Connecting… Reconnecting… Paused Offline · updated %1$s Retry Mark as read Unread Connected Running Couldn’t mark as read Search sessions Search sessions Close search No sessions matching “%1$s” Try another term, or clear the search. Loading sessions… Hub unreachable No sessions yet Fetching the session list from the hub. Pull to retry once you are back online. Start an agent with the hapi CLI and it will appear here. needs input approve %1$s pending Unpin Pin to project Pin globally Rename Reopen Archive Delete Pin failed Archive failed Rename failed Delete failed Reopen failed Could not load machines Session is still active — archive it first Failed to reopen session Rename session Session name Delete session? “%1$s” and its message history will be removed from the hub permanently. Active sessions must be archived first. Cancel now Back Session files Scratchlist Scratchlist (%1$d) Session settings Session actions Scratchlist Session inactive — send to resume, or Retry Loading messages… Loading older messages… Couldn’t load this session Check the connection to your hub and try again. No messages yet Messages will appear here as the agent works. 1 new message ↓ %1$d new messages ↓ No transcription provider configured on hub Microphone permission is needed for dictation Camera permission is needed to take a photo %1$s is over the 50 MB upload limit Couldn’t read %1$s Draft parked to scratchlist Scratchlist is full (200 entries) Couldn’t park the draft — check the hub connection Attachments are still uploading — wait, or retry/remove the failed ones Session is inactive and could not be resumed Failed to abort Failed to rename session Failed to delete session Failed to cancel queued message Message cancelled — kept your current draft Schedule dropped — attachments cannot be scheduled Scheduled sends cannot carry attachments — remove the chips or clear the schedule Already delivered to the agent Failed to steer message Request was already handled Request failed Failed to load models Failed to update session Message the agent… Uploading… Failed — tap to retry ● Recording… %1$s Cancel Park draft to scratchlist Add attachment Start dictation Stop recording Send Stop the current turn Mention suggestions Send & steer into current turn Schedule send Relative Specific Max 7 days. Requires the hub running; the CLI catches up the next time it connects after that time. Scheduled time must be in the future. Maximum schedule time is 7 days. Enter the full date and time (YYYY-MM-DD, HH:mm). 1 queued message %1$d queued messages Scheduled for %1$s Steer Edit Attach Photo library Camera Files Could not start recording Could not reach the hub Audio recording failed No audio was recorded Transcription failed Session is offline — changes apply after it resumes or may be rejected. Session is controlled from the terminal — config changes will be rejected. Permission mode Model Loading models… Model list unavailable for this session. Effort Awaiting approval ⏳ Awaiting approval ✓ Approved ✓ Approved for session ✓ Approved: allow all edits ✕ Denied ✕ Aborted Resolved in Codex — Canceled pending error 1 agent step %1$d agent steps 1 tool %1$d tools Before After Edit %1$d/%2$d (empty) Result Result · error 💭 Reasoning ▾ 💭 Reasoning ▸ Not delivered — tap to retry Not delivered Code review 1 finding %1$d findings Allow Deny Abort Allow for this session Allow all edits Already handled elsewhere Type your answer… Add a note… None of the above Optionally, add details in notes. Could not open the sign-in page. Check that a browser is installed and try again. Awaiting response Answered Question handled Question canceled Question failed Submitting answer… Your answer Question %1$d of %2$d Details This question could not be displayed. Open details to inspect the request. Select all that apply Optional Other answer Hide note Previous question Submit answer Next question Recommended Open link? Open No app can open this link Terminal Read file Read notebook Edit file Edit notebook Write file Search files Search content List files Web fetch Web search Task Launch Agent Agent: %1$s Agent Spawn agent Resume agent Wait for agent Close agent Interrupt agent Broadcast Shutdown: %1$s agent Shutdown Response Message: %1$s Message agent List agents Team: %1$s Create Team Delete Team Todo list Plan Plan proposal Implement plan Continue planning Skill Skill: %1$s Reasoning Permission request Permission: %1$s Apply changes Diff %1$s log Inspecting task log Background task Error Run shell Search Open URL Query Question %1$d Questions %1$s (+%2$d more) %1$d lines %1$d chars %1$s (%2$d edits) Back Files Refresh Changes Browse Search Git status unavailable for this session Detached HEAD %1$d staged · %2$d unstaged No changes in the working tree Staged (%1$d) Unstaged (%1$d) Project root Show hidden files Collapse Expand Search files… Type to search files in the session directory No files matched Git status unavailable Unstaged diff unavailable: %1$s Staged diff unavailable: %1$s unknown error Failed to list directory Failed to search files Failed to load diff Failed to read file Copied Copy path Diff File Unstaged Staged Source Preview Line %1$d No changes in this file This file is empty Binary file — no preview available Preview not available for this image format Back Scratchlist No notes 1 note %1$d notes New note Edit note To composer Attachment only Note, draft, parking-lot idea… Add photo Delete Cancel Save Move note up Move note down Copy text to clipboard (not images) Copied! Delete this scratchlist entry? This cannot be undone. Retry Couldn’t load the scratchlist Check the connection to your hub and try again. No notes yet Park drafts from the composer, or tap + to jot a note for this session. Scratchlist is full (200 entries) — delete one first Scratchlist is full (200 entries) A note needs text or an attachment — use Delete to remove it Couldn’t save the note — check the hub connection Couldn’t delete the note — check the hub connection Couldn’t attach the file — check the hub connection Couldn’t remove the attachment — check the hub connection That file is over the hub’s per-file size limit Upload failed — check the hub connection Couldn’t read the selected file Image is too large even after compression A note can hold at most %1$d attachments That file type isn’t allowed for scratchlist attachments That file is over the %1$d MB limit This note’s attachment budget is used up Enter a valid HTTPS hub URL, like https://hub.example.com. Enter the access token shown by your hub. The hub rejected this access token. Tokens change when the hub rotates its CLI_API_TOKEN — grab a fresh QR code or token and try again. That hub is no longer paired. Pair it again below. Could not reach %1$s. Check the address, your network, and that the hub is running. %1$s answered, but not like a HAPI hub. Double-check the URL (it should be the hub’s own address, not the web app’s). This hub speaks protocol v%1$d but the app supports v%2$d. Update the app and try again. This hub speaks protocol v%1$d but the app supports v%2$d. Update the hub and try again. Pairing failed (HTTP %1$d). Try again in a moment. This device’s pairing was revoked — the hub’s access token changed. Pair again to continue. The hub kept rejecting this device’s session. Pair again to continue. The stored credentials for this hub went missing. Pair again to continue. Worktree sessions require an existing repository directory. Directory does not exist. Creating the session will create it automatically. Directory does not exist. Tap Create again to create it automatically. Failed to create session Failed to load Codex models Failed to load models: %1$s Name needs at least one letter or digit Directory must be inside one of this machine’s workspace roots. Failed to browse directories Failed to check installed Agents Upgrade and restart this machine’s HAPI runner before creating sessions. No supported Agents are installed on this machine. The selected Agent is not available on this machine. Back to latest ↓ Couldn\'t load history. Tap to retry. Continue loading history Load older messages Beginning of conversation ctx %1$s · %2$d%% left ctx %1$s Context details Message details Close Copy full content Showing %1$d of %2$d parts Load more content Questions & Answers Answers Custom answer Note View full message Full message Previous part Next part Part %1$d Retry export Export full text Copied Close reader Read-only snapshot. This record is no longer in the current message window. Earlier calls are not loaded. Return to the conversation to load older history. Tool details This content is unavailable. Return to the conversation to load it again. Latest tool View current file View full input View process · %1$d steps Agent process Show image Displayed image Displayed video Displayed audio Displayed file %1$s: %2$s %1$s is unavailable. %2$s Load video Load audio Prepare download Failed to load inline media Playback failed Open Save No app can open this file. Save failed. Play Pause Reconnecting… Tap to retry Filters Filters applied Reset Done Machines Activity dates Any date Clear date filter Machine · %1$s Filter sessions by last activity Apply Clear %1$s – %2$s No sessions in this date range Adjust or clear the date filter to see more sessions. Recent activity Privacy Policy No app can open this link. Share to session Choose a session Search sessions Preparing shared file… Adding shared content… Cannot read this file. Retry or remove it. File exceeds the attachment size limit. Preparation was interrupted. Retry or remove this file. Retry Remove Cancel Cannot receive this share. Please share the content again. Restore session? This session is stopped. Restore it before adding the shared content? Restore and add Stopped · restore before adding Cannot open this session. Check the connection and try again. Refresh sessions No matching sessions Cannot refresh sessions. Check the connection or switch hubs. Another share received There is already shared content waiting to be added. Keep it and discard the new share, or replace it with the new share? Keep current Use new share Share unavailable OK Pair a hub to choose a session for the shared content. Couldn’t save read status Reconnecting… Syncing… heartbeat timeout resuming after background connect timeout stream error stream closed HTTP %1$d %1$d runner(s) out of date Upgrade the HAPI CLI on each host below, then restart that runner. Minimize or snooze this banner to reach sessions underneath. %1$d outdated runner(s): %2$s — tap to expand Minimize Snooze 1h Restart runner Upgrade CLI first Restarting… (newer CLI on disk — runner should self-restart soon) (no newer CLI on disk yet — install/upgrade on that host) Failed to restart runner