diff --git a/README.md b/README.md index e3f0f35..4e3a397 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,30 @@ Every response: **Requirements:** Python 3.10+, [uv](https://github.com/astral-sh/uv), Chrome, Chromium, Brave, Edge, Vivaldi +### Install with uv +Once published on PyPI, install the CLI as a uv tool: + +```sh +uv tool install real-browser-cli +browser-cli --version +browser-cli install brave # or: chrome, chromium, edge, vivaldi +``` + +The PyPI package is named `real-browser-cli`; the installed command is still `browser-cli`. + +For better remote-response compression, install the optional `fast` extra: + +```sh +uv tool install "real-browser-cli[fast]" +``` + +To upgrade later: + +```sh +uv tool upgrade real-browser-cli +``` + +### Install from source ```sh git clone cd browser-cli diff --git a/browser_cli/cli.py b/browser_cli/cli.py index 567932f..9657083 100755 --- a/browser_cli/cli.py +++ b/browser_cli/cli.py @@ -35,6 +35,7 @@ from browser_cli.commands.serve_http import cmd_serve_http from browser_cli.commands.watch import watch_group from browser_cli.commands.workspace import workspace_group from browser_cli.commands.raw import cmd_command +from browser_cli.constants import PYPI_PACKAGE_NAME console = Console() @@ -63,7 +64,7 @@ def _project_version() -> str: pass try: - return package_version("browser-cli") + return package_version(PYPI_PACKAGE_NAME) except PackageNotFoundError: return "unknown" diff --git a/browser_cli/commands/doctor.py b/browser_cli/commands/doctor.py index 79072e5..edd3441 100644 --- a/browser_cli/commands/doctor.py +++ b/browser_cli/commands/doctor.py @@ -11,7 +11,7 @@ from rich.table import Table from browser_cli.commands import handle_errors, client_from_ctx from browser_cli.client import active_browser_targets -from browser_cli.constants import NATIVE_HOST_DIRS, NATIVE_HOST_NAME +from browser_cli.constants import NATIVE_HOST_DIRS, NATIVE_HOST_NAME, PYPI_PACKAGE_NAME from browser_cli.platform import is_windows console = Console() @@ -26,7 +26,7 @@ def _project_version() -> str: except OSError: pass try: - return package_version("browser-cli") + return package_version(PYPI_PACKAGE_NAME) except PackageNotFoundError: return "unknown" diff --git a/browser_cli/constants.py b/browser_cli/constants.py index 1e110d8..af18531 100644 --- a/browser_cli/constants.py +++ b/browser_cli/constants.py @@ -9,6 +9,7 @@ import os from pathlib import Path APP_NAME = "browser-cli" +PYPI_PACKAGE_NAME = "real-browser-cli" RUNTIME_DIRNAME = ".browser_cli" DEFAULT_ALIAS = "default" diff --git a/browser_cli/version_manager.py b/browser_cli/version_manager.py index e4264ad..20b7531 100644 --- a/browser_cli/version_manager.py +++ b/browser_cli/version_manager.py @@ -1,6 +1,6 @@ from importlib.metadata import version as _pkg_version -from browser_cli.constants import MAX_MSG_BYTES, PROTOCOL_MIN_CLIENT +from browser_cli.constants import MAX_MSG_BYTES, PROTOCOL_MIN_CLIENT, PYPI_PACKAGE_NAME def parse_version(v: str) -> tuple[int, ...]: try: @@ -10,7 +10,7 @@ def parse_version(v: str) -> tuple[int, ...]: def get_installed_version() -> str: try: - return _pkg_version("browser-cli") + return _pkg_version(PYPI_PACKAGE_NAME) except Exception: return "0.0.0" diff --git a/extension/manifest.json b/extension/manifest.json index b2740c1..ac38f11 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "browser-cli", - "version": "0.14.2", + "version": "0.14.3", "description": "Control your browser from the terminal or Python SDK", "permissions": [ "tabs", diff --git a/pyproject.toml b/pyproject.toml index d3fe9ae..09d25a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,10 @@ [project] -name = "browser-cli" -version = "0.14.2" +name = "real-browser-cli" +version = "0.14.3" 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", @@ -11,6 +13,11 @@ dependencies = [ "msgpack>=1", ] +[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"] diff --git a/uv.lock b/uv.lock index 0c90d1c..65a37c4 100644 --- a/uv.lock +++ b/uv.lock @@ -2,46 +2,6 @@ version = 1 revision = 3 requires-python = ">=3.10" -[[package]] -name = "browser-cli" -version = "0.14.2" -source = { editable = "." } -dependencies = [ - { name = "click" }, - { name = "cryptography" }, - { name = "msgpack" }, - { name = "rich" }, -] - -[package.optional-dependencies] -fast = [ - { name = "zstandard" }, -] - -[package.dev-dependencies] -dev = [ - { name = "pytest" }, - { name = "pytest-cov" }, - { name = "zstandard" }, -] - -[package.metadata] -requires-dist = [ - { name = "click", specifier = ">=8" }, - { name = "cryptography", specifier = ">=48" }, - { name = "msgpack", specifier = ">=1" }, - { name = "rich", specifier = ">=13" }, - { name = "zstandard", marker = "extra == 'fast'", specifier = ">=0.22" }, -] -provides-extras = ["fast"] - -[package.metadata.requires-dev] -dev = [ - { name = "pytest", specifier = ">=8" }, - { name = "pytest-cov", specifier = ">=7.1.0" }, - { name = "zstandard", specifier = ">=0.22" }, -] - [[package]] name = "cffi" version = "2.0.0" @@ -503,6 +463,46 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" }, ] +[[package]] +name = "real-browser-cli" +version = "0.14.3" +source = { editable = "." } +dependencies = [ + { name = "click" }, + { name = "cryptography" }, + { name = "msgpack" }, + { name = "rich" }, +] + +[package.optional-dependencies] +fast = [ + { name = "zstandard" }, +] + +[package.dev-dependencies] +dev = [ + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "zstandard" }, +] + +[package.metadata] +requires-dist = [ + { name = "click", specifier = ">=8" }, + { name = "cryptography", specifier = ">=48" }, + { name = "msgpack", specifier = ">=1" }, + { name = "rich", specifier = ">=13" }, + { name = "zstandard", marker = "extra == 'fast'", specifier = ">=0.22" }, +] +provides-extras = ["fast"] + +[package.metadata.requires-dev] +dev = [ + { name = "pytest", specifier = ">=8" }, + { name = "pytest-cov", specifier = ">=7.1.0" }, + { name = "zstandard", specifier = ">=0.22" }, +] + [[package]] name = "rich" version = "15.0.0"