v0.1.0

feder-cr/AIHawkv0.1.0Sep 2, 2026by feder-cr

AI Summary

AIHawk v0.1.0 launches as a standalone package, replacing its previous documentation-only state. It introduces a web UI and CLI mode for automated browser interaction, relying on invisible-playwright-mcp. The release emphasizes security by ensuring API keys never reach the browser process and includes a placeholder mode for testing without a key.

Key Highlights

  • Launch of AIHawk as a standalone package with both UI and CLI modes.
  • Functionality available without an API key via a literal command placeholder mode.
  • Security implementation ensuring API keys are stripped from the browser process environment.
  • Reliance on invisible-playwright-mcp for browser automation tools.

Breaking Changes

  • The repository has transformed from documentation into a functional package.
  • Requires invisible-playwright-mcp version 0.9.0 or newer.

New Features

  • Standalone web UI accessible via `uvx aihawk ui`.
  • CLI mode (`aihawk do`) for scripting and cron jobs.
  • Placeholder mode supporting literal browser commands without an API key.
  • Tab strip functionality for UI navigation.

Full Release Notes

The first release of AIHawk as a package. Before this, the repository was
documentation for an MCP server you installed into somebody else's client. Now it
is the thing itself.

```bash
uvx aihawk ui --openrouter-key sk-or-...
```

Then open `http://127.0.0.1:8765`: the conversation on the left, the live browser
on the right. One command, one key, no client to install and nothing else to run.

`aihawk do "..."` is the same machinery with no page and an answer on stdout, for
scripts and cron. Literally the same: there is one loop in the package and one
call to the model, and the narration is a parameter rather than a mode.

**Without a key it still starts.** What answers is a placeholder that understands
five literal commands - `go`, `read`, `click`, `type`, `tab`, `shot` - which is
enough to see the interface work and to tell a browser problem from a model
problem without spending anything. It is not a fallback; it is how most of this
release was tested.

**Nothing here has a privileged path to the browser.** The interface talks to
[invisible-playwright-mcp](https://github.com/feder-cr/invisible-playwright-mcp)
over MCP, using the same fourteen tools any other client gets. That is the reason
to trust the tools are sufficient to build on: the flagship interface is a client
of them.

**The key never reaches the browser process.** It is stripped from the
environment the engine is started with, and a test fails if that stops being
true.

Requires `invisible-playwright-mcp` 0.9.0 or newer. The tab strip needs
`session_list_pages` to return id, title, url and which tab is active - four
fields its description had always promised and, until 0.9.0, had never returned.