Python-based AI browser agent that turns a single prompt into multi-step web automation.
NAVIA receives a natural-language objective, observes the browser, decides the next action with an LLM, executes that action, observes the new state, and repeats until the objective is complete.
Example:
Open https://example.com, inspect the page and return its title.
A business-oriented example can be as simple as:
Open the customer portal, search for order 12345,
open its details and return the current status.
The badges describe the technology used to build NAVIA. Public Windows users run the compiled executable and do not need to install Python, pip, Playwright, a virtual environment, or PyInstaller.
| Component | Version |
|---|---|
| NAVIA PATH Runtime | 1.1.14 |
| UiPath Library | 4.1.3 |
| Platform | Windows x64 |
| Public executable | NAVIA_PATH_v1.1.14.exe |
Current executable SHA256:
E5C210A1484CF33A2145747B682D842114B3B1F84349DC4627C77E8F8FDEB259
The UiPath Library version and NAVIA runtime version are intentionally independent.
NAVIA combines LLM reasoning with deterministic browser control. It can:
- navigate across pages and tabs;
- click, type, select, hover and submit;
- inspect dynamic browser state;
- work with modern web applications and authenticated sessions;
- extract structured information;
- return a machine-readable JSON result;
- execute from PowerShell/CMD or as the entry point of a UiPath Library.
NAVIA supports Microsoft Edge and Google Chrome.
Supported LLM provider families include:
- Google Vertex AI;
- Google Gemini Direct API;
- OpenAI;
- Anthropic;
- Azure OpenAI.
Natural-language prompt
|
v
Targeted browser observation
|
v
LLM decides the next action
|
v
Playwright / browser control executes it
|
v
Browser state is observed again
|
v
Repeat until the objective is complete
|
v
Structured result
For a deeper technical view, see docs/ARCHITECTURE.md.
This README is the single source of truth for installation and first use. The old QUICKSTART documentation has been removed to avoid duplicated instructions drifting apart.
You need:
- Windows x64;
- Microsoft Edge or Google Chrome;
- network access to your selected LLM provider;
- valid credentials for that provider;
- UiPath Studio/Robot only if you intend to use the UiPath Library.
The operational runtime is installed under:
%LOCALAPPDATA%\NAVIA_PATH
For example:
C:\Users\<YOUR_USER>\AppData\Local\NAVIA_PATH
Download the repository ZIP from GitHub or clone the repository, then extract it to a user-writable directory.
Example:
C:\Users\<YOUR_USER>\projects\NAVIA PATH
Paths containing spaces are supported.
The distribution contains the versioned executable, manifest, environment preparation scripts, provider templates and UiPath Library.
Files downloaded from GitHub can inherit Windows Mark of the Web metadata.
On machines using PowerShell RemoteSigned, this can cause an error such as:
CHECK_ENVIRONMENT.ps1 cannot be loaded.
The file is not digitally signed.
- Right-click the downloaded ZIP.
- Select Properties.
- Enable Unblock if Windows shows the option.
- Click Apply.
- Extract the archive.
Unblock the environment script:
Unblock-File -LiteralPath "C:\path\to\NAVIA PATH\CHECK_ENVIRONMENT.ps1"If Windows marked the whole extracted tree, you can unblock all files in that extracted copy:
Get-ChildItem -LiteralPath "C:\path\to\NAVIA PATH" -Recurse -File | Unblock-FileNAVIA does not require ExecutionPolicy Bypass. The public CMD launcher invokes PowerShell with process-local RemoteSigned behavior and does not change the user or machine execution policy.
The current public executable is not Authenticode-signed. Enterprise EDR/ASR/application-control products can therefore audit or block it because it is a newly compiled or low-prevalence executable.
Do not disable security controls. Verify the SHA256 against CURRENT_VERSION.txt and coordinate with your security team when required. See SECURITY.md.
Provider templates are stored under:
config\providers\
Available templates:
.env.vertex.example
.env.gemini.example
.env.openai.example
.env.anthropic.example
.env.azure_openai.example
Copy the template for the provider you want to use and remove only the final .example suffix.
Example for Vertex:
Copy-Item ".\config\providers\.env.vertex.example" ".\config\providers\.env.vertex"Keep the original .example file. It is public documentation; the active .env file is your local configuration and is ignored by Git.
CHECK_ENVIRONMENT can auto-detect an active provider file, but if you maintain more than one active .env file, select the provider explicitly:
CHECK_ENVIRONMENT.cmd -Provider vertexor:
CHECK_ENVIRONMENT.cmd -Provider openaiThis makes the selected provider unambiguous.
Vertex is the most complete portable example because it can use a local credential JSON or standard Google ADC.
Copy-Item ".\config\providers\.env.vertex.example" ".\config\providers\.env.vertex"Edit:
config\providers\.env.vertex
Example:
NAVIA_PROVIDER=vertex
NAVIA_VERTEX_PROJECT=<YOUR_GCP_PROJECT_ID>
NAVIA_VERTEX_LOCATION=global
NAVIA_VERTEX_MODEL=gemini-3.8-flash
NAVIA_VERTEX_TIMEOUT_SECONDS=60
GOOGLE_APPLICATION_CREDENTIALS=credentials\vertex_credentials.jsonReplace <YOUR_GCP_PROJECT_ID> with your own Google Cloud project.
For the portable file-based setup, place your credential JSON at:
credentials\vertex_credentials.json
Keep this path relative in the extracted distribution:
GOOGLE_APPLICATION_CREDENTIALS=credentials\vertex_credentials.jsonDo not manually rewrite it to an AppData path. CHECK_ENVIRONMENT installs the credential into the local runtime and updates the local runtime configuration.
If the machine already has Application Default Credentials, NAVIA can discover:
%APPDATA%\gcloud\application_default_credentials.json
Vertex credential discovery follows the runtime implementation:
- explicit GOOGLE_APPLICATION_CREDENTIALS configured in .env.vertex;
- an existing GOOGLE_APPLICATION_CREDENTIALS environment variable;
- standard Google ADC under %APPDATA%\gcloud;
- extracted credentials\vertex_credentials.json when available.
For a portable distribution, the recommended option remains the relative credentials\vertex_credentials.json path.
Use the matching template and supply the values required by your account.
| Provider | Active file | Main credentials/settings |
|---|---|---|
| Gemini Direct | config\providers.env.gemini | GEMINI_API_KEY, GEMINI_MODEL |
| OpenAI | config\providers.env.openai | OPENAI_API_KEY, OPENAI_MODEL |
| Anthropic | config\providers.env.anthropic | ANTHROPIC_API_KEY, ANTHROPIC_MODEL |
| Azure OpenAI | config\providers.env.azure_openai | AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_API_KEY, AZURE_OPENAI_DEPLOYMENT_NAME |
The shipped .example files contain the supported variable names and defaults. A provider-specific reference is also available in PREPARE_LLM_ENVIRONMENTS.txt.
Once the provider configuration and credentials are ready, run:
CHECK_ENVIRONMENT.cmdFor an explicit provider:
CHECK_ENVIRONMENT.cmd -Provider vertexFrom PowerShell:
cmd /c CHECK_ENVIRONMENT.cmd -Provider vertexYou can also invoke the PowerShell script directly when allowed by your execution policy:
.\CHECK_ENVIRONMENT.ps1 -Provider vertexThe current 1.1.14 workflow:
- chooses %LOCALAPPDATA%\NAVIA_PATH as the default runtime root;
- creates Runs, Logs, Cache, EdgeProfile, ChromeProfile, Secrets, config and Bootstrap directories;
- verifies that the local runtime is writable;
- locates the NAVIA distribution and CURRENT_VERSION.txt;
- reads the release manifest;
- calculates the source executable SHA256;
- refuses installation if the executable hash does not match the manifest;
- installs the versioned executable locally;
- creates/refreshes the stable %LOCALAPPDATA%\NAVIA_PATH\NAVIA_PATH.exe entry point;
- removes obsolete versioned NAVIA executables from the local runtime;
- copies the public configuration into the local runtime;
- installs provider credentials when required;
- for Vertex, copies the resolved credential JSON to the local Secrets directory and rewrites the installed local .env.vertex to reference it;
- sets the NAVIA runtime environment for the current process;
- runs the canonical NAVIA_PATH.exe --check for provider and browser readiness;
- removes any stale readiness marker if the check fails;
- runs NAVIA_PATH.exe --mark-ready after a successful check;
- verifies that NAVIA_READY.json was actually created.
A successful run ends with output similar to:
[OK] NAVIA PATH v1.1.14 is READY and operational.
[OK] Local Runtime Root: C:\Users\<USER>\AppData\Local\NAVIA_PATH
[OK] Executable: C:\Users\<USER>\AppData\Local\NAVIA_PATH\NAVIA_PATH.exe
A prepared runtime looks similar to:
%LOCALAPPDATA%\NAVIA_PATH\
|
|-- NAVIA_PATH.exe
|-- NAVIA_PATH_v1.1.14.exe
|-- CURRENT_VERSION.txt
|-- NAVIA_READY.json
|
|-- config\
| \-- providers\
| \-- .env.<provider>
|
|-- Secrets\
| \-- application_default_credentials.json
|
|-- Runs\
|-- Logs\
|-- Cache\
|-- EdgeProfile\
|-- ChromeProfile\
\-- Bootstrap\
For Vertex file-based credentials, the installed local runtime is isolated from the downloaded credentials directory after successful preparation.
Check the version:
& "$env:LOCALAPPDATA\NAVIA_PATH\NAVIA_PATH.exe" --versionExpected:
NAVIA_PATH v1.1.14
Run the fast local-only runtime check:
& "$env:LOCALAPPDATA\NAVIA_PATH\NAVIA_PATH.exe" --check-runtime --jsonThe fast runtime check is designed to validate local consistency without performing an LLM mission.
For a full provider/environment check:
& "$env:LOCALAPPDATA\NAVIA_PATH\NAVIA_PATH.exe" --check --provider vertex --jsonUse your provider name instead of vertex when applicable.
Microsoft Edge:
$NavIA = "$env:LOCALAPPDATA\NAVIA_PATH\NAVIA_PATH.exe"
& $NavIA run --browser msedge --prompt "Open https://example.com and tell me the page title" --max-iterations 10 --close-browser falseGoogle Chrome:
$NavIA = "$env:LOCALAPPDATA\NAVIA_PATH\NAVIA_PATH.exe"
& $NavIA run --browser chrome --prompt "Open https://example.com and tell me the page title" --max-iterations 10 --close-browser falseThe CLI also supports a base64 prompt and an explicit result-file path, which is how the UiPath activities integrate with the runtime.
The repository includes:
uipath\NAVIA_PATH.Activities
Current UiPath Library version:
4.1.3
Embedded/current NAVIA runtime:
1.1.14
The two public activities are:
- NAVIA PATH - Edge;
- NAVIA PATH - Chrome.
Inputs:
in_UserPrompt
in_MaxIterations
in_CloseBrowserAfterExecution
Outputs:
out_ExecutionResult
out_NavIA_Window
The executable path is resolved internally. There is no public in_NavIAPathExe argument.
The recommended operational model is:
CHECK_ENVIRONMENT once
|
v
%LOCALAPPDATA%\NAVIA_PATH is READY
|
v
UiPath activity resolves local NAVIA_PATH.exe
|
v
Activity prepares/attaches the debug browser session
|
v
NAVIA runs synchronously
|
v
result.json is read into out_ExecutionResult
Binding out_ExecutionResult in the calling workflow is optional. Bind it when the parent workflow needs to consume the returned JSON.
For UiPath-specific details see uipath/NAVIA_PATH.Activities/README.md.
After a successful full environment check, NAVIA writes:
%LOCALAPPDATA%\NAVIA_PATH\NAVIA_READY.json
The readiness marker contains non-secret runtime metadata such as version, provider, executable integrity metadata, configuration fingerprint and credential fingerprint.
It must never contain credential contents.
If the provider configuration, credential file or runtime changes materially, rerun:
CHECK_ENVIRONMENT.cmdWhen moving from an older NAVIA runtime, extract/configure the new distribution and rerun CHECK_ENVIRONMENT.
Verify afterward:
& "$env:LOCALAPPDATA\NAVIA_PATH\NAVIA_PATH.exe" --version
& "$env:LOCALAPPDATA\NAVIA_PATH\NAVIA_PATH.exe" --check-runtime --jsonIf an old local runtime is interfering with a test, preserve it as a backup rather than deleting it immediately:
$Runtime = "$env:LOCALAPPDATA\NAVIA_PATH"
if (Test-Path $Runtime) { Rename-Item -LiteralPath $Runtime -NewName "NAVIA_PATH_BACKUP_OLD" }Then rerun CHECK_ENVIRONMENT from the new extracted distribution.
Unblock the downloaded script or the ZIP as described in the Windows security section, then rerun CHECK_ENVIRONMENT.cmd.
The complete environment preparation did not finish successfully. Do not create the file manually. Rerun CHECK_ENVIRONMENT and resolve the reported validation error.
Check the installed version:
& "$env:LOCALAPPDATA\NAVIA_PATH\NAVIA_PATH.exe" --versionIf the runtime is older than 1.1.14, prepare the current distribution again.
Verify that:
credentials\vertex_credentials.json
exists and that your active .env.vertex points to:
GOOGLE_APPLICATION_CREDENTIALS=credentials\vertex_credentials.jsonThen rerun CHECK_ENVIRONMENT.
Google can warn when end-user ADC credentials do not contain a quota project. If NAVIA reports successful configuration and authentication, the local authentication check succeeded; API enablement and quota behavior can still depend on the selected Google Cloud project and organization.
Do not disable ASR, EDR or application-control policies. Compare the executable SHA256 with CURRENT_VERSION.txt and provide the repository, version and hash to your security team if an allow-list or review is required.
Never commit:
- active .env provider files;
- Google ADC JSON files;
- API keys;
- access or refresh tokens;
- client secrets;
- private keys;
- anything from %LOCALAPPDATA%\NAVIA_PATH\Secrets.
The repository ships only provider examples. Real credentials are user-supplied and local.
See SECURITY.md for the full policy.
NAVIA_PATH\
|
|-- README.md
|-- RELEASE_NOTES.md
|-- SECURITY.md
|-- CONTRIBUTING.md
|-- LICENSE
|
|-- CURRENT_VERSION.txt
|-- NAVIA_PATH_v1.1.14.exe
|-- CHECK_ENVIRONMENT.cmd
|-- CHECK_ENVIRONMENT.ps1
|-- NAVIA_BOOTSTRAP.ps1
|-- NAVIA_SYNC_CHECK.ps1
|-- INSTALL_LOCAL.ps1
|
|-- config\
| \-- providers\
|
|-- credentials\
|
|-- docs\
| |-- ARCHITECTURE.md
| \-- NAVIA_DEMO.mp4
|
\-- uipath\
\-- NAVIA_PATH.Activities\
NAVIA is distributed under the MIT License. See LICENSE.