{"id":13647419,"url":"https://github.com/kumabook/bebop","last_synced_at":"2025-12-30T01:39:33.709Z","repository":{"id":38274141,"uuid":"57443234","full_name":"kumabook/bebop","owner":"kumabook","description":"Groovy WebExtension that offers command line interface like emacs helm for browsing.","archived":false,"fork":false,"pushed_at":"2023-01-03T17:26:01.000Z","size":3528,"stargazers_count":49,"open_issues_count":36,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-09T21:36:47.374Z","etag":null,"topics":["chrome-extension","firefox-addon","javascript","webextension"],"latest_commit_sha":null,"homepage":"https://addons.mozilla.org/ja/firefox/addon/bebop/","language":"JavaScript","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/kumabook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-30T13:35:57.000Z","updated_at":"2023-08-22T17:30:45.000Z","dependencies_parsed_at":"2023-02-01T08:16:58.223Z","dependency_job_id":null,"html_url":"https://github.com/kumabook/bebop","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumabook%2Fbebop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumabook%2Fbebop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumabook%2Fbebop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kumabook%2Fbebop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kumabook","download_url":"https://codeload.github.com/kumabook/bebop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250163669,"owners_count":21385284,"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":["chrome-extension","firefox-addon","javascript","webextension"],"created_at":"2024-08-02T01:03:33.256Z","updated_at":"2025-12-30T01:39:33.671Z","avatar_url":"https://github.com/kumabook.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"bebop\n=====\n\n[![Build Status](https://travis-ci.org/kumabook/bebop.svg?branch=master)](https://travis-ci.org/kumabook/bebop)\n[![Greenkeeper badge](https://badges.greenkeeper.io/kumabook/bebop.svg)](https://greenkeeper.io/)\n[![Coverage Status](https://coveralls.io/repos/github/kumabook/bebop/badge.svg?branch=master)](https://coveralls.io/github/kumabook/bebop?branch=master)\n[![Maintainability](https://api.codeclimate.com/v1/badges/739ecb729336efef52b8/maintainability)](https://codeclimate.com/github/kumabook/bebop/maintainability)\n\n\u003cimg height=\"100\" src=\"bebop.png\" align=\"right\"\u003e\n\nbebop is a WebExtensions that makes your browsing groovy.\n\nbebop is available on [Firefox Add-ons][] and [Chrome web store][]\n\nEnjoy and swing your browsing!\n\nAbout\n-----\n\nbebop is a WebExtensions that offers command line interface like\n[emacs helm](https://github.com/emacs-helm/helm) for browsing.\n\n- bebop retrieves candidates from various sources such as `tabs`, `history`, `bookmark`, etc.\n- you can narrows down them with a pattern.\n- bebop provides actions on candidates such as `open url`, `activate tab`, `remove bookmark`, etc.\n- you can choose a candidate and execute an action on it.\n  - you can also marks multiple candidates to execute chosen action on this set of candidates.\n  - ex: close multiple tabs at once.\n\n![Demo](./demo.gif)\n\n\nUsage\n-----\n\n### 1. Show popup\n\n`Click icon on toolbar` or `Ctrl+Comma` ... show popup that has command input\n\nOn Vivaldi, `_execute_browser_action` keyboard shortcut doesn't work.\nSo, bebop offers two alternatives to it.\n\n| command name         | description                      |\n|:---------------------|:-------------------------------- |\n| toggle_popup_window  | show popup as a window           |\n| toggle_content_popup | show popup in a content document |\n\nTo use these alternatives, you need to set shortcut key.\nSee [Customize shortcut](#change-shortcut-key).\n\nNOTE: `toggle_content_popup` doesn't work completely.\n\nex:\n\n- it doesn't work in some pages\n- it can't focus automatically from browser ui.\n\n### 2. Narrow down candidates\n\nInput a query to narrow down the candidates.\n\nNOTE: On Windows, you need to press a tab-key to focus to a query input\n\n| type        | shorthand | description                     |\n|:------------|:---------:|:------------------------------- |\n| search      |           | open new tab with google search |\n| link        | l         | click a link in current page    |\n| tab         | t         | active selected tab             |\n| history     | h         | open a history                  |\n| bookmark    | b         | open a bookmark                 |\n| session     | s         | restore a session               |\n| command     | c         | execute a command               |\n\n- `:type` narrows down to the candidates whose type is the specified type\n  - `x (shorthand letter)` also narrows down to the candidates whose shorthand is the specified type\n- ex.\n  - `阿部寛` narrows down to the all candidates searched with `阿部寛`\n  - `:link` or `l` narrow down to link candidates\n  - `:link 阿部寛` or `l 阿部寛` narrow down to link candidates searched with `阿部寛`\n\nYou can use these key-bindings in command input:\n\n| key-binding | command              |\n|:------------|:-------------------- |\n| C-f         | forward-char         |\n| C-b         | backward-char        |\n| C-a         | beginning-of-line    |\n| C-e         | end-of-line          |\n| C-h         | delete-backward-char |\n| C-k         | kill-line            |\n| C-g         | quit                 |\n\n\n### 3. Select the candidates\n\nYou can change the selected candidate with shortcut keys:\n\n| key-binding    | command              |\n|:---------------|:-------------------- |\n| tab            | next-candidate       |\n| S-tab          | previous-candidate   |\n| C-n (only mac) | next-candidate       |\n| C-p            | previous-candidate   |\n| C-j (opt-in)   | next-candidate       |\n| C-k (opt-in)   | previous-candidate   |\n| C-SPC          | mark-candidate       |\n\n`C-j`, `C-k` are opt-in key-bindings. You can enable them from options page.\n\n\n You can mark multiple candidates with `C-SPC`.\n Some action can handle multiple candidates.\n For example, `close-tab` command closes multiple tabs.\n\n\n### 4. Execute action\n\nA candidate can be executed by various actions.\nYou can execute default action by pressing `return` or click a candidate.\nYou can also execute another action by these shortcuts.\n\n| key-binding | action                   |\n|:------------|:------------------------ |\n| return      | runs the first action   |\n| S-return    | runs the second action  |\n| C-i         | lists available actions |\n\n\nYou can change shortcut key from `Ctrl+Comma`.\nSee [Customize shortcut](#change-shortcut-key)\n\nCustomize\n---------\n\n### Options page\n\n- `open-options` command opens options page\n- Firefox: `Add-ons` -\u003e `Extensions` -\u003e `Preferences` of `bebop`\n- Chrome: `Window` -\u003e `Extensions` -\u003e `Options` of `bebop`\n\n\n### Change shortcut key\n\n#### Chromium based browser: Extensions page\n\n1. Open `chrome://extensions/`\n2. Click `Keyboard shortcuts` at thxe bottom of the page\n3. Set `Activate the extension` as your favorite shortcut key\n   - Vivaldi user should use `toggle_popup_window` and change `In vivaldi` to `Global`.\n\n#### Firefox: Change shortcut key with your own private addon\n\nYou can change the shourcut key if you build and upload the addon as your own private addon.\n\n1. Clone this repository\n\n```sh\ngit clone https://github.com/kumabook/bebop.git\n\n```\n\n2. Edit manifest.json:\n\n- Edit `commands._execute_browser_action.suggested_key`  with your favorite shortcut key.\n- Edit `applications.gecko.id` with your id\n\n3. Signup [developer hub](https://addons.mozilla.org/en-US/developers/addon/)\n4. Get api key and api secret and set them to environment variables:\n\n```\nexport NODE_ENV=production\nexport API_KEY=user:00000000:000\nexport API_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\n5. Build and upload package as your private addon:\n\n```\nnpm run sign\n```\n\n[Firefox Add-ons]:  https://addons.mozilla.org/ja/firefox/addon/bebop/\n[Chrome web store]: https://chrome.google.com/webstore/detail/bebop/idiejicnogeolaeacihfjleoakggbdid\n\nSupported browsers\n------------------\n\n- Firefox\n- Chrome\n- Vivaldi\n- (Opera)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkumabook%2Fbebop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkumabook%2Fbebop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkumabook%2Fbebop/lists"}