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
nga install-skills

This installs the nga command and its Python dependencies into the active environment. The second command installs the nga skill in %USERPROFILE%\.agents\skills for all compatible agents on that user account.

For a local checkout, use:

py -3.11 -m pip install .
nga install-skills

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.

Start an automation project

Put the approved analysis in a Markdown file, open Codex in the project folder, and invoke the installed skill:

$nga C:\path\to\analysis.md

The skill builds, tests, releases, trials, and hands over the automation. It continues until it needs credentials, access, a business decision, or protected approval. Internal delivery state stays in SQLite. nga status reports durable progress.

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.4.0.tar.gz (247.4 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.4.0-py3-none-any.whl (200.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nga-0.4.0.tar.gz
Algorithm Hash digest
SHA256 219f2b56fbda6eb923c18b834fda1272edade1efaea9c8982aca7f1ede7e10de
MD5 cff15cfcf73a7690776fd38823be754a
BLAKE2b-256 f48bf989205df7cc5cabaecdb3981ec2b4a1d08e3c374613897d7f2e518a9598

See more details on using hashes here.

Provenance

The following attestation bundles were made for nga-0.4.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.4.0-py3-none-any.whl.

File metadata

  • Download URL: nga-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 200.8 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8d295bc09171f94dfe9fd4c99131a299c3a7c8e80031cd85215a8270eeb0c114
MD5 4228e3b168a56336af8344ec8246e45b
BLAKE2b-256 e28f160d34fc05ee6c2b9e1f749f9d658503621cc99ab11024e2b8453e4f38b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for nga-0.4.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