langchain-bowmark
LangChain tools for Bowmark. Bowmark turns websites into typed functions an AI agent can call: search, prices, availability, quotes, bookings, reading a page. Your agent looks up the functions it needs, writes a short script against them, and Bowmark runs it on the live sites and returns structured data. The agent never drives a browser itself.
Full guide: bowmark.ai/docs/langchain
Install
pip install langchain-bowmark
Create an API key at bowmark.ai/dashboard/keys and export it:
export BOWMARK_API_KEY="bmk_..."
Tools
| Tool | What it does |
|---|---|
bowmark_get_library |
Returns the typed functions for a task or a site, with types and examples. Read-only, free, touches no site. |
bowmark_run |
Runs a short async JavaScript script against those functions on the live sites. Returns {ok, status, result, logs, error}. |
BowmarkToolkit returns both, sharing one key.
Use with an agent
from langchain.agents import create_agent
from langchain_bowmark import BowmarkToolkit
agent = create_agent(
"openai:gpt-5.6-luna",
tools=BowmarkToolkit().get_tools(),
system_prompt=(
"You can act on live websites through Bowmark. Call bowmark_get_library with what "
"the user wants to do, write a short script against the functions it returns, and "
"execute it with bowmark_run. Answer from the run's result."
),
)
result = agent.invoke(
{"messages": [{"role": "user", "content": "What is the top story on Hacker News right now?"}]}
)
print(result["messages"][-1].content)
Call the tools directly
from langchain_bowmark import BowmarkGetLibrary, BowmarkRun
print(BowmarkGetLibrary().invoke({"query": "read a web page"}))
print(BowmarkRun().invoke({"script": 'return (await bowmark.read.page("https://example.com")).title;'}))
Development
uv venv && uv pip install -e . --group test
pytest tests/unit_tests
BOWMARK_API_KEY=... pytest tests/integration_tests
License
MIT
Metadata
Release files for langchain-bowmark 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_bowmark-0.1.0.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_bowmark-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.0 kB
Release files / langchain_bowmark-0.1.0.tar.gz
| Download URL | langchain_bowmark-0.1.0.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d431a62853509cdbe5cc4f120f985548f96f44389a842a910369e17e40d2235d
|
|
BLAKE2b-256 checksum How to use checksums |
513dd1d6ab82025d44d73cff310ed4ec38ec2ff50ddfdbf8513f9f17addc5b34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / langchain_bowmark-0.1.0-py3-none-any.whl
| Download URL | langchain_bowmark-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ca48cf9441ec17683156ccb753025076e4e40a569c9f62a4867c696df527bc2f
|
|
BLAKE2b-256 checksum How to use checksums |
ef7c3447590ba630b65bced5a488eddb5a4916ec203f1fc010d84ba82beb5763
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|