Skip to content

aidoctor654-sys/constrained-browser-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

constrained-browser-automation

Standalone toolkit for running headless Chromium on resource-constrained ARM devices (Termux/Android, Raspberry Pi, embedded Linux) without root, Playwright, X11, or API keys.

What this is

A zero-dependency browser automation stack (except the chromium package itself and optionally websocket-client) using Chrome DevTools Protocol (CDP) over HTTP/WebSocket.

You control Chrome by talking directly to its built-in debugger — no middleman, no cloud service, no subscription, no 500 MB Node/npm install.

Who it's for

  • AI agents running on low-resource ARM hosts without root access
  • Scraping/rendering pages that need JavaScript on old phones, Raspberry Pi, or VPS
  • Anyone who hit Could not find a version that satisfies the requirement playwright because no ARM wheel exists
  • Anyone who can't install X11, systemd, or Docker

Repository layout

Path Purpose
scripts/chromium-start.sh Start/stop/health-check Chromium with safe flags
scripts/chrome-resource-guard.py Auto-kill Chrome when RAM/battery low; resume when safe
scripts/web-dashboard.py stdlib-only monitoring dashboard (http.server + sqlite3)
templates/dashboard.html Zero-build monitoring UI (no npm, no pip)
SKILL.md Full documentation: flags, CDP recipes, pitfalls, alternatives
references/ Deep-dive notes on CDP without Playwright, glibc vs Bionic, D-Bus noise

Quick start

# Example: Termux
pkg install chromium          # or chromium/x11 from community repo
./scripts/chromium-start.sh
curl -s http://localhost:9222/json/version

On Raspberry Pi OS, Debian ARM, Alpine — install chromium-browser or chromium via apt/apk, edit the shebang in scripts if needed, and run the same launcher.

Important: paths are device-specific by default

The scripts assume a POSIX environment. If you run on Termux, paths point to Termux prefixes. If you run on Raspberry Pi OS, Debian, or Alpine:

  • Change the shebang to #!/usr/bin/env bash or #!/bin/sh
  • Replace $PREFIX with /usr or your package manager prefix
  • Replace profile directories ($HOME/.chromium-termux) with any path you own

These are trivial edits — the logic (flags, CDP protocol, resource rules) is universal.

License

Public domain / Unlicense — steal it, fork it, sell it, no attribution needed. Built so every broke ARM box can render the modern web like a cloud VPS.

Releases

No releases published

Packages

 
 
 

Contributors