🔎 Low latency fuzzy-find on browser tabs, bookmarks, history
🏃 Search and jump to common developer docs
Coming soon...
⚙️ Plugins
🤖 AI clipboard
- Open with
Cmd+Period
- Fuzzy search by tab title, URL, or any portion of visible text on a tab
- A small list of experimental plugins starting with
@
search common repositories of developer documentation:- @mdn searches articles from https://developer.mozilla.org/
- @caniuse searches browser compatibility data from https://caniuse.com/
- ...more to come
Calcium is in beta and currently only supports Chrome. It is not yet published to the Chrome Web Store. If you'd still like to try it out and give your feedback, you can build and install the extension locally assuming you have a Node.js environment configured (>=LTS):
git clone https://github.com/ethanlynn/calcium
cd calcium/calcium-extension
npm install
npm run build
After building, the dist/
directory can be installed manually in Chrome as follows:
- Navigate to
chrome://extensions
- Ensure "Developer Mode" is toggled on in the top right corner
- Click "Load Unpacked" in the top left corner
- Select the
calcium-extension/dist/
directory
Note that you will need to restart your browser before the extension is able to properly index all of your tabs.
Right now, the best way to contribute is to try out Calcium and share your feedback.
Directives starting with @
will likely be expanded, so if you have ideas for a specific data source or behavior that you feel would be helpful to integrate into Calcium, submit a proposal via a Github Issue or submit a PR following the template of the existing adapters/
. Please bear in mind:
- Any data source used must be publicly available on the internet and licensed appropriately
- Directives should generally be applicable to a wide audience of developers (very niche use cases will be rejected)
- The interface for building adapters is unstable. I would like to pilot a few good use cases and define the appropriate constraints before creating many specialized adapters.
Below is an incomplete roadmap of ideas I may or may not end up incorporating. This list may change.
- Search by tab title, URL
- Search by tab page content
- Search by bookmarks
- Search by browser history
- Create a more hackable architecture
- Release calcium as an NPM package that can bundle itself into an extension given a config containing a set of plugins
- Extension build process
calcium build
should bundle all plugins into a directory that can be loaded as an unpacked extension - Users should be able to define their profile with config and plugins in
calcium.profile.js
orcalcium.profile.ts
- theme
- plugins
- keybindings
- Plugin architecture should be well defined so that users can create their own plugins or install 3rd-party plugins from NPM
- Plugin architecture should support the notion of
$PATH
-
$PATH
would work similar to shell environments, providing certain plugins only within the context of a given domain or URL
-
- Plugins should be isolated within a service worker to protect the user's privacy and prevent malicious plugins from gaining access to the browser's resources or data within other plugins
- Plugin architecture should support authentication into 3rd party APIs like Github
- Extension build process
- Release calcium as an NPM package that can bundle itself into an extension given a config containing a set of plugins
- Establish a quality set of core themes and plugins for navigating to common developer resources and performing common development tasks
- mdn
- caniuse
- npm
- pip
- dockerhub