Skip to main content

Local-first agentic browser automation factory

Project description

nga

Local-first agentic browser automation factory. This repository bootstraps the installed Factory: a pip-installable Python package that starts a local Control Room on a random loopback address and reports application and database health.

This is the first milestone of the Dark Factory MVP (spec: issue #1, ticket: issue #2). Per-user state lives in SQLite under %USERPROFILE%\.nga and never inside Git.

Requirements

  • A supported Python installation (3.11 or newer) on Windows.
  • An internet connection for the initial pip install of dependencies.

Install

After the package is published to PyPI, install it on a clean Windows user account:

py -3.11 -m pip install nga

This installs the nga command and its Python dependencies into the active environment. The package name is nga.

For a local checkout, use:

py -3.11 -m pip install .

Playwright's Python package is installed as a dependency. If the customer PC does not have Chrome or Edge, install the managed Chromium browser once:

py -3.11 -m playwright install chromium

Start the Factory

nga serve

The Factory:

  • starts the Control Room and reports a random loopback address, for example Control Room: http://127.0.0.1:52341/ (loopback only);
  • never binds to a LAN address;
  • opens the reported address in the default browser (pass --no-open to suppress this);
  • creates the per-user SQLite database at %USERPROFILE%\.nga\state.db on first start and keeps it valid across restarts.

Set NGA_HOME to redirect per-user state to another directory:

$env:NGA_HOME = "C:\path\to\state"; nga serve

The health view at http://127.0.0.1:<port>/ shows the running application version and the local database health.

Release the package

Build and validate a wheel from the repository root:

py -3.11 -m pip install build twine
py -3.11 -m build
py -3.11 -m twine check dist\*

For the normal release path, create a GitHub Release. The repository's publish.yml workflow then builds and publishes the distributions with PyPI Trusted Publishing.

For a manual upload, run this only after the package has passed the checks:

py -3.11 -m twine upload dist\*

Focused tests

Fast startup and health behavior (no network required):

py -m pytest tests/test_state.py tests/test_control_room.py -v

Clean pip-install proof on an isolated venv (requires network to download dependencies, takes a few minutes):

py -m pytest tests/test_pip_install.py -m pip_install -v

Development environment (optional):

uv venv --python 3.11
uv pip install -p .venv -e ".[dev]"
.venv\Scripts\python -m pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nga-0.1.0.tar.gz (226.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nga-0.1.0-py3-none-any.whl (180.5 kB view details)

Uploaded Python 3

File details

Details for the file nga-0.1.0.tar.gz.

File metadata

  • Download URL: nga-0.1.0.tar.gz
  • Upload date:
  • Size: 226.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nga-0.1.0.tar.gz
Algorithm Hash digest
SHA256 26e0a5a5ac4f9e929309b64203e82023617c21c3d13ac170124e8b56348cf083
MD5 607a43770f185a669b222fd3ec1d86a6
BLAKE2b-256 de26b55f810b1f13c90fbe8332cd401208fb34429d702bb60ad8786c6e5acb78

See more details on using hashes here.

Provenance

The following attestation bundles were made for nga-0.1.0.tar.gz:

Publisher: publish.yml on omerlefaruk/nga

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nga-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nga-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 180.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nga-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d5312230cdb779af9f89f692ea5405a1ea559c72b7a6b7f6e82cfbf7a5f5729
MD5 b9dff62a7cab808eecb9ada3824c1362
BLAKE2b-256 bee6c299bbd64ec6195fc983e9e8837a826372e17e25dc3ce8469f3425a1ba76

See more details on using hashes here.

Provenance

The following attestation bundles were made for nga-0.1.0-py3-none-any.whl:

Publisher: publish.yml on omerlefaruk/nga

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page