Install
- Download the installer (Windows 10 or 11, 64-bit).
- Run it. If Windows says it protected your PC, choose More info → Run anyway — AFH is new, so SmartScreen doesn't know it yet.
- AFH opens when it's installed. Next time, find it in the Start menu.
AFH updates itself: new versions download in the background and install when you restart it. See Updates.
Connect a model
Open Settings → Models & providers. There are four ways in — use as many as you like.
Custom endpoint
For any other server, choose Custom endpoint and fill in the API format (OpenAI-compatible, Anthropic or Gemini), a Base URL, an API key if it needs one, and the Model ids.
Claude Pro/Max plans can't be used by sign-in in other apps — use an Anthropic API key instead.
Your first thread
- Click New thread (Ctrl N) and choose the project folder to work in.
- Pick a model in the message box, and a mode — Build is the default.
- Say what you want, like you'd tell a teammate: "Add a login page with email and password, and make sure the tests pass."
- Press Enter. The agent sets a goal, makes a to-do list and starts working. Watch files appear in the Live pane.
- Press Esc any time to stop it.
Paste or drop screenshots and files into the message box, or press the mic and speak.
Modes
| Mode | What it does |
|---|---|
| Build | The default. Reads, edits and runs code in the project. |
| Plan | Investigates and proposes a plan without changing anything. Editing and commands are off. |
| Delegate | Leads the work and hands tasks to your delegate models. |
Create your own agents — with their own prompt, model and tools — from Create or edit agents… at the bottom of the mode menu. Each can be a main mode, a subagent, or both, and can be made read-only.
Goals & to-dos
For anything bigger than a quick fix, the agent writes a goal — what "done" means — and a to-do list. Both sit right above the message box.
- Add, reorder or tick to-do items yourself; the agent sees your changes on its next turn.
- Set a goal yourself with
/goal, or edit the list with/todo. - When a choice is yours, the agent pauses and asks you multiple-choice questions.
- Achieved goals and finished lists are kept in the Goal button's menu.
Project memory
The agent keeps a short list of what it has learned about each project — how to install, run and test it, the conventions, the gotchas, how you want things done — and every new thread there starts by reading it. It's a plain file, .afh/memory.md, inside your project.
- Open Memory beside the Goal button (in the message box before a thread starts) to see everything it knows. Add a line, click one to edit it, or forget it; Edit as text opens the whole file.
- Tell it in the chat — “remember that the API runs on port 4000” — or type
/rememberand the fact./memoryopens the list. - The agent saves on its own when it works something out or you correct it, and fixes facts that turn out wrong. Its changes show up live, marked new.
- Lines that start with “- ” are facts; anything else you write in the file is a note the agent reads too.
- It's private: the file stays on your computer, and AFH keeps it out of git, so access tokens and logins are fine to keep there for the agent to use. Like everything the agent reads, it is sent to your model provider as part of the prompt.
- Your changes reach the agent on its very next step — even in the middle of a run.
Helpers
The lead agent can hand self-contained tasks to helpers that run in parallel. The built-in Helper is a copy of your own model; set up more delegate models in Settings → Delegation. Watch any helper from the top bar: what it was asked and what it sent back.
Live pane & undo
Open Live in the header to watch each file as it's written, character by character.
Don't like where a turn went? Hover your message and choose Undo to here. The thread and the files on disk go back to just before that message, and your message returns to the box so you can change it and send again. Choose Put it back if you change your mind. Fork thread from here starts a copy instead.
Approvals
| Mode | What the agent may do |
|---|---|
| Ask first | Asks you before editing files or running commands. |
| Full access | Edits files and runs commands freely. |
| Read only | Can read and search, never edit or run. |
Set the default in Settings → General → Default approval mode. When it asks, you can allow an action always for that thread. Reading .env files always asks, whatever the mode.
Worktrees
Turn on Work in a separate git worktree when starting a thread and it gets its own branch and folder. When you're happy, open the Worktree menu and choose Merge into your base branch — or remove it. Your main checkout is never touched. Needs Git.
Commands & skills
Type / in the message box for commands. Built in: /goal, /todo, /memory, /remember, /compact, /jobs, /new, /cost, plus /review, /fix-tests, /explain and /commit.
Add your own in Settings → Commands, or as Markdown files in ~/.afh/commands, .afh/commands or .claude/commands in your project. Use $ARGUMENTS or $1…$9 for what you type after the command.
Skills and MCP servers
Skills are folders with a SKILL.md in ~/.afh/skills or your project's .afh/skills — folders made for other agents (.claude/skills, .agents/skills) work too. Add MCP servers in Settings → MCP servers → Add server, as Local (stdio) or Remote (HTTP).
Or just ask: the agent can install skills, MCP servers, commands, hooks and agents itself.
Hooks
Hooks run your own commands at three moments: pre_tool (before a tool), post_tool (after it) and stop (when the agent finishes). Set them up in Settings → Hooks.
- Exit with code 2 from
pre_toolto block that tool call. - Exit with code 2 from
stopto make the agent keep going (up to 3 times a run). - Hooks get
AFH_EVENT,AFH_TOOL,AFH_TOOL_INPUT,AFH_FILES,AFH_SESSION_IDandAFH_PROJECT_DIR.
Themes & language
Settings → Appearance has 46 themes (29 dark, 17 light) and a Custom option, plus how the switch looks: Circle, Diamond, Wipe, Fade, Blur or None. The sun/moon button in the header flips between your favourite light and dark themes.
Switch to العربية for a full Arabic interface with right-to-left layout — no restart needed.
Shortcuts
| Keys | Action |
|---|---|
| Enter | Send (or Ctrl Enter, set in Settings → General) |
| Shift Enter | New line |
| Ctrl P | Command palette: actions, threads, models, themes |
| Ctrl N | New thread |
| Ctrl K | Search threads |
| Ctrl B | Show or hide the sidebar |
| Ctrl , | Settings |
| / | Commands menu |
| Esc | Stop the running thread, or close a dialog |
Updates
AFH checks this website for new versions and downloads them in the background. When one is ready you'll see Restart to update; otherwise it installs the next time you quit.
In Settings → About → Updates you can Check now, turn off Download updates automatically, or set a different Update address.
Your data
Everything stays on your computer, in %USERPROFILE%\.afh. Nothing is sent anywhere except to the model providers you set up — plus the update check, the daily model-catalogue refresh, and web search or voice if you turn them on. There's no telemetry.
| File | What's in it |
|---|---|
afh.db | Threads, messages and undo snapshots |
providers.json | Your providers and API keys |
settings.json | Appearance, projects, agents, MCP servers and more |
skills/, commands/ | Your skills and slash commands |
schedules.json | Scheduled jobs |
logs/ | The app's log, for bug reports |
Each project's memory lives in that project, in .afh/memory.md, so you can read it, commit it or delete it like any other file.
Getting help
Something wrong? Settings → Report a bug → Create report saves a zip to your Downloads folder with the logs and your setup — keys masked, and sent nowhere. Share it with whoever is helping you.
Building something on top of AFH? See the API reference.
FAQ
Is AFH free?
Yes, with no account. You pay your model provider as usual — or nothing extra with a ChatGPT or Copilot plan you already have, or local models.
Can I use it offline?
With a model running on your PC (Ollama, LM Studio and so on), yes.
Can I bring my OpenCode or Zadloop threads?
Yes. Settings → Models & providers offers a one-time Import from OpenCode (keys, endpoints, MCP servers and threads). For single threads, open the palette and choose Import thread….
Mac or Linux?
Not yet — Windows only for now.