{"slug": "i-was-too-lazy-to-open-five-ai-tabs-so-i-built-agentwebui", "title": "I Was Too Lazy to Open Five AI Tabs, So I Built AgentWebUI 🦥", "summary": "A developer and two collaborators built AgentWebUI, a lightweight, self-hosted, agent-first web UI that unifies multiple AI models and command-line agents in a single sidebar. The server runs roughly 3,000 lines of Python on aiohttp, uses about 40 MB of memory, and is configured entirely through a .env file with a Docker Compose setup. The project is positioned as an alternative to OpenWebUI for developers juggling tools like Claude Code, Codex, Ollama, DeepSeek, OpenAI and Gemini.", "body_md": "*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)*\n\nDid you know the chainsaw was originally invented to help with childbirth?\n\nTwo Scottish doctors in the late 1700s looked at a hard, slow, painful job and thought: *there has to be a lazier way.* A few centuries later, we use it to cut down trees and star in horror movies.\n\nThat's the thing about laziness. It's not a character flaw. It's the R&D department of the human race.\n\nSo here's my confession. My AI workflow had become a part-time job. Claude Code in one terminal. Codex in another. A local Llama in Ollama. DeepSeek in a browser tab I kept losing. Every task started with the same ritual: *which tab was I in, and where did I put that conversation?*\n\nOpenWebUI was supposed to fix this. Instead, I spent an afternoon trying to plug an agent into it and ended up with a lot of YAML and no agent.\n\nSo, like any respectable sloth, I did the laziest possible thing. I asked two friends who are almost as lazy as me, and together we built one tool so none of us would ever have to do that again.\n\n**AgentWebUI** is a lightweight, self-hosted, agent-first web UI. One server, one sidebar, every AI model and agent you use.\n\nYou open it, it says \"Good evening\", and it asks you one question: *ask anything, or hand a task to an agent?* That second option is the whole point. You don't do the work. You delegate it, then go lie down.\n\nWhat it lets you be lazy about:\n\n**Who gets to be lazier?** Any developer juggling more than one AI tool. Which, in 2026, is every developer.\n\n**Try it live:** [agentwebui.hackershostel.com](https://agentwebui.hackershostel.com/#/)\n\nOn the home screen, the sidebar holds a DeepSeek chat, a Claude Code workspace, Codex, OpenAI and Gemini, all in one list. The model picker says **llama3.2:3b**, running locally. That's five tools' worth of tabs I no longer have to open.\n\nOne small web page to chat with AI models and with command-line agents, on your own server. Open it and chat\nthere is no setup screen and no accounts. Everything is configured in `.env`. The package and command are still\nnamed `agentwebui-lite`.\n\nThe server is about 3,000 lines of Python with one dependency (`aiohttp`) and uses about 40 MB of memory. The web\nclient is Preact through htm with no build step. Nothing loads from the internet unless you pick a font other than\nGeist.\n\nSetup, written for people who also don't want to read setup instructions:\n\n```\ngit clone https://github.com/HackersHostel/AgentWebUI.git\ncd AgentWebUI\ncp .env.example .env   # fill in your models and agents\ndocker compose up -d\n```\n\nThen open it in your browser and go back to lying down.\n\nThe design rule was simple: **agents are the main character, chat is the supporting cast.** In most UIs it's the other way around.\n\nBecause the laziest model is the one you never have to ask permission to use.\n\nA closed, single-vendor tool can't do this. It wants you in *its* tab. AgentWebUI is just one tab, and it's yours.\n\nA scientific study, conducted by me, on my own laziness:\n\n| Task | Before | With AgentWebUI | \n|---|---|---|\n| Find the right AI tool | Open 4 tabs, 2 terminals, sigh | One dropdown | \n| Find yesterday's chat | Check every app's history | ⌘K | \n| Try a new open model | New tool, new install, new login | Edit env file, restart | \n| Hand off a coding task | Open a terminal, set up the agent | Pick Claude Code, type the task | \n\nThe chainsaw doctors would be proud. Hard job in, lazy solution out.\n\nEntering for the overall prize.\n\nBuilt with [@tahrimwalid](https://dev.to/tahrimwalid) and [@mahedi](https://dev.to/mahedi), who are almost as lazy as me.\n\nIf you're a developer with more AI tabs than browser memory, give AgentWebUI a spin. Then do what the sloths do: delegate, relax, and let the agents earn their keep. 🦥", "url": "https://wpnews.pro/news/i-was-too-lazy-to-open-five-ai-tabs-so-i-built-agentwebui", "canonical_source": "https://dev.to/mahmudurrahmanlabib/i-was-too-lazy-to-open-five-ai-tabs-so-i-built-agentwebui-207a", "published_at": "2026-10-25 00:30:07+00:00", "updated_at": "2026-10-25 00:42:40.631312+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products", "large-language-models"], "entities": ["AgentWebUI", "OpenWebUI", "Claude Code", "Codex", "Ollama", "DeepSeek", "HackersHostel", "Preact"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-was-too-lazy-to-open-five-ai-tabs-so-i-built-agentwebui", "markdown": "https://wpnews.pro/news/i-was-too-lazy-to-open-five-ai-tabs-so-i-built-agentwebui.md", "text": "https://wpnews.pro/news/i-was-too-lazy-to-open-five-ai-tabs-so-i-built-agentwebui.txt", "jsonld": "https://wpnews.pro/news/i-was-too-lazy-to-open-five-ai-tabs-so-i-built-agentwebui.jsonld"}}