# AFK Documentation - The composer supports image and PDF attachments, including image-only or PDF-only prompts with no caption. AFK uses native document input when the selected model supports it and can fall back to extracted PDF text for compatible endpoints that reject native PDF input. AFK, Autonomous Flow Kit, is a browser-based command center for engineering teams running coding agents. This documentation explains how to install AFK, connect a daemon, configure model providers, manage permissions, use the browser UI, coordinate team sessions and advisor-led agent work, configure agents and skills, connect MCP tools, manage secrets, use sub-agents, install plugins, configure repository integrations, run automations and webhooks, manage session goals and history, understand billing limits, review security and data-residency boundaries, and use CLI commands. Core concepts: - Browser app: the main command surface for sessions, approvals, dashboards, configuration, and team workflows. Run `afk open --project PATH [TASK]` to open the installed PWA when its operating-system handler is available, otherwise New Session opens in a browser tab. Use `--pwa` to require the PWA route. Neither mode configures a daemon or creates a session before browser confirmation. - Daemon: a local or shared runner that works with approved projects and connects them to AFK. - Sessions: durable agent conversations with transcripts, tool activity, approvals, diagnostics, recall, export, assignment metadata, and shared-session participant events. - Shared sessions: org-owned sessions can be shared with viewers for read-only access or contributors who can steer unassigned shared sessions; assigned sessions stay locked to the owner/spawner or assignee. - Governance: permission modes, plan review, approvals, secrets, org roles, permission-guarded side controls, and audit-friendly history help teams keep control of agent work. Section guides (each links to its articles): - Getting started: https://docs.mooglest.com/getting-started - Configuration: https://docs.mooglest.com/configuration - Agents and skills: https://docs.mooglest.com/agents-and-skills - Tools: https://docs.mooglest.com/tools-overview - Hooks: https://docs.mooglest.com/hooks-overview — edit user hooks on the selected connected daemon; retry failed loads after reconnecting. - Integrations: https://docs.mooglest.com/integrations - Plugins: https://docs.mooglest.com/plugins-overview - Reference: https://docs.mooglest.com/reference Important docs: - Introduction: https://docs.mooglest.com/ - Quick start: https://docs.mooglest.com/quick-start - Bring your setup: https://docs.mooglest.com/quick-start#bring-your-setup — Help → Import project setup scans project-scoped Claude Code/Codex setup on a selected connected daemon. Select candidates, explicitly consent to sending their file contents through the AFK server to the browser, use Review selected contents, then Import selected. Compatible AGENTS.md and .agents/skills are recognized in place; supported Claude instructions require an absent destination; skill bundles must pass complete-bundle safety limits; only restricted argument-free command or credential-free HTTP project MCP entries are importable. Existing destinations are not overwritten. Review and trust source text; avoid concurrent project modification during scan/review/import (not race-safe containment against adversarial filesystem changes). Credential-file checks do not guarantee arbitrary instructions/scripts contain no secrets, and apply I/O failures may leave partial files. Private home setup, Docker/container migration, hooks, permissions, history, providers, personas, credential stores, and authentication state are not supported import targets; import runs no commands and does not start MCP servers or reload sessions. - Installation: https://docs.mooglest.com/installation - LLM providers: https://docs.mooglest.com/providers - Permission modes: https://docs.mooglest.com/permissions - Account settings: https://docs.mooglest.com/account-settings - Preferences: https://docs.mooglest.com/preferences - Account and Preferences open one Settings window, retaining both entry points and existing shortcuts. Use the grouped sidebar on desktop or section selector on mobile. Groups: General (Appearance, Shortcuts); Account (Profile/Org, Billing, History/Org History, Orgs in personal context); Models (LLM, Mixes); Connections & automation (Git connections, Integrations, Automations); Workspace defaults (Git identity & attribution, Docker); Security (API Keys, Secrets); Daemon configuration (Plugins, MCP, Hooks, Guidelines, Skills, Agents, LSP). Existing permissions, context, scope, and storage are unchanged. - Browser UI guide: https://docs.mooglest.com/ui-guide - Team operations: https://docs.mooglest.com/team-ops - Custom agents: https://docs.mooglest.com/agents - Skills: https://docs.mooglest.com/skills - Advisor-led orchestration: https://docs.mooglest.com/orchestration - Tools reference: https://docs.mooglest.com/tools - Rules and LSP: https://docs.mooglest.com/rules - Hooks: https://docs.mooglest.com/hooks - MCP integration: https://docs.mooglest.com/mcp - Secrets: https://docs.mooglest.com/secrets - Sub-agents and teams: https://docs.mooglest.com/sub-agents - Plugins: https://docs.mooglest.com/plugins - Plugin marketplace: https://docs.mooglest.com/marketplace - GitHub App: https://docs.mooglest.com/github - Git providers: https://docs.mooglest.com/git-providers - Automations, webhooks, and chat integrations: https://docs.mooglest.com/webhooks — includes Add to Google Chat via the Google Workspace Marketplace, separate Workspace-admin message-history authorization status, direct Configured apps link, required `chat.app.messages.readonly` scope, and retry, AFK for Slack's Add to Slack, post-OAuth return to Slack, deployment-readiness checks, App Home, guided account-linking, Automation selection, contextual threaded sessions, originating-thread/space conversation tools, explicit-only external replies, and remote disconnect; and AFK for Discord's command-free Gateway integration, required Message Content Intent, explicit `@AFK` mentions in guild channels and threads, account/Automation linking, bounded originating-conversation history, explicit replies, no direct messages, and the current one-server-replica Gateway ownership limit; tokenized Google Chat webhooks are advanced compatibility only - Chat integrations setup and support: https://docs.mooglest.com/chat-integrations — end-user installation, account linking, supported Slack, Google Chat, and Discord interactions, requester-private Google Chat connection cards with automatic first-request continuation, troubleshooting, privacy boundaries, uninstall, deletion requests, and support contact - Sessions, recall, export, and diagnostics: https://docs.mooglest.com/sessions - Session goals: https://docs.mooglest.com/goals - Billing and limits: https://docs.mooglest.com/billing - Security and data residency: https://docs.mooglest.com/security — explains hosted versus daemon-side data handling, repository and session-content boundaries, EU residency scope, third parties, retention/deletion, and current compliance status - Enterprise deployments: https://docs.mooglest.com/enterprise-deployments — shared daemon setup on company infrastructure, org API keys, systemd service configuration, project root access, corporate CA/proxy setup, resource management, and dedicated control plane options - CLI reference: https://docs.mooglest.com/cli Product pages: - Marketing site: https://www.mooglest.com - Product: https://www.mooglest.com/product - Pricing: https://www.mooglest.com/pricing - App: https://afk.mooglest.com - AFK for Slack: https://www.mooglest.com/slack - AFK for Google Chat: https://www.mooglest.com/google-chat - AFK for Discord: https://www.mooglest.com/discord - Community support: https://discord.gg/K38mDE4zBw — public, best-effort AFK community support Common support topics: - Start a local session: confirm a daemon is connected, open New session, select daemon and project, choose provider/model and permission mode, choose isolation when needed, then enter the task. - Start a Docker repository session: choose a Docker-capable daemon or shared runner, paste a repo URL or select a connected repository, set optional resources, then start the task. - Configure providers: Account → LLM. Kimi users can add either a Kimi API-key connection or a Kimi subscription connection authorized with Kimi's device login flow; xAI users can add an xAI (Grok) subscription connection authorized with xAI's device login flow. GitHub Copilot is subscription-only: add + Copilot subscription and complete GitHub device login; Copilot does not issue an API key. AFK lists the Copilot models available to your plan, including newer GPT-5.x, Claude, Gemini, Grok, and Kimi models, and routes each model to the Copilot API it supports. The workspace dashboard shows remaining Copilot Chat quota; on Copilot Free that is the monthly chat allowance, not GitHub's empty premium-credit snapshot. AFK supports OpenRouter with its default endpoint; leave Base URL blank unless using a proxy/gateway. For Ollama, add a Local model connection with Base URL `http://localhost:11434/v1` when Ollama runs on the selected daemon machine. Use manual model entry when discovery is incomplete. Bind local-model connections to the daemon that can reach the local endpoint. - Connect daemons: Account → API Keys. Create a daemon token, then verify token, network access, daemon service status, and project access. For company CAs used by VPNs, private model gateways, or enterprise Git providers, set `ca_cert_file=/path/to/company-ca.pem` in `~/.afk/config`, or set `AFK_CA_CERT_FILE`/`SSL_CERT_FILE`, then restart the daemon. AFK adds the PEM/DER bundle to normal JVM and process trust roots, including spawned MCP servers, without replacing public CAs or disabling TLS verification. macOS and Linux use `curl -fsSL https://afk.mooglest.com/install.sh | bash -s -- `; native Windows uses PowerShell `& ([scriptblock]::Create((irm https://afk.mooglest.com/install.ps1))) -AllowUnsigned` (add `-ApiToken ''` to configure the token during installation). The Windows binary is not yet code-signed, so Windows installs require `-AllowUnsigned`; the installer still verifies the SHA-256 checksum and rejects tampered files. Personal Windows installs start the daemon at login. On a dedicated Windows machine, run the installer from elevated PowerShell with `-StartAtBoot` to register the daemon as a LocalSystem task that starts at computer boot before login. - Approvals and plan mode: approval cards appear in the session transcript for gated tools; plan mode allows read-only exploration and requires user approval before writes/execution continue. - Archived history: Account → History lists archived sessions for export, restore, permanent deletion, retention policy preview, and cleanup. Restore before resuming archived work. - Shared org sessions: share only org-owned sessions. Use viewer for read-only transcript/history access and contributor when another teammate should be able to respond on an unassigned session. Assignment takes precedence over contributor send access. Owner/spawner controls remain required for session mutations such as rename, compact, clear history, model/mode changes, schedule cancellation, and stop/close. - Session goals: start an explicit objective with `/goal ` or the browser goal controls when available. AFK persists the goal with the session, tracks tokens, elapsed time, and turn count, can continue silently across turns, and gives agents `get_goal` plus `update_goal` to inspect or mark the goal `complete` or `blocked`. Agents should mark complete only after verification and blocked only after the same blocker repeats for at least three consecutive turns. - Skills: reusable workflows can be invoked with `/skill-name`; skill bodies support argument placeholders and command-output injection for current context. - Troubleshooting: use /status for live provider/model, current LLM stream state, workspace, AGENTS.md, rules, memory, hooks, plugins, skills, and MCP diagnostics. If an agent appears stuck, check for pending approvals, elicitations, plan approval, unanswered questions, or waiting-work Inbox items. If spawn fails with a path like `/home/.../afk (deleted)`, restart the Linux daemon (`systemctl --user restart afk`) after the CLI binary was replaced, then retry.