Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

LeakHunterX Agent — local acquisition, contextual detection and traceable evidence

The local scanning runtime for the LeakHunterX security workspace.
Configure scans in the dashboard. Run acquisition and detection on your machine.
Review contextual findings, validation, Delta and reports in one workspace.

Quick start · Architecture · Commands · Documentation · Issues

Python 3.10+   /   Linux · Windows · macOS   /   MIT   /   Source: 1.1.0rc2

One runtime. Multiple sources.

Source What runs on the agent
Local projects Supported text files inside a registered root, respecting .lhxignore, filesystem boundaries and scan budgets.
GitHub repositories Authorized repository acquisition at a pinned commit, using the same local detection pipeline.
Live websites Scoped host and page discovery, served HTML/text, headless browser assets and literal JavaScript dependencies.
Historical exposure Assigned archive snapshots, bounded source recovery and historical provenance kept distinct from current exposure.

Secret candidates and endpoints retain context and source provenance. The agent journals sanitized evidence before delivery, retries interrupted transfers and keeps completion behind its pending evidence. The backend coordinates workspace access, validation, Delta, exposure review and reporting.

Quick start

1. Install the current source

git clone https://github.com/Omkar443/leakhunterx-agent.git
cd leakhunterx-agent
git switch main
python -m venv .venv

Activate the environment for your operating system:

# Linux / macOS
source .venv/bin/activate
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
python -m pip install .

Install this release candidate with python -m pip install "leakhunterx-agent==1.1.0rc2". Selecting the exact candidate avoids enabling prereleases for unrelated dependencies. Connect using lhx auth, then run lhx agent.

For opt-in background operation on Linux, stop the foreground agent, then use lhx service install and lhx service start. Inspect it with lhx service status and lhx service logs; stop or remove it with lhx service stop / uninstall. Run these as your registered non-root user, without sudo. Installation does not start a service or copy credentials. See Python installation, Linux prerequisites and PyPI publication for setup and release requirements. Check their version: packages and downloaded binaries may precede the source on main. This source is a release candidate; a main-branch push does not publish a stable package or certify final release acceptance.

2. Connect your workspace

In your production workspace, open Agents, generate a connection token, then:

lhx auth

Paste the token at the hidden prompt. Successful registration starts the agent. The default backend is https://backend-leakhunterx.onrender.com.

3. Start a scan

Keep the agent running. In the dashboard, choose New scan, configure an authorized target and select your connected agent. Progress and delivered evidence appear in the workspace. For subsequent starts:

lhx agent

Use lhx status for a read-only connection check; stop the runtime with Ctrl+C. Local sources require explicit target registration. GitHub sources require repository authorization.

Browser runtime, standalone builds and staging connections

HTTP crawling and headless rendering are enabled together by default. Python installations prepare the matching browser cache on first startup; this requires internet access and supported Chromium system libraries. Later starts reuse the cache. If rendering is unavailable, HTTP acquisition continues with a recorded coverage limitation. The browser sandbox is never disabled.

Standalone Linux x64 and Windows x64 builds are available when published on the releases page. They bundle the matching Chromium runtime and do not require Python. macOS uses the Python installation; a macOS standalone binary is not currently built.

Staging and production registrations are separate. Generate a production token and run lhx auth again when moving from staging. Remove any staging LHX_BACKEND_URL override before starting the production runtime. Updating the code does not delete an existing credential file.

Architecture

Control in the workspace. Acquisition and detection on the agent.

LeakHunterX architecture: local sources and detection, sanitized delivery, backend validation, Delta and review

View the editable architecture diagram
flowchart TB
  UI["Security workspace<br/>Targets · Assignments · Live progress"]

  subgraph MACHINE["Local agent / user machine"]
    direction TB
    LOCAL["Local project<br/>Registered filesystem root"]
    GITHUB["GitHub repository<br/>Authorized, pinned commit"]
    WEB["Live website<br/>HTTP + headless browser"]
    ARCHIVE["Historical web<br/>Assigned archive snapshots"]
    ACQUIRE["Scoped acquisition<br/>Consent · Ignore rules · Resource budgets"]
    DETECT["Detection engine<br/>Secret patterns · Endpoints · Context"]
    OUTBOX["Sanitized evidence + durable outbox<br/>Redaction · Stable event IDs · Ordered replay"]
    LOCAL --> ACQUIRE
    GITHUB --> ACQUIRE
    WEB --> ACQUIRE
    ARCHIVE --> ACQUIRE
    ACQUIRE --> DETECT --> OUTBOX
  end

  subgraph CLOUD["Backend / tenant workspace"]
    INGEST["Authenticated ingestion<br/>Tenant access · Evidence persistence"]
    VALIDATE["Contextual validation<br/>AI assessment when available"]
    DELTA["Delta + exposure correlation<br/>Comparable scope · Coverage-aware changes"]
    RESULTS["Dashboard · Exposure review · Reports"]
    INGEST --> VALIDATE --> DELTA --> RESULTS
  end

  UI -->|"Authorized scan assignment"| ACQUIRE
  OUTBOX -->|"Bounded, sanitized evidence"| INGEST

  classDef source fill:#eef3f7,stroke:#657987,color:#15242f
  classDef agent fill:#1c292f,stroke:#78909c,color:#ffffff
  classDef cloud fill:#e9f6ef,stroke:#40846b,color:#143e31
  class LOCAL,GITHUB,WEB,ARCHIVE,UI source
  class ACQUIRE,DETECT,OUTBOX agent
  class INGEST,VALIDATE,DELTA,RESULTS cloud
Boundary Contract
Source → agent Acquire only authorized assets. Private repository and local source remain on the machine. Repository code is not executed.
Agent → backend Deliver bounded, sanitized findings and semantic observations. Public web evidence may include a redacted source excerpt.
Validation → results Preserve assessment status and uncertainty. AI unavailability does not turn a detection into a confirmed finding or break a scan.
Scan → Delta Compare compatible scans. Failed or cancelled scans do not publish partial detections into dashboard totals or reports. Incomplete coverage does not prove remediation.

Detected raw secrets are redacted before delivery. Managed GitHub assignments use temporary, repository-scoped credentials held in agent memory. AI confidence is an assessment of the available evidence, not proof that a credential is active or exploitable. See evidence delivery for the protocol.

Commands

Command Purpose Current options
lhx auth Register and start the runtime --backend https://…; token entered at the hidden prompt
lhx agent Listen for dashboard assignments --backend, --browser on|off, --log-level, --log-file
lhx status Inspect connection status --backend, --json
lhx project Manage authorized local/repository targets add, list, allow-dashboard, deny-dashboard, remove
lhx scan <target> Run a scan from the terminal Local/repository: --local-only, --profile quick|standard|deep, --json
lhx resume <scan-id> Resume a supported interrupted scan --json
lhx ci Request a scan through an existing CI policy --commit, --policy-id; optional --backend, --request-id, --timeout
lhx status --json
lhx agent --log-level DEBUG --log-file agent.log
lhx scan ./project --local-only --profile deep --json
lhx ci --commit <default-branch-sha> --policy-id <policy-uuid>

Use lhx <command> --help for the complete syntax. lhx start aliases lhx agent; lhx-agent remains a compatibility entry point. CI reads its credential from LHX_CI_TOKEN, not command-line arguments, and defaults to the production backend.

lhx agent --browser off explicitly limits browser coverage while HTTP crawling continues. Live website scans reject local-only, profile and JSON flags rather than silently ignoring them.

Local targets and offline scans

Create a project in the workspace, then register and explicitly authorize its machine-local target:

lhx project add ./project --name Application --project-id <project-id>
lhx project list
lhx project allow-dashboard <target-id>
lhx agent

For an offline scan without cloud, AI, browser or provider requests:

lhx scan ./project --local-only
lhx scan ./project --local-only --json
lhx resume <scan-id> --json

Use .lhxignore for explicit local exclusions; start from the example. Scan only assets you are authorized to assess. Resource budgets protect the host and target; skipped assets remain visible in coverage.

Documentation

Guide What it covers
Local scanning Target consent, profiles, exclusions and offline operation
GitHub scanning Web UI setup, repository authorization and commit-pinned scans
Historical exposure Archive provenance, source recovery and historical findings
Browser rendering Runtime preparation, sandboxing and coverage
Evidence delivery Redaction, durable delivery and recovery boundaries
Release readiness Automated results and remaining acceptance checks

Contributing and verification

python -m pip install -e . pytest
python -m pytest tests -q
python benchmarks/run.py --check --output benchmarks/results/local.json
python benchmarks/run.py --external --check --output benchmarks/results/external-local.json

Real browser integration tests require installed, sandboxed Chromium and LHX_TEST_BROWSER=1. Benchmark scores apply to the labelled synthetic corpus, not arbitrary production sites. The audit records measured results and remaining hosted, soak and package acceptance checks.

Build standalone binaries and understand the release gate

Build binaries on their destination operating system:

python -m pip install . pyinstaller
python packaging/build.py
python packaging/browser_smoke.py dist/<binary-name>

The release workflow verifies tests and benchmarks before building artifacts. Manual builds and candidate tags produce downloadable workflow artifacts. Stable publication requires completed acceptance evidence and the main-branch release guard. Pushing to main alone does not publish a release.


MIT license · Report an issue · Browse releases

Metadata

Release files for leakhunterx-agent 1.1.0rc2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for leakhunterx-agent 1.1.0rc2
File Size Uploaded
leakhunterx_agent-1.1.0rc2.tar.gz 281.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for leakhunterx-agent 1.1.0rc2
File Interpreter ABI Platform
leakhunterx_agent-1.1.0rc2-py3-none-any.whl Python 3 none any Details

Total release size: 533.0 kB

Release files / leakhunterx_agent-1.1.0rc2.tar.gz

Download URL leakhunterx_agent-1.1.0rc2.tar.gz
Size 281.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f9b9190070002417a082eca24e48749b9cea868428a839a38734d8931f4faf33
BLAKE2b-256 checksum
How to use checksums
073aea83e92ae286b556fb3c6dc3ee313b49550c6b9cad97e8a980ff47fb0234
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / leakhunterx_agent-1.1.0rc2-py3-none-any.whl

Download URL leakhunterx_agent-1.1.0rc2-py3-none-any.whl
Size 251.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc323efa40ea83638f96947a29c7c3f007f4c7ed80aa9f3002e6d177705169bc
BLAKE2b-256 checksum
How to use checksums
d9080b3d1ce942b39b8fd2ad4ffb6faded01a0e1aa15fbbbbc765b7631b63ba6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0rc2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page