{"id":17335664,"url":"https://github.com/haaag/PyBrowsers","last_synced_at":"2025-02-25T20:32:01.585Z","repository":{"id":156500108,"uuid":"510989774","full_name":"haaag/PyBrowsers","owner":"haaag","description":"A Python Script for Effortless Browser Profile Management","archived":false,"fork":false,"pushed_at":"2024-07-18T17:34:39.000Z","size":366,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-15T15:11:39.480Z","etag":null,"topics":["bash-script","browser","chrome","chromium","dmenu","effortless","firefox","firefox-profile","gecko","profile","profiles","python","python-script","rofi","waterfox"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haaag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-06T04:39:39.000Z","updated_at":"2024-07-18T17:34:43.000Z","dependencies_parsed_at":"2023-07-26T14:03:47.505Z","dependency_job_id":"263354dd-0a1c-49d9-9cf2-7444447fce27","html_url":"https://github.com/haaag/PyBrowsers","commit_stats":{"total_commits":39,"total_committers":2,"mean_commits":19.5,"dds":0.3589743589743589,"last_synced_commit":"358b9c363cdc7c06e2d0efcffd13ea9d9b56f009"},"previous_names":["haaag/quick-profile-launcher","haaag/pybrowsers-profiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haaag%2FPyBrowsers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haaag%2FPyBrowsers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haaag%2FPyBrowsers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haaag%2FPyBrowsers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haaag","download_url":"https://codeload.github.com/haaag/PyBrowsers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219843488,"owners_count":16556504,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash-script","browser","chrome","chromium","dmenu","effortless","firefox","firefox-profile","gecko","profile","profiles","python","python-script","rofi","waterfox"],"created_at":"2024-10-15T15:11:45.622Z","updated_at":"2024-10-15T15:11:46.612Z","avatar_url":"https://github.com/haaag.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![linux](https://img.shields.io/badge/os-linux-blue?logo=linux)\n[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n![PyPI - Version](https://img.shields.io/pypi/v/pybrowsers-profiles)\n[![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![code style - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/format.json)](https://github.com/astral-sh/ruff)\n[![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg)](https://github.com/python/mypy)\n[![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg)](https://spdx.org/licenses/)\n\n\u003c/div\u003e\n\n## Profile Launcher\n\n### A Python Script for Effortless Browser Profile Management\n\n### ⭐ About\n\nThis Python script simplifies launching browser profiles by automatically retrieving profile information from each browser's config directory. It presents these profiles as launch options, saving time and enhancing workflow, especially for users who frequently switch between multiple profiles.\n\n### ⚡️ Requirements\n\n- [dmenu](https://tools.suckless.org/dmenu/)\n- [rofi](https://github.com/davatorium/rofi) _(Optional)_\n- [fzf](https://github.com/junegunn/fzf) _(Optional)_\n\n### 📦 Installation\n\n#### Using `pipx` _(recommended)_\n\n```bash\n$ pipx install pybrowsers-profiles\n```\n\n\u003e [pipx Homepage](https://github.com/pypa/pipx)\n\n#### Using `pip` install\n\n```bash\n# Clone repository\n$ git clone \"https://github.com/haaag/pybrowsers\"\n$ cd pybrowsers\n\n# Create virtual environment \u0026 source\n$ python -m venv .venv \u0026\u0026 source .venv/bin/activate\n\n# Install deps\n$ (.venv ) pip install -r requirements.txt\n\n# Install script in local environment\n$ (.venv ) pip install .\n```\n\n### 🚀 Usage\n\n```bash\n$ pybrowsers --help\n\nusage: pybrowsers [-l] [-d DISABLE] [-e ENABLE] [-f] [-t]\n                  [-m MENU] [-v] [-V] [browser] [-o URL]\n\nSimple script for manage browser's profiles\n\noptions:\n    browser             Browser name\n    -e, --enable        Enable browser\n    -d, --disable       Disable browser\n    -u, --url           Open \u003cURL\u003e in browser\n    -l, --list          Show browsers list and status\n    -t, --table         Show browsers list with detail\n    -m, --menu          Select menu (default: dmenu)\n    -f, --found         Browsers found\n    -V, --version       Show version\n    -h, --help          Show help\n    -v, --verbose       Verbose mode\n\nlocations:\n    $HOME/.local/share/pybrowsers\n```\n\n#### Use `no flags` to launch menu\n\n```bash\n# Open menu with browsers found\n$ pybrowsers\n```\n\n#### Use flag `browser` for browser's profile\n\n```bash\n# Open menu with profiles list\n$ pybrowsers firefox\n```\n\n#### Use flag `-o, --open` for launching profile with url\n\n\u003cdiv align=\"left\"\u003e\n  \u003cimg align=\"center\" src=\"assets/flag-open-with-browser.png\"\u003e\n\u003c/div\u003e\n\n#### Use flag `-m, --menu` to specify the launcher you want to use _(default: `dmenu`)_\n\n\u003cdiv align=\"left\"\u003e\n  \u003cimg align=\"center\" src=\"assets/flag-rofi-dark.gif\"\u003e\n\u003c/div\u003e\n\n#### Use flag `-l, --list` for status\n\n\u003cdiv align=\"left\"\u003e\n  \u003cimg align=\"center\" src=\"assets/flag-list.png\"\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n#### Use flag `-d, --disable` or `-e, --enable`\n\n```bash\n# Disable browser (won't appear in `browsers found`)\n$ pybrowsers -d firefox\n\n# Enable browser\n$ pybrowsers -e firefox\n```\n\n#### ~~Use flag `-r, --running`~~\n\n~~\u003cp\u003e\u003cem\u003eSupported on: 🦊\u003c/em\u003e\u003c/p\u003e~~\n\n~~This flag will show all running browsers and profiles, as long as it has been\nopened with `pybrowsers`.~~\n\n### ➕ Add Browser\n\nYou can add a browser creating a `JSON` file in `$XDG_DATA_HOME/pybrowsers/` or\n`~/.local/share/pybrowsers`\n\n#### Example\n\n```json\n{\n  \"name\": \"LibreWolf\",\n  \"command\": \"librewolf\",\n  \"path\": \"~/.librewolf/profiles.ini\",\n  \"engine\": \"gecko\",\n  \"enabled\": true\n}\n```\n\n### 🌐 Browsers\n\n- 🦊 [Firefox](https://www.mozilla.org/firefox/download/thanks/)\n- [LibreWolf](https://librewolf.net/)\n- [Chromium](https://www.chromium.org/getting-involved/download-chromium/)\n- Brave\n- Google Chrome\n\n### 🧰 Dependencies\n\n- [PySelector](https://pypi.org/project/pyselector/)\n\n### 🧰 TODO\n\n- [ ] Create `interactive menu` for adding browser data\n- [x] Update screenshots\n- [x] Add `flag` for open URLs\n- [x] Please, use `pathlib.Path`\n- [x] BUG: Issue when the profile name contains spaces\n- [x] Add support for `JSON` files _(prioritize)_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaaag%2FPyBrowsers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaaag%2FPyBrowsers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaaag%2FPyBrowsers/lists"}