Files
browser-cli/pyproject.toml
T
daniel156161 7cb034dfc2
Testing / remote-protocol-compat (0.15.0) (push) Successful in 42s
Testing / remote-protocol-compat (0.16.0) (push) Successful in 47s
Testing / test (push) Successful in 50s
feat(tabs): reuse an open tab instead of duplicating a page
- Add browser_cli/url_match.py with a canonical URL key for tab matching
- Canonicalize scheme, host, default ports, www., trailing slash, query order
- Support reuse modes none, exact, similar and origin via normalize_mode()
- Pick the closest match when several tabs qualify, preferring identical URLs
- Skip the reload when the reused tab already shows the requested page
- Expose nav.reusable_tab() so callers can look up a tab without side effects
- Accept reuse/reuse_domain/reuse_title in tabs.open(), not just nav.open()
- Add --reuse-exact to nav open and nav open-wait; --reuse is now fuzzy
- Default MCP tabs_open to reuse="similar" and return a reused flag
- Tell MCP agents in the server instructions to reuse before opening
- Document the reuse modes in README for MCP, CLI and Python API
- Cover url_match, SDK reuse paths and MCP reuse behaviour with new tests
- Bump package and extension version to 0.16.9
- Refresh uv.lock for the updated dependency set
2026-10-19 10:47:56 +02:00

50 lines
1.1 KiB
TOML

[project]
name = "real-browser-cli"
version = "0.16.9"
description = "Control your real running browser from the terminal or Python SDK"
readme = "README.md"
license = { file = "LICENSE" }
authors = [{ name = "Daniel Dolezal" }]
requires-python = ">=3.10"
dependencies = [
"click>=8",
"cryptography>=48",
"rich>=13",
"msgpack>=1",
"questionary>=2",
]
[project.urls]
Homepage = "https://git.yiprawr.dev/Automatisation/browser-cli"
Repository = "https://git.yiprawr.dev/Automatisation/browser-cli"
Issues = "https://git.yiprawr.dev/Automatisation/browser-cli/issues"
[project.optional-dependencies]
# Better/faster remote response compression than the stdlib zlib/gzip fallback.
fast = ["zstandard>=0.22"]
mcp = [
"mcp>=2,<3",
]
[project.scripts]
browser-cli = "browser_cli.cli:main"
browser-cli-mcp = "browser_cli.mcp.server:main"
[dependency-groups]
dev = [
"pytest>=8",
"pytest-cov>=7.1.0",
"zstandard>=0.22",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["browser_cli"]
[tool.pytest.ini_options]
testpaths = ["tests"]
log_level = "INFO"