{"id":13394492,"url":"https://github.com/cerebroapp/cerebro","last_synced_at":"2025-05-14T01:11:03.578Z","repository":{"id":37217424,"uuid":"62500776","full_name":"cerebroapp/cerebro","owner":"cerebroapp","description":"🔵 Cerebro is an open-source launcher to improve your productivity and efficiency","archived":false,"fork":false,"pushed_at":"2025-04-03T17:54:02.000Z","size":4364,"stargazers_count":8451,"open_issues_count":66,"forks_count":456,"subscribers_count":133,"default_branch":"master","last_synced_at":"2025-05-09T14:18:06.495Z","etag":null,"topics":["cerebro","electron","launcher","search"],"latest_commit_sha":null,"homepage":"https://www.cerebroapp.com/","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/cerebroapp.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-03T14:42:01.000Z","updated_at":"2025-05-09T06:17:57.000Z","dependencies_parsed_at":"2023-02-19T01:30:53.977Z","dependency_job_id":"65e10864-5554-43a9-a3fd-195bb49cd990","html_url":"https://github.com/cerebroapp/cerebro","commit_stats":{"total_commits":699,"total_committers":51,"mean_commits":"13.705882352941176","dds":0.3447782546494993,"last_synced_commit":"bcabb5bef1937a245bf864919f5b38e977b62b9d"},"previous_names":["kelion/cerebro"],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cerebroapp%2Fcerebro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cerebroapp%2Fcerebro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cerebroapp%2Fcerebro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cerebroapp%2Fcerebro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cerebroapp","download_url":"https://codeload.github.com/cerebroapp/cerebro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253433703,"owners_count":21907779,"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":["cerebro","electron","launcher","search"],"created_at":"2024-07-30T17:01:21.522Z","updated_at":"2025-05-14T01:11:03.521Z","avatar_url":"https://github.com/cerebroapp.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","HarmonyOS","Applications","electron","🔧 Utilities \u0026 Miscellaneous","前端开发框架及项目"],"sub_categories":["Windows Manager","Productivity","多工具库支持或纯JS","⏱️ Productivity (54)"],"readme":"# Cerebro\n\n\u003e Cerebro is an open-source launcher to improve your productivity and efficiency\n\n\u003cimg src=\"./build/icons/128x128.png\" align=\"right\"/\u003e\n\n## Usage\n\nYou can download the latest version on the [releases](https://github.com/cerebroapp/cerebro/releases) page.\n\n- If there isn't an installer for your OS, check [build instructions](#build-executable-from-source).\n- If you are a linux user see [how to install the executable](#install-executable-on-linux)\n\nAfter the installation, use the default shortcut, `ctrl+space`, to show the app window. You can customize this shortcut by clicking on the icon in the menu bar, and then selecting \"Preferences...\".\n\n![Cerebro](https://cloud.githubusercontent.com/assets/594298/20180624/858a483a-a75b-11e6-94a1-ef1edc4d95c3.gif)\n\n### Plugins\n\n### Core plugins\n\n- Search the web with your favourite search engine\n- Search \u0026 launch application, i.e. `spotify`\n- Navigate the file system with file previews (i.e. `~/Dropbox/passport.pdf`)\n- Calculator\n- Smart converter. `15$`, `150 рублей в евро`, `100 eur in gbp`;\n\n### Install plugins\n\nYou can manage and install more plugins by typing `plugins \u003cplugin-name\u003e` in the Cerebro search bar.\n\nDiscover plugins and more at [Cerebro's Awesome List](https://github.com/lubien/awesome-cerebro).\n\n\u003e If you're interested in creating your own plugin, check the [plugins documentation](https://github.com/cerebroapp/create-cerebro-plugin).\n\n## Shortcuts\n\nCerebro provides several shortcuts to improve your productivity:\n\n- `ctrl+c`: copy the result from a plugin to the clipboard, if the plugin does not provida a result, the term you introduced will be copied\n- `ctrl+1...9`: select directly a result from the list\n- `ctrl+[hjkl]`: navigate through the results using vim-like keys (Also `ctrl+o` to select the result)\n\n### Change Theme\n\nUse the shortcut `ctrl+space` to open the app window, and type `Cerebro Settings`. There you will be able to change the Theme.\n\n\u003e Currently Light and Dark Themes are supported out of the box\n\n![change-cerebro-theme](https://user-images.githubusercontent.com/24854406/56137765-5880ca00-5fb7-11e9-86d0-e740de1127c2.gif)\n\n### Config file path\n\nYou can find the config file in the following path depending on your OS:\n\n*Windows*: `%APPDATA%/Cerebro/config.json`\n\n*Linux*: `$XDG_CONFIG_HOME/Cerebro/config.json`  or `~/.config/Cerebro/config.json`\n\n*macOS*: `~/Library/Application Support/Cerebro/config.json`\n\n\u003e ⚠️ A bad configuration file can break Cerebro. If you're not sure what you're doing, don't edit the config file directly.\n\n## Build executable from source\n\nIf you'd like to install a version of Cerebro, but the executable hasn't been released, you can follow these instructions to build it from source:\n\n1. Clone the repository\n2. Install dependencies with [yarn](https://yarnpkg.com/getting-started/install):\n\n   ```bash\n   yarn --force\n   ```\n\n3. Build the package:\n\n   ```bash\n    yarn package\n   ```\n\n\u003e Note: in CI we use `yarn build` as there is an action to package and publish the executables\n\n## Install executable on Linux\n\nIf you're a linux user, you might need to grant execution permissions to the executable. To do so, open the terminal and run the following command:\n\n```bash\nsudo chmod +x \u003cpath to the executable\u003e\n```\n\nThen, you can install the executable by running the following command:\n\n- If you're using the AppImage executable:\n\n  ```bash\n  ./\u003cpath to the executable\u003e\n  ```\n\n- If you're using the deb executable:\n\n  ```bash\n  dpkg -i \u003cpath to the executable\u003e\n  ```\n\n\u003e On some computers you might need run these commands with elevated privileges (sudo). `sudo ./\u003cpath to the executable\u003e` or `sudo dpkg -i \u003cpath to the executable\u003e`\n\n## Contributing\n\n\nCerebroApp is an open source project and we welcome contributions from the community.\nIn this document you will find information about how Cerebro works and how to contribute to the project.\n\n\u003e ⚠️ NOTE: This document is for Cerebro developers. If you are looking for how to develop a plugin please check [plugin developers documentation](https://github.com/cerebroapp/create-cerebro-plugin).\n\n### General architecture\n\nCerebro is based on [Electron](https://electronjs.org/) and [React](https://reactjs.org/).\n\nA basic Electron app is composed of a *main process* and a *renderer process*. The main process is responsible for the app lifecycle, the renderer process is responsible for the UI.\n\nIn our case we use:\n\n- [`app/main.development.js`](/app/main.development.js) as the main process\n- [`app/main/main.js`](/app/main/main.js) as the main renderer process\n- [`app/background/background.js`](/app/background/background.js) as a secondary renderer process\n\nAll this files are bundled and transpiled with [Webpack](https://webpack.js.org/) and [Babel](https://babeljs.io/).\n\nThe build process is managed by [electron-builder](https://www.electron.build/).\n\n### Two renderer processes\n\nThis two-renderer process architecture is used to keep the main renderer process (Cerebro) responsive and to avoid blocking the UI when executing long tasks.\n\nWhen we need to execute a long task we send a message to the background process, which executes the task asynchronously and sends a message back to the main renderer when the task is completed.\n\nThis is the way we implement the plugins system. Their initializeAsync method is executed in the background process.\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/en/) (\u003e= 16)\n- [yarn](https://classic.yarnpkg.com/en/)\n\n### Install Cerebro\n\nFirst, clone the repo via git:\n\n```bash\ngit clone https://github.com/cerebroapp/cerebro.git cerebro\n```\n\nOpen the project\n\n```bash\ncd cerebro\n```\n\nAnd then install dependencies:\n\n```bash\nyarn\n```\n\n### Run in development mode\n\n```bash\nyarn run dev\n```\n\n\u003e Note: requires a node version \u003e=16.x\n\n### Resolve common issues\n\n1. `AssertionError: Current node version is not supported for development` on npm postinstall.\nAfter `yarn` postinstall script checks node version. If you see this error you have to check node and npm version in `package.json` `devEngines` section and install proper ones.\n\n2. `Uncaught Error: Module version mismatch. Exepcted 50, got ...`\nThis error means that node modules with native extensions build with wrong node version (your local node version != node version, included to electron). To fix this issue run `yarn --force`\n\n### Conventional Commit Format\n\nThe project is using conventional commit specification to keep track of changes. This helps us with the realeases and enforces a consistent style.\nYou can commit as usually following this style or use the following commands that will help you to commit with the right style:\n\n- `yarn cz`\n- `yarn commit`\n\n### Publish a release\n\nCerebroApp is using GH actions to build the app and publish it to a release. To publish a new release follow the steps below:\n\n1. Update the version on both `package.json` and `app/package.json` files.\n2. Create a release with from GH and publish it. 🚧 The release **tag** MUST contain the `v` prefix (❌ `0.1.2` → ✅`v0.1.2`).\n3. Complete the name with a name and a description of the release.\n4. The GH action is triggered and the release is updated when executables are built.\n## License\n\nMIT © [Cerebro App](https://github.com/cerebroapp/cerebro/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcerebroapp%2Fcerebro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcerebroapp%2Fcerebro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcerebroapp%2Fcerebro/lists"}