My Agents Do the Work, I Just Press "Allow" 🦥 A three-person team at HackersHostel built AgentWebUI, a self-hosted web interface that lets users chat with OpenAI-compatible models and command-line coding agents such as Claude Code, Codex, Gemini CLI, OpenCode, Hermes and Pi from a single page. The server is roughly 3,000 lines of Python with one dependency (aiohttp), uses about 40 MB of memory, and streams each agent's plan, tool calls and diffs so users approve or deny file changes in one consistent spot. It is configured entirely through a .env file and can be launched with four commands or installed as a systemd service behind Caddy. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady https://dev.to/challenges/hacktoberfest-week3-2026-10-19 I think I've found the laziest job in software. You give an AI agent a task, go make a cup of cha, come back, read what it changed, and press one button. The trouble is that the button never lives in the same place. At one point last month I had four coding agents installed, and each of them asked for permission in its own way. Claude Code asks in one terminal. Gemini CLI asks in another. Codex has its own style. More than once I came back with my tea to find that nothing had happened, because an agent had been politely waiting for my approval in a window I'd forgotten about. So the three of us at HackersHostel built one place where that button always shows up in the same spot. AgentWebUI is a small, self-hosted web page for talking to AI models and command-line coding agents from one place. You run it on your laptop or a home server, open it in the browser, and pick who does the work: a model behind any OpenAI-compatible API, or a coding agent that speaks the Agent Client Protocol ACP , like Claude Code, Codex, Gemini CLI, OpenCode, Hermes or Pi. With an agent, you choose the agent, then its model and effort level, then the folder it should work in. After that you mostly watch. It streams the agent's thinking, its plan, the tools it calls and the diffs it makes. When it wants to touch a file, it asks first. You read the diff and press Allow or Deny. Who gets to be lazier because of it: There are no accounts and no setup wizard. Everything lives in one .env file. Live demo: agentwebui.hackershostel.com https://agentwebui.hackershostel.com One small web page to chat with AI models and with command-line agents, on your own server. Open it and chat there is no setup screen and no accounts. Everything is configured in .env . The package and command are still named agentwebui-lite . The server is about 3,000 lines of Python with one dependency aiohttp and uses about 40 MB of memory. The web client is Preact through htm with no build step. Nothing loads from the internet unless you pick a font other than Geist. Running it takes four commands: git clone https://github.com/HackersHostel/AgentWebUI.git cd AgentWebUI cp .env.example .env add your models and agents docker compose up -d If you want it running as a proper service on a VPS or a homelab box, there's also an install script that sets it up with systemd and Caddy for HTTPS. We already had a bigger version, now called AgentWebUI Pro, that slowly grew into a full control room. For this challenge we went the other way and rebuilt AgentWebUI from scratch as the smallest thing that still does the job. Our rule was simple: anything that adds weight has to earn it. This project couldn't exist in this shape without the open pieces. .env , restart, try it. A vendor's own app is usually great for that vendor's agent. The moment you use two agents, you're back to two windows. An open setup is the only way we found to keep everything in one tab that we actually control. What changed for me once I started using it day to day: The part I like most: I can hand a task to an agent on the home server, close my laptop, and check on it later from a browser on any other device. If it needs me, the approval is waiting in the same place as always. And the most sloth-like part of all: once .env is filled in, there's nothing left to configure. You open a tab and hand the work over. We'd rather be upfront about this: There's still a lot to do, and Hacktoberfest is a good excuse to jump in. Support for more agents, better tests, UI polish, accessibility and clearer docs are all on the list. Install it, use it for some real work, and open an issue when something feels off. If you can fix it yourself, even better. Entering for the overall prize. Built with @tahrimwalid https://dev.to/tahrimwalid and @mahmudurrahmanlabib https://dev.to/mahmudurrahmanlabib at HackersHostel. They wrote about AgentWebUI from their own angles too, so check out Walid's post https://dev.to/tahrimwalid/one-face-many-agents-meet-agentwebui-1a8l and Labib's post https://dev.to/mahmudurrahmanlabib/i-was-too-lazy-to-open-five-ai-tabs-so-i-built-agentwebui-207a . If something breaks while you try it, the issues tab is open and PRs are very welcome. 🦥