Browser automation CLI for AI agents - reliable element targeting through accessibility tree refs
Project description
browse-now
Browser automation CLI for AI agents. Control your real browser from the command line with reliable element targeting through accessibility tree refs.
Part of Nowledge Mem - Personal memory for AI agents.
Now a compiled binary.
browse-nowships the Rust-builtbrowse-nowbinary instead of a Python module.pip install browse-nowdownloads a platform wheel that contains the compiled CLI and putsbrowse-nowon yourPATH. No Python runtime requirement beyond pip, and no Python dependencies. It drives your browser through the Nowledge Mem Exchange extension over the local WebSocket bridge the Nowledge Mem app already serves. The command surface is unchanged.
Why browse-now?
- Low overhead: No tool definitions loaded into LLM context (unlike MCP)
- Reliable targeting: Uses accessibility tree refs (
@e1,@e2) for high click reliability - AI-agent optimized: Designed for the
snapshot → click → repeatworkflow - Multi-browser support: Works with Chrome, Arc, Edge, and other Chromium browsers
Installation
pip install browse-now
The wheel bundles the compiled browse-now binary for your platform (macOS
arm64/x86_64, Linux x86_64/aarch64, Windows x64). It must still run on the same
machine as the Nowledge Mem app and the connected browser extension.
Prerequisites
- Nowledge Memory Exchange Chrome extension installed and active
- Nowledge Mem app running on the same machine (provides the local browser bridge)
Quick Start
# Navigate to a page
browse-now open https://example.com
# Get interactive elements with refs
browse-now snapshot -i
# textbox "Search" [e1]
# button "Submit" [e2]
# Click by ref
browse-now click @e2
# Fill input
browse-now fill @e1 "AI agents" --submit
# Show version
browse-now --version
Core Workflow
1. browse-now open <url> # Open page (isolated agent tab)
2. browse-now snapshot -i # Get refs [e1], [e2]...
3. browse-now click @e5 # Click by ref
4. browse-now fill @e3 "text" # Fill by ref
5. (If page changed) → snapshot -i again
For the full command reference (navigation, interactions, screenshots, tabs, multi-browser, JSON output) see mem.nowledge.co/docs.
Local-only security model
browse-now talks to the browser bridge endpoints exposed by the Nowledge Mem
app. Those endpoints are intentionally local-only: they are not exposed
through Access Anywhere, Cloudflare tunnels, or other remote-access paths.
browse-nowmust run on the same machine as the Nowledge Mem app- the controlled browser must also be on that same machine with the Exchange extension active
- publishing to PyPI makes the CLI easier to install, but does not turn browser automation into a remote-access surface
Documentation
- Full Documentation
- Nowledge Mem - Personal memory for AI agents
- Chrome Extension
License
Proprietary - see Nowledge Terms of Service
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file browse_now-2.10.0.tar.gz.
File metadata
- Download URL: browse_now-2.10.0.tar.gz
- Upload date:
- Size: 86.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e3ea50ed4ee6cc81c9b133bac638253a1da1d925b9c15b4233904a59740843c
|
|
| MD5 |
42bafccd92e3c77646ad32da40196857
|
|
| BLAKE2b-256 |
273603a2c6f8095150ddf903591fd2ef46b94c5be4c895c702001b64448407da
|
Provenance
The following attestation bundles were made for browse_now-2.10.0.tar.gz:
Publisher:
release-pypi-clis.yml on nowledge-co/mem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
browse_now-2.10.0.tar.gz -
Subject digest:
8e3ea50ed4ee6cc81c9b133bac638253a1da1d925b9c15b4233904a59740843c - Sigstore transparency entry: 2007912583
- Sigstore integration time:
-
Permalink:
nowledge-co/mem@6345fd4dcec19acff8e9a518c451778da79735a9 -
Branch / Tag:
refs/heads/rust_Port - Owner: https://github.com/nowledge-co
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi-clis.yml@6345fd4dcec19acff8e9a518c451778da79735a9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file browse_now-2.10.0-py3-none-win_amd64.whl.
File metadata
- Download URL: browse_now-2.10.0-py3-none-win_amd64.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f9ea77e3cd665c111d8bf87203ee771de961d94ff6ed66bece8bc99466cfd30
|
|
| MD5 |
959c10e97b8ea8e738f4a388315e5fb4
|
|
| BLAKE2b-256 |
af96b265cc49540160727e8291b1a53fca114c340f1a4f6eab0b1b18f11fe88b
|
Provenance
The following attestation bundles were made for browse_now-2.10.0-py3-none-win_amd64.whl:
Publisher:
release-pypi-clis.yml on nowledge-co/mem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
browse_now-2.10.0-py3-none-win_amd64.whl -
Subject digest:
6f9ea77e3cd665c111d8bf87203ee771de961d94ff6ed66bece8bc99466cfd30 - Sigstore transparency entry: 2007913116
- Sigstore integration time:
-
Permalink:
nowledge-co/mem@6345fd4dcec19acff8e9a518c451778da79735a9 -
Branch / Tag:
refs/heads/rust_Port - Owner: https://github.com/nowledge-co
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi-clis.yml@6345fd4dcec19acff8e9a518c451778da79735a9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file browse_now-2.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: browse_now-2.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.2 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9833da28c082ce15ffec47269fc06d9e46fb72b029a16281157e6796cf53a2c
|
|
| MD5 |
db2a2573b2323eec2767f594e2ba0887
|
|
| BLAKE2b-256 |
35a1b12437e2fdfd599222a7c09a931fc6e0d884f2809400f6d34f155457bb58
|
Provenance
The following attestation bundles were made for browse_now-2.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release-pypi-clis.yml on nowledge-co/mem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
browse_now-2.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
b9833da28c082ce15ffec47269fc06d9e46fb72b029a16281157e6796cf53a2c - Sigstore transparency entry: 2007912718
- Sigstore integration time:
-
Permalink:
nowledge-co/mem@6345fd4dcec19acff8e9a518c451778da79735a9 -
Branch / Tag:
refs/heads/rust_Port - Owner: https://github.com/nowledge-co
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi-clis.yml@6345fd4dcec19acff8e9a518c451778da79735a9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file browse_now-2.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: browse_now-2.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c4421c1b4debb25dc8174a1614e39820de0d49eb95d41bf86e12539feed631d
|
|
| MD5 |
fe782caffec6453907900b747391796d
|
|
| BLAKE2b-256 |
4dcaf42dfafff5486a60247de73b26237811cb45a28b31431e96a12d2d32c041
|
Provenance
The following attestation bundles were made for browse_now-2.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release-pypi-clis.yml on nowledge-co/mem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
browse_now-2.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
4c4421c1b4debb25dc8174a1614e39820de0d49eb95d41bf86e12539feed631d - Sigstore transparency entry: 2154927138
- Sigstore integration time:
-
Permalink:
nowledge-co/mem@49da8d0032a893392a9b14dbcbea4402cf36347d -
Branch / Tag:
refs/tags/cli-publish-v0.10.26 - Owner: https://github.com/nowledge-co
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi-clis.yml@49da8d0032a893392a9b14dbcbea4402cf36347d -
Trigger Event:
push
-
Statement type:
File details
Details for the file browse_now-2.10.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: browse_now-2.10.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29016916728b715d925ad2696bdfa787b322346dfa89ab7a5642b3d139accda7
|
|
| MD5 |
24d3c456224ee6e0a13fde2239ced151
|
|
| BLAKE2b-256 |
f7aed12fb0d20859032ee6de170f481b7a249c843344444b53b6c5883ac3cc68
|
Provenance
The following attestation bundles were made for browse_now-2.10.0-py3-none-macosx_11_0_arm64.whl:
Publisher:
release-pypi-clis.yml on nowledge-co/mem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
browse_now-2.10.0-py3-none-macosx_11_0_arm64.whl -
Subject digest:
29016916728b715d925ad2696bdfa787b322346dfa89ab7a5642b3d139accda7 - Sigstore transparency entry: 2007913016
- Sigstore integration time:
-
Permalink:
nowledge-co/mem@6345fd4dcec19acff8e9a518c451778da79735a9 -
Branch / Tag:
refs/heads/rust_Port - Owner: https://github.com/nowledge-co
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi-clis.yml@6345fd4dcec19acff8e9a518c451778da79735a9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file browse_now-2.10.0-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: browse_now-2.10.0-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.2 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53f28d0b1c394c2982ebbf83f7bc01f5a454028acea5beec3fcc51d711bfbbc3
|
|
| MD5 |
fd04320a665f4e9fec814beebce592aa
|
|
| BLAKE2b-256 |
fdd50fe498d86cc6634a426c3d7b9d3ab33e73599ef31c9f9edea824214c9881
|
Provenance
The following attestation bundles were made for browse_now-2.10.0-py3-none-macosx_10_12_x86_64.whl:
Publisher:
release-pypi-clis.yml on nowledge-co/mem
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
browse_now-2.10.0-py3-none-macosx_10_12_x86_64.whl -
Subject digest:
53f28d0b1c394c2982ebbf83f7bc01f5a454028acea5beec3fcc51d711bfbbc3 - Sigstore transparency entry: 2007912863
- Sigstore integration time:
-
Permalink:
nowledge-co/mem@6345fd4dcec19acff8e9a518c451778da79735a9 -
Branch / Tag:
refs/heads/rust_Port - Owner: https://github.com/nowledge-co
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi-clis.yml@6345fd4dcec19acff8e9a518c451778da79735a9 -
Trigger Event:
workflow_dispatch
-
Statement type: