GenericAgent is a minimal, self-evolving autonomous agent framework in Python that gives any supported large language model system-level control over a local computer, built for developers and automation builders who want to run and extend an agent themselves instead of renting a managed one.
What it is
GenericAgent is an open-source agent framework whose entire core is roughly 3,000 lines of seed code. It exposes 9 atomic tools behind an Agent Loop of about 100 lines, and through those tools it grants a language model system-level control over a local computer: browser, terminal, filesystem, keyboard and mouse input, screen vision, and mobile devices through ADB. It lives in the Python AI-agent ecosystem and is distributed under the MIT licence. Its design philosophy is explicit — do not preload skills, evolve them. Every time the framework solves a new task, it crystallizes the execution path into a reusable Skill, so capabilities accumulate into a personal skill tree grown from that seed code.
The concrete problem it addresses is the weight of conventional agent stacks. Comparable setups commonly pull in LangChain and Playwright, and require downloading browser binaries before anything runs. GenericAgent deliberately avoids all three. Its dependencies are tiered: the agent core needs only requests plus four lightweight packages (beautifulsoup4, bottle, simple-websocket-server, aiohttp) for the TMWebdriver local server, while the [ui] extra adds Streamlit and prompt_toolkit/rich for the bundled interfaces. The project also claims full system control at 6x less token consumption. As a self-bootstrap demonstration, the repository states that everything from installing Git and running git init to every commit message was completed autonomously by GenericAgent.
Key capabilities
- 9 atomic tools driven by an Agent Loop of roughly 100 lines, covering browser, terminal, filesystem, keyboard and mouse, screen vision, and ADB-connected mobile devices.
- Self-evolution: each solved task is crystallized into a reusable Skill rather than discarded, forming an accumulating personal skill tree.
- TMWebdriver injects into a real browser session, preserving login state instead of launching an instrumented browser.
- Model compatibility across Claude, Gemini, Kimi, MiniMax and other major models, with cross-platform operation.
- Tiered dependency model: core install needs
requests, beautifulsoup4, bottle, simple-websocket-server and aiohttp; the optional [ui] extra adds Streamlit and prompt_toolkit/rich.
- Headless operation is supported by skipping the
[ui] extra entirely.
- Self-bootstrap proof: installation of Git,
git init, and commit authorship performed by the agent itself.
Who uses it and how
- Browser-centric tasks that depend on an authenticated session, including a documented case where an hCaptcha "Are you human?" challenge appeared mid-task while configuring a Discord bot and the real browser session passed it, allowing the task to continue.
- Desktop and mobile automation at personal-finance scale, such as locating expenses over ¥2K in the last 3 months by driving Alipay through ADB.
- Client-driving messaging workflows, demonstrated by sending bulk WeChat messages through full control of the WeChat client.
- Quantitative research jobs, for example screening for GEM stocks with an EXPMA golden cross and turnover above 5%.
- Autonomous web exploration with periodic summarization, plus everyday consumer flows such as ordering food delivery through a delivery app.
Getting started
The README specifies Python 3.11 or 3.12, and warns against Python 3.14 because it is incompatible with pywebview and other dependencies. Installation is a clone followed by uv venv, uv pip install -e ".[ui]", and cp mykey_template_en.py mykey.py to hold an LLM API key; detailed guides live at docs/installation.md and docs/installation_zh.md, and can be fetched directly via curl -fsSL https://raw.githubusercontent.com/lsdefine/GenericAgent/refs/heads/main/docs/installation.md.
How it compares
The project is positioned against heavier agent stacks that depend on LangChain and Playwright or on separately downloaded browser binaries, which it declines to use. It is model-agnostic across Claude, Gemini, Kimi and MiniMax rather than tied to a single vendor, and the README notes that the official distribution channels are GitHub and https://gaagent.ai only, with DintalClaw as the sole authorized commercial partner. No list of paid products it replaces is provided in the available facts.
When to use it — and when not to
A self-hoster must operate a local Python environment on 3.11 or 3.12, supply an LLM API key in mykey.py, and grant the agent genuine system-level control over browser, filesystem, terminal and input devices, with UI extras such as Streamlit installed only if the bundled interfaces are wanted. Anyone on Python 3.14, anyone unwilling to hand an agent that degree of machine access, and anyone wanting a fully managed hosted service should look elsewhere. Honest caveats: 171 open issues are recorded, one installation guide is Chinese-only, and the token-consumption and comparison claims are stated in the README without supporting benchmark detail in the available material.