Browser UI guide
The AFK browser UI is the command center for starting, supervising, and handing off coding-agent work. Use this guide when you need to explain where a control lives, what a UI concept means, or how a user completes a common workflow without dropping into the CLI.
Core UI concepts
| Concept | What it means | Where users see it |
|---|---|---|
| Session | A durable agent conversation tied to a project, daemon, provider/model, permission mode, and execution environment. | Sidebar, dashboard, session chat, session details |
| Daemon | The machine or shared runner that works with approved projects and supports local, Docker-backed, LSP, and MCP-enabled sessions. | Account → API Keys, daemon footer, spawn modal daemon/project picker |
| Composer | The message box for prompts, follow-up instructions, attachments, slash commands, mentions, and steering. | Bottom of an open session |
| Tool call | A visible action requested by the agent, such as reading a file, editing code, running a command, asking for approval, or using an MCP integration. | Session transcript and approval cards |
| Sub-agent | A child agent spawned by a parent session for focused work such as review, exploration, testing, or implementation. | Session tree, child-agent events, team/task views |
| Org context | The active personal or organization workspace that scopes daemons, sessions, preferences, skills, agents, rules, and team visibility. | Context switcher, Settings window, dashboards |
| Shared session | An org-owned session explicitly shared with teammate participants as read-only viewers or unassigned-session contributors. | Session list, share panel, session transcript |
Navigation map
Account and Preferences open one Settings window and keep their existing shortcuts. Navigate its grouped sidebar on desktop or section selector on mobile. See Settings navigation for the full section map; permissions and configuration scope are unchanged.
- Sidebar: switch sessions, create sessions, inspect active and archived work, and navigate child-agent trees.
- Session chat: read the transcript, send follow-ups, approve or deny tools, interrupt a turn, export history, and inspect diagnostics.
- New session / spawn modal: choose a daemon, project, execution mode, provider/model, permission mode, agent type, isolation, and initial task.
- Account → LLM: configure provider connections, subscription providers, local endpoints, custom base URLs, and model discovery/manual model entry.
- Account → API Keys: create daemon pairing keys. Use the daemon footer and spawn modal to see connected machines, verify project access, and troubleshoot runner availability.
- Account → Git: connect GitHub App installations and Git OAuth providers so Docker sessions and automations can browse and clone private repositories.
- Chat commands and editors: use slash commands and the composer pickers to manage skills, agents, rules, MCP servers, hooks, LSP overrides, and lifecycle automation.
Common UI workflows
Start a local coding session
- Confirm a daemon is connected and exposes the project root.
- Click New session.
- Select the daemon and project path.
- Choose a provider/model or keep the configured default.
- Choose workspace isolation: None for the original project path, or Worktree for an isolated git worktree.
- Pick a permission mode and enter the task.
Start a remote Docker repository session
- Choose a Docker-capable daemon or shared runner in the spawn modal.
- Paste a repository URL, or connect GitHub and choose a repository from the picker.
- Set optional CPU/memory limits when available.
- Describe the task and start the session.
Approve, deny, or interrupt work
In auto and interactive permission modes, the transcript shows approval cards for gated tool calls. Review the command, file path, or action before approving. Deny a tool when it is unsafe, unclear, or aimed at the wrong project. Use interrupt/stop controls when an agent is going in the wrong direction or needs updated instructions. Approval, plan, question, and child-agent waiting cards may also be pinned near the composer so they remain visible.
Use plan mode
Plan mode is for broad, ambiguous, risky, or architectural work. The agent explores with read-only tools, presents a plan, and waits for approval before write or execution tools are allowed again. Ask for plan mode when you want an explicit checkpoint before implementation.
Use sharing, assignments, mentions, and inbox handoffs
In team or multi-session workflows, users can share org sessions with teammates, mention sessions or agents from the composer, ask for a handoff, or request a response from another running agent. Shared-session viewers can read and reconnect to the durable transcript; contributors can steer unassigned shared sessions. Assigned sessions are locked to the owner/spawner or current assignee, and owner-only side controls remain guarded even when a contributor can chat.
Assignments create personal Inbox notifications for the target teammate; opening a handoff jumps to the session, while rejecting it clears the assignment for re-routing. Unassigned shared sessions that are waiting on a question or approval also notify contributor participants, so someone with send permission can keep the agent moving.
Use composer media and prompt history
The composer supports attachments, prompt history, language/voice controls when voice is available, push-to-talk, microphone input, speaker playback, image upload, and PDF upload. Use the History button or ArrowUp at the first line to reuse previous prompts. Attach images when asking the agent to inspect screenshots, diagrams, UI states, or visual output — you can send images or PDFs on their own, without a text caption. Attach PDFs to analyze documents; AFK uses native document input when the selected model supports it and falls back to extracted text when a compatible endpoint rejects native PDF input.
Inspect artifacts, diffs, tasks, and schedules
Agents can render charts, tables, Mermaid diagrams, JSON, text artifacts, dashboards, images, and structured diffs directly in the browser. Large artifacts and diagrams can be expanded, copied, or inspected from their preview controls. Session side panels show live todo/task state and recurring schedule entries created by cron tools, with browser controls for cancelling scheduled prompts when supported.
Export, recall, and diagnose a session
- Use export actions to download a Markdown or JSON transcript for a PR, handoff, or audit trail. Archived sessions can be restored before resume, or permanently deleted by account owners/org admins.
- Ask an agent to recall prior sessions when a past decision or earlier investigation matters.
- Run
/statuswhen provider, model, rules, skills, MCP, hooks, or workspace state looks wrong.
Troubleshooting from the UI
| Symptom | Where to check | Likely fix |
|---|---|---|
| Daemon is not listed | Account → API Keys, daemon footer, service logs | Verify the daemon API key, network access, daemon service status, and configured project access directory. |
| Project path is missing | Spawn modal project picker | Add or correct the project location available to the daemon and restart/reconnect the daemon if needed. |
| Spawn fails with a deleted AFK binary path | Spawn error toast, daemon service | The daemon was still running after the CLI binary was replaced. Restart it with systemctl --user restart afk on Linux, then try spawning again. |
| Model list is incomplete | Account → LLM | Use manual model entry. Provider discovery endpoints are not always exhaustive or stable. |
| Local model does not connect | Account → LLM, selected daemon binding | Bind the local connection to the daemon that can reach the local endpoint; remember localhost is resolved from that daemon. |
| Agent is waiting | Session transcript and Inbox | Look for an approval, elicitation, plan approval, or pending question card and respond in the browser. On shared sessions, viewers cannot answer; contributors can answer only while the session is unassigned. |
| MCP server is missing or disconnected | MCP picker/config modal and /status | Check MCP config, required secrets, OAuth state, and whether the agent needs to start the server on demand. |
| Docker repository clone fails | Spawn modal, Account → Git, session output | Confirm repository access, GitHub App installation scope, clone URL, token availability, and Docker runner network access. |