Overview
freu-cli is an open-source browser automation engine designed to fix a specific failure mode of LLM-powered agents: rerunning the same web task burns tokens every time, even when nothing about the task has changed. Instead of letting a vision-based agent re-analyze a page on every invocation, freu-cli records a browser session once, compiles it into a deterministic skill, and lets compatible agents invoke that skill thereafter while avoiding recurring DOM/navigation LLM tokens.
The project is the open-source companion to Freu AI, the macOS automation product behind it. Where Freu AI applies the same idea to native Mac apps via Semantic UI anchors, freu-cli applies it to the browser via what the team calls Constellation-based DOM targeting — the recorded element plus its ancestors, neighbors, and a semantic anchor, stored together so the skill keeps working after a CSS class rename or layout reshuffle.
freu-cli targets the developer building agentic workflows in AI workflow tools and IDE-resident coding agents. It drops directly into the skills directories of Claude Code, Codex CLI, Cursor, OpenClaw, and Hermes — so a recorded skill becomes a callable command inside the agent's own workspace without any extra wiring.
Key Features
- Record once, reuse for stable workflows — A single guided recording session compiles into a reusable skill. Subsequent runs invoke the compiled DSL locally without another LLM call for the browser navigation logic itself, so recurring DOM/navigation token cost is effectively zero.
- Constellation-based DOM targeting — Each interaction captures the clicked element plus its ancestors, nearby neighbors, children, and a tag-specific semantic anchor. Auto-generated classes and IDs are pruned, so skills survive class renames and layout changes that would break a brittle CSS selector.
- Drops into agent skills directories — Installs skills directly into
~/.claude/skills,~/.codex/skills,~/.cursor/skills,~/.openclaw/skills, and~/.hermes/skills. Any AI agent supporting those directories can call the skill by name. - LiteLLM-compatible — Works with any LLM provider supported by LiteLLM during the one-time recording/compilation step, so teams can use OpenAI, Anthropic, or local models without lock-in.
- Open-source under AGPL-3.0 — Source code is on GitHub, anyone can inspect or extend the compilation pipeline; the AGPL license requires any modifications served to others to remain open.
- Recording bridge for Chrome — A Chrome extension plus an HTTP bridge on port 8787 captures the live session, ensuring the constellation data is grounded in the actual rendered DOM rather than a static snapshot.
How to Get Started
- Install — Python is the runtime. From a checkout of the repo run
pip install .. - Set a provider — Export an LLM API key for the recording step, e.g.
export OPENAI_API_KEY=sk-.... Any LiteLLM-compatible provider works. - Record a skill — Start the Chrome extension + bridge, then run
freu-cli learn ./my-skill --objective "Star a GitHub repository by URL". Walk through the task once in the browser. - Run the compiled skill —
freu-cli run ./my-skill StarRepository --repository-url https://github.com/freu-ai/freu-cliexecutes the deterministic DSL with no further LLM calls. - Drop into an agent — Copy the compiled skill into the agent's skills directory (
~/.claude/skills,~/.cursor/skills, etc.) and it becomes a callable tool inside that agent's workspace.
A small freu-cli skill in ~/.claude/skills can become addressable from inside a Claude Code session; the same directory-based pattern is also documented for Codex CLI, Cursor, OpenClaw, and Hermes.
How It Compares
- vs. Browser Use / Stagehand — Both are designed for AI-assisted browser automation at runtime. freu-cli's core distinction is compiling a recorded workflow once and replaying it deterministically; subsequent runs incur no LLM cost but lose the ability to reason about novel UI state mid-task. Pick freu-cli for repetitive jobs, the others for one-off open-ended browsing.
- vs. Playwright / Puppeteer scripts — Hand-written automation scripts are deterministic but require an engineer to write and maintain selectors. freu-cli writes the equivalent script from a recorded session and chooses anchors meant to survive UI drift, trading some control for less maintenance.
- vs. Computer-use agents (Claude Computer Use, OpenAI Operator) — Those agents see the screen and decide step-by-step, every time. They handle novel layouts well but cost meaningful tokens per run; freu-cli is the inverse — narrow on flexibility, wide on cost-per-run.
- vs. RPA tools (UiPath, Power Automate Desktop) — Traditional RPA can be brittle when UIs change; freu-cli's constellation targeting is designed to tolerate class renames and page reshuffles. The trade-off is less of the enterprise governance (audit, RBAC, run scheduling) that established RPA packs in.
The honest read: freu-cli is best when a workflow runs many times with the same intent and the cost of re-reasoning would dominate. It's a poor fit for exploratory, novel browsing where adaptability matters more than repeatability.
Pricing & Plans
freu-cli is free and open-source under AGPL-3.0. There is no paid tier of the CLI itself.
- freu-cli — Free, open source. The repository has 26 stars at launch; expect feature breadth and stability typical of a young project.
- LLM provider costs — Recording/compilation calls a provider through LiteLLM, so teams pay normal per-token rates for the one-time compile. Subsequent runs of the compiled skill execute locally and incur no provider cost.
- Freu AI (the Mac product) — Markets a "$0 recurring run cost" message for OS-level Mac automation; the CLI is the browser-side piece. Pricing for the broader Freu AI product is not currently published as tiered plans.
Cost-of-ownership realism: the "up to 90%" token-reduction claim from the project's README is a theoretical model — one ~50k-token compile vs. zero-token replays — not an empirically benchmarked figure. Real savings will track how many times a given skill actually runs.
Best For
- Developers building agent skills in Claude Code, Codex CLI, Cursor, OpenClaw, or Hermes who want low-cost reusable browser actions
- Indie hackers running repetitive browser workflows (data scraping, form filling, account-level admin) at high frequency
- Teams burning tokens on the same browser tasks daily and looking to amortize that cost into a one-time compile
- Open-source-friendly orgs comfortable with AGPL and willing to contribute back if they extend the engine
- Workflow authors comparing alternatives in the broader agent skills ecosystem before standardizing
FAQ
Is freu-cli free?
Yes. freu-cli is open-source under AGPL-3.0 with no paid tier. You pay normal LLM provider rates for the one-time recording/compilation step; subsequent runs execute locally and incur no provider cost.
How is it different from Browser Use or Stagehand?
Browser Use and Stagehand run a fresh agent on every invocation, paying LLM tokens each time. freu-cli compiles a recording into a deterministic skill once and replays it for free thereafter. The trade-off is that compiled skills can't adapt to a genuinely novel page state mid-run.
What does "Constellation-based DOM targeting" actually mean?
For each interaction in the recording, the CLI captures the clicked element along with its ancestors, nearby neighbors, children, and a tag-specific semantic anchor. Auto-generated classes and IDs are pruned. The cluster of stable context is what survives a CSS rename or layout reshuffle.
Which agents can use the compiled skills?
At launch: Claude Code (~/.claude/skills), Codex CLI (~/.codex/skills), Cursor (~/.cursor/skills), OpenClaw (~/.openclaw/skills), and Hermes (~/.hermes/skills). Any agent that reads a flat skills directory should work.
Is the 90% token reduction claim verified?
Per the project's README, it's a theoretical model — one ~50k-token compile vs. zero-token replays — not an empirical benchmark. Real savings depend on how many times each compiled skill is actually executed.
What runtime does it need?
Python (the codebase is 100% Python). It also requires a Chrome extension plus an HTTP bridge running on port 8787 during the recording step. Compiled skills then execute deterministically.
Can I use freu-cli in a closed-source product?
AGPL-3.0 is the license. Any modifications served to others over a network must be open-sourced under the same license. Commercial closed-source embedding should be cleared with a license review before adoption.
Is freu-cli the same thing as Freu AI?
No. Freu AI is a broader macOS automation agent that uses Semantic UI anchors for native Mac app automation. freu-cli is the browser-specific, open-source companion that uses Constellation-based DOM targeting for the web side.



