Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

maki-browser-plugin

A maki plugin that provides browser automation tools via Playwright/Chromium. The agent can launch a browser, navigate pages, click elements, fill forms, execute JavaScript, take screenshots, and inspect network/console logs — all through tools available inside maki sessions.

screenshot

How it works

The plugin spawns a detached Node.js process running a Playwright-managed Chromium browser. It communicates with the Node server through temp-file IPC (JSON-lines): commands are written to cmd.jsonl, responses are read from resp.jsonl. A single browser context is shared across all navigations, so cookies and localStorage persist between calls unless reset_state=true is used.

The Node.js server script is embedded directly in the Lua source (browser.lua) and written to disk at runtime — no separate server files are needed.

Tools

10 tools registered under the "browser" kind:

Tool Description
browser_launch Launch Chromium and navigate to a URL. Supports headless mode, custom viewport, and fresh context resets.
browser_click Click an element by CSS selector. Reports URL, network activity, and console errors after the click.
browser_fill Type text into form fields. Clears existing content first by default.
browser_evaluate Execute arbitrary JavaScript in the page. Returns JSON-serialized results.
browser_content Get the rendered HTML of the page or a specific element.
browser_assert_text Check whether text appears (or is absent) on the page. Returns PASS/FAIL.
browser_network_log View captured network requests (method, URL, status, optional body). Saves artifacts to .maki/browser/.
browser_console_log View browser console entries, filterable by level (error, warn, log).
browser_screenshot Capture a PNG screenshot of the page or a specific element, returned as a base64 image.
browser_close Close the browser and stop the Playwright server.

Prerequisites

  • Node.js — the plugin spawns a Node.js process to run Playwright.
  • Playwright + Chromium — install with:
    npm install playwright
    npx playwright install chromium

Install

  1. Copy browser.lua into your maki Lua directory, for example:

    cp browser.lua ~/.config/maki/lua/
  2. Load it from your maki init file (~/.config/maki/init.lua):

    require("browser")
  3. Set permissions in ~/.config/maki/plugin.toml — the plugin needs run (to spawn Node.js) and fs_read/fs_write (for temp-file IPC and artifact saving):

    [permissions]
    run = true
    fs_read = true
    fs_write = true

Configuration

The plugin registers two options you can set in your maki config:

maki.setup({
  plugins = {
    ["maki-browser-plugin"] = {
      cmd = "node",       -- Node.js binary path
      server_timeout = 15, -- Timeout in seconds for each server command
    },
  },
})

Credits

This plugin was generated 100% by DeepSeek V4 Pro, after its human operator got fed up with silly indentation bugs when generating HAML.

License

MIT

About

Browser tools for the Make coding agent

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages