• Stars
    star
    8,301
  • Rank 4,437 (Top 0.09 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 8 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ”ต Cerebro is an open-source launcher to improve your productivity and efficiency

Cerebro

Cerebro is an open-source launcher to improve your productivity and efficiency

Usage

You can download the latest version on the releases page.

After 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...".

Cerebro

Plugins

Core plugins

  • Search the web with your favourite search engine
  • Search & launch application, i.e. spotify
  • Navigate the file system with file previews (i.e. ~/Dropbox/passport.pdf)
  • Calculator
  • Smart converter. 15$, 150 ั€ัƒะฑะปะตะน ะฒ ะตะฒั€ะพ, 100 eur in gbp;

Install plugins

You can manage and install more plugins by typing plugins <plugin-name> in the Cerebro search bar.

Discover plugins and more at Cerebro's Awesome List.

If you're interested in creating your own plugin, check the plugins documentation.

Shortcuts

Cerebro provides several shortcuts to improve your productivity:

  • 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
  • ctrl+1...9: select directly a result from the list
  • ctrl+[hjkl]: navigate through the results using vim-like keys (Also ctrl+o to select the result)

Change Theme

Use the shortcut ctrl+space to open the app window, and type Cerebro Settings. There you will be able to change the Theme.

Currently Light and Dark Themes are supported out of the box

change-cerebro-theme

Config file path

You can find the config file in the following path depending on your OS:

Windows: %APPDATA%/Cerebro/config.json

Linux: $XDG_CONFIG_HOME/Cerebro/config.json or ~/.config/Cerebro/config.json

macOS: ~/Library/Application Support/Cerebro/config.json

โš ๏ธ A bad configuration file can break Cerebro. If you're not sure what you're doing, don't edit the config file directly.

Build executable from source

If 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:

  1. Clone the repository

  2. Install dependencies with yarn:

    yarn --force
  3. Build the package:

     yarn package

Note: in CI we use yarn build as there is an action to package and publish the executables

Install executable on Linux

If 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:

sudo chmod +x <path to the executable>

Then, you can install the executable by running the following command:

  • If you're using the AppImage executable:

    ./<path to the executable>
  • If you're using the deb executable:

    dpkg -i <path to the executable>

On some computers you might need run these commands with elevated privileges (sudo). sudo ./<path to the executable> or sudo dpkg -i <path to the executable>

Contributing

CerebroApp is an open source project and we welcome contributions from the community. In this document you will find information about how Cerebro works and how to contribute to the project.

โš ๏ธ NOTE: This document is for Cerebro developers. If you are looking for how to develop a plugin please check plugin developers documentation.

General architecture

Cerebro is based on Electron and React.

A 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.

In our case we use:

All this files are bundled and transpiled with Webpack and Babel.

The build process is managed by electron-builder.

Two renderer processes

This two-renderer process architecture is used to keep the main renderer process (Cerebro) responsive and to avoid blocking the UI when executing long tasks.

When 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.

This is the way we implement the plugins system. Their initializeAsync method is executed in the background process.

Prerequisites

Install Cerebro

First, clone the repo via git:

git clone https://github.com/cerebroapp/cerebro.git cerebro

Open the project

cd cerebro

And then install dependencies:

yarn

Run in development mode

yarn run dev

Note: requires a node version >=16.x

Resolve common issues

  1. AssertionError: Current node version is not supported for development on npm postinstall. After 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.

  2. Uncaught Error: Module version mismatch. Exepcted 50, got ... This 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

Conventional Commit Format

The project is using conventional commit specification to keep track of changes. This helps us with the realeases and enforces a consistent style. You can commit as usually following this style or use the following commands that will help you to commit with the right style:

  • yarn cz
  • yarn commit

Publish a release

CerebroApp is using GH actions to build the app and publish it to a release. To publish a new release follow the steps below:

  1. Update the version on both package.json and app/package.json files.
  2. Create a release with from GH and publish it. ๐Ÿšง The release tag MUST contain the v prefix (โŒ 0.1.2 โ†’ โœ…v0.1.2).
  3. Complete the name with a name and a description of the release.
  4. The GH action is triggered and the release is updated when executables are built.

License

MIT ยฉ Cerebro App

More Repositories

1

awesome-cerebro

Curated list of Cerebro plugins and resources
460
star
2

cerebro-plugin

It is boilerplate to create plugins for Cerebro app
JavaScript
31
star
3

create-cerebro-plugin

Create Cerebro plugins with no configuration
JavaScript
25
star
4

cerebro-devdocs

๐Ÿ“ฆCerebro plugin for search in dev. documentations provided by devdocs.io
JavaScript
22
star
5

cerebro-snippets

๐Ÿ“ฆCerebro plugin to create snippets
JavaScript
19
star
6

cerebro-shell

๐Ÿ“ฆ Cerebro plugin to execute any shell command from Cerebro search line
TypeScript
18
star
7

cerebro-ui

๐Ÿ“ฆ Repository of common UI react components for Cerebro plugins
TypeScript
16
star
8

cerebro-osx-system

๐Ÿ“ฆ Cerebro plugin to automate some OSx system features
JavaScript
15
star
9

cerebro-duck-duck-go

๐Ÿ“ฆ Cerebro plugin for use duck duck go
JavaScript
13
star
10

cerebro-gif

๐Ÿ“ฆ Cerebro plugin to find relevant gifs
JavaScript
12
star
11

cerebro-basic-apps

๐Ÿ“ฆ Cerebro plugin for applications search and launch on windows and linux
JavaScript
11
star
12

cerebro-tools

๐Ÿ“ฆ Toolkit for developing plugins for Cerebro App
JavaScript
10
star
13

cerebro-kill

๐Ÿ“ฆ Cerebro plugin to kill process by name
JavaScript
9
star
14

cerebro-emoj

๐Ÿ“ฆ Cerebro plugin to find relevant emoji from text
JavaScript
9
star
15

cerebro-mac-apps

๐Ÿ“ฆ Plugin for searching and launching applications on MacOS with Cerebro app
TypeScript
8
star
16

cerebroapp.com

Static website for cerebro app
TypeScript
6
star
17

cerebro-caniuse

๐Ÿ“ฆ Cerebro plugin for quick access to caniuse.com database
JavaScript
5
star
18

cerebro-google

Cerebro plugin for google search
JavaScript
5
star
19

cerebro-tunnelblick

๐Ÿ“ฆ Cerebro plugin to manage VPN connections in tunnelblick
JavaScript
4
star
20

cerebro-converter

๐Ÿ“ฆ Cerebro plugin to convert currencies and units
JavaScript
4
star
21

cerebro-files-nav

๐Ÿ“ฆ Cerebro plugin for quick filesystem navigation with files previews
JavaScript
4
star
22

cerebro-ip

๐Ÿ“ฆ Cerebro plugin to show your local and external IP addresses
JavaScript
4
star
23

cerebro-imdb

๐Ÿ“ฆ Cerebro plugin to find films on imdb.com
JavaScript
4
star
24

cerebro-google-maps

๐Ÿ“ฆ Cerebro plugin for google maps search
JavaScript
3
star
25

cerebro-timezones

Cerebro plugin to show time in different time zones
JavaScript
3
star
26

cerebro-osx-define

๐Ÿ“ฆ Cerebro plugin to define entered text in OSx dictionary
JavaScript
3
star
27

cerebro-brew

๐Ÿ“ฆ Cerebro plugin to search Homebrew packages
TypeScript
3
star
28

cerebro-fix-path

๐Ÿ“ฆ Cerebro fix $PATH
JavaScript
3
star
29

cerebro-osx-contacts

๐Ÿ“ฆ Cerebro plugin to search in OSx Contacts.app
JavaScript
2
star
30

cerebro-skyeng

๐Ÿ“ฆ Cerebro plugin for English โ‡„ Russian translation using API of skyeng.ru
JavaScript
2
star
31

cerebro-search

๐Ÿ“ฆ Cerebro plugin to search engine
TypeScript
2
star
32

plugins

This is a monorepo for the cerebro-app plugins
JavaScript
1
star