Supercharge Notion with custom commands to record, draw, and more ✍️

Overview

Slashy

Preview

Supercharge Notion with custom commands to record, draw, and more

Slashy is an open source extension that lets you create custom commands for Notion. Make camera and audio recordings, draw, create reusable components and much more - all for free.

👉 Get it now for Chrome, for Firefox, and for Edge.

Slashy - Supercharge Notion with commands to record, draw, and more | Product Hunt

Made by Alyssa X

Table of contents

Features

⚡️ Create your own Notion custom commands, accessible with the slash key
📹 Make video and audio recordings without leaving Notion with /record
🖌️ Make drawings and annotations for your Notion page with /draw
✍️ Easily make commands for reusable blocks and content
🤖 Develop your own plugins with the Slashy SDK
🗄 Manage and edit your commands easily through the Notion sidebar
⚙️ Toggle command visibility and other settings
...and much more - all for free & no sign in needed!

How to use Slashy

First, you need to install Slashy from the Chrome Web Store, the Firefox add-ons website, or self-host it.

Firefox workaround

In order for the /draw command to work in Firefox, you must go to about:config in Firefox (type in the address bar) and then set dom.events.asyncClipboard.clipboardItem to true by clicking on the toggle button on the right. See below:

About config

Accessing the sidebar

You can then open Notion, and you will see a "zap" icon on the top right of the sidebar. Click it to see and manage all the custom commands. Here's how it should look like after installing the extension:

Sidebar example

The draw command

One of the default commands Slashy comes with is /draw.

Once you use it in Notion (typing /draw, and then selecting "Make a drawing" from the list), it will prompt a popup with a canvas you can draw on. Here are the tools available within it:

  • Color picker: Clicking on the bottom left colored circle lets you switch the color you draw in.
  • Pencil tool: Simple pencil drawing tool
  • Line tool: Lets you create lines by dragging on the canvas
  • Text tool: Lets you create text by clicking somewhere on the canvas, and then typing
  • Eraser: Allows you to erase parts of the canvas by dragging on top of it, like a brush
  • Clear: Clicking on it will automatically clear the canvas

Once you're happy with your drawing, you can click on "Save", and it will automatically be added into the Notion page.

The record command

One of the default commands Slashy comes with is /record.

To use it in Notion, just type /record and select "Make a recording" from the list. It will prompt a popup, and ask you permission to use the camera and microphone. You need to accept to proceed.

Once the permissions have been set, you will see the camera playback within the popup, and you can click on the red circle to start recording. To stop, just click again, and it will automatically download the file. You can then add it into Notion.

Creating a command

To create a command, click on the blue "New command" button on the top right of the sidebar. This will prompt a popup, that will look like this:

Popup example

There are several fields in the form:

Field Type Description
Image URL URL (optional) A permanent link to an image to use as a thumbnail for the command. If not set, a fallback image will be used.
Name String The name of the command. This will be visible in the commands list and will be used as a modal title for plugins.
Description String The description of the command. It will be visible in the commands list.
Command String The alias that will trigger the command. It will always use a "/" to trigger, like other Notion commands.
Type of action Dropdown The type of action the command will perform. It can be a "Template", which inserts markdown directly into the page, a "Script", which runs JavaScript code, or an "Image", which inserts an image into the page using a URL
Visibility Dropdown It can either be "Visible" or "Hidden", so you can control if the command shows up when using the "/".
Template content String Only shows if the command type is set to "Template". Any text (markdown supported) will be inserted into the Notion page.
Image link URL Only shows if the command type is set to "Image". The URL provided will be used to insert an image into the page.
JavaScript JavaScript Only shows if the command type is set to "Script". The JavaScript code will run after triggering the command. You can use the Slashy SDK to access special methods to interact with Notion.

Editing a command

To edit a command, hover over a specific command in the sidebar (the record and draw commands cannot be edited), and click on the "Edit" button. It will show a popup where you can make any changes or discard them.

Deleting a command

To delete a command, hover over a specific command in the sidebar (the record and draw commands cannot be deleted), and click on the trash button. It will prompt you with a popup to confirm whether you really want to remove the command. Click on "Delete" to confirm.

Slashy SDK

I've added a few methods to make it easier to interact with Notion and create custom plugins in Slashy. You can use these methods in the Javascript field when creating a new command (make sure to set the command type to "Script").

Show modal

showModal(label, placeholder, onsubmit)

Displays a modal with an input field that you can use for a variety of plugins, for example: Plugins example

The title of the modal will be the same as the name of your command.

Parameter Type Description
label String The label that will show on the modal above the input.
placeholder String The placeholder text in the input.
onsubmit Function(result) The function that gets called when the user submits the modal. Should have one parameter to return the input value.

Write to Notion

writeToNotion(content)

Inserts any sort of text (markdown included) into Notion where the user triggered the slash command.

Parameter Type Description
content String The text to add to the Notion page.

Add image

addImageBlob(blob)

Adds an image to the Notion page where the user triggered the slash command.

Parameter Type Description
blob Blob (type image/png only) The image to add to the Notion page.

Feel free to suggest new methods for Slashy by making an issue.

Self-hosting Slashy

You can run Slashy locally without having to install it from the Chrome Store or from Firefox Add-ons.

Installing on Chrome

  1. Download the code. In the web version of GitHub, you can do that by clicking the green "Code" button, and then "Download ZIP".
  2. Go to chrome://extensions/ in your browser, and enable developer mode.
  3. Drag the mv3 folder (make sure it's a folder and not a ZIP file, so unzip first), or click on the "Load unpacked" button and locate the folder.
  4. That's it, you will now be able to use Slashy locally.

Installing on Firefox

  1. Download the code. In the web version of GitHub, you can do that by clicking the green "Code" button, and then "Download ZIP".
  2. Open the about:debugging page in your browser, click the "This Firefox" option.
  3. Click the "Load Temporary Add-on" button, and select any file inside the mv2 folder
  4. You might need to add a temporary extension ID in the manifest.json in order to be able to use storage.
  5. In order for the /draw function to work properly, you must go to about:config in Firefox (type in the address bar), and then set dom.events.asyncClipboard.clipboardItem to true by clicking on the toggle button on the right.
  6. That's it, you will now be able to use Slashy locally.

Libraries used

  • jQuery - for better event handling and DOM manipulation
  • FabricJs - for the drawing plugin
  • SvalJs - to be able to execute custom scripts (eval doesn't work in MV3)

Feel free to reach out to me through email at [email protected] or on Twitter if you have any questions or feedback! Hope you find this useful 💜

Comments
  • [Suggestion] Clicking on a command in the sidebar should run it

    [Suggestion] Clicking on a command in the sidebar should run it

    image

    Clicking on any of these commands doesn't actually run the command, even though all of the items have a pointer of cursor which suggests that they do

    enhancement 
    opened by Explosion-Scratch 3
  • Circular method call

    Circular method call

    I haven't tried this plugin yet, but I was curios about the code. While going through the functionality, I came across following snippet.

    image

    Isn't it circular?

    opened by carbonrider 1
  • No feedback after edit a command and save

    No feedback after edit a command and save

    When you edit a command, then hit the save button, there's no any feedback, such as a toast message or close the modal automatically.

    The first time I met this problem I was thinking the extension not work, but I found it has saved the command successfully.

    So, maybe after save the command, should close the modal or give some message to tell users it's saved.

    Browser: Edge Extension Version: Chrome Store Version 1.0.4

    opened by ruter 0
  • Feature Request: Copy an inline equation

    Feature Request: Copy an inline equation

    I would like to be able to add a custom command to copy an inline equation that I am using repeatedly through out my document. Please let me know if this is already possible, and if not, would it be possible to add this?

    opened by zoestoll 0
  • Extension doesn't work at all

    Extension doesn't work at all

    There seems to be nothing happening when I click on the command block. I tried chrome and Firefox, built-in and custom command, neither seems to work. Maybe something changed on notion's side that breaks the extension?

    opened by Syycorax 2
  • Slashy on smartphone

    Slashy on smartphone

    One of the best reason tu use notion is that you can use it so easily with smartphone. Therefore it would be really pratical if we could use slashy in the smartphone app's (as well as in the computer apps).

    opened by tixy74 0
  • Firefox can’t find the file at moz-extension://a99918fb-d910-4cea-beec-73959b50bbef/popup.html

    Firefox can’t find the file at moz-extension://a99918fb-d910-4cea-beec-73959b50bbef/popup.html

    After installing this extension, a new button is added to the firefox toolbar with the slashy icon. clicking this button triggers this error:

    
    File not found
    
    Firefox can’t find the file at moz-extension://a99918fb-d910-4cea-beec-73959b50bbef/popup.html.
    
        Check the file name for capitalization or other typing errors.
        Check to see if the file was moved, renamed or deleted.
    
    

    And indeed, this file does not seem to exist at all

    opened by CircleCode 0
  • Poor readability when dark mode is enabled

    Poor readability when dark mode is enabled

    image

    Font color is such that it is hard to read when Notion's theme is set to dark. Consider checking body's attributes if it contains dark and setting the font color based on that.

    opened by KevinKZ 0
  • QUOTA_BYTES_PER_ITEM restriction

    QUOTA_BYTES_PER_ITEM restriction

    opened by KevinKZ 0
Owner
Alyssa X
Designer, developer, & entrepreneur. Founder of Sonuum + other ventures. Best woman maker of 2018 (Maker Mag) & nominated as Maker of The Year (Product Hunt)
Alyssa X
Supercharge your All-in-One workspace with the Command Palette within Notion 🕹️

Notion Palette Supercharge your All-in-One workspace with the Command Palette within Notion ??️ Notion Palette is a free and open source extension, yo

Ruter 13 Nov 10, 2022
This is collection of the CNCF logos packed into a draw.io importable file to draw cloud native architectures

draw-io-cncf-shape This is collection of the CNCF logos packed into a draw.io importable file to draw cloud native architectures How to embed the shap

Jan-Otto Kröpke 10 Dec 26, 2022
Supercharge Multicall.js with nitro features 💨

multicall-nitro Supercharge Multicall.js with nitro features ?? Highlights TypeScript support ✅ Ready-to-use calls ✍?? React hook ⚛️ One time call ??

Enzo Ferey 5 Dec 15, 2022
Kuldeep 2 Jun 21, 2022
All terminal commands in one place (you can Contribute to it by putting latest commands and adding Readme)

Terminal-Commands All basic terminal commands in one place Show some ❤ by some repositories You can contribute to this readme If you to contribute wit

Shehzad Iqbal 7 Dec 15, 2022
There can be more than Notion and Miro. Affine is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.

AFFiNE.PRO The Next-Gen Knowledge Base to Replace Notion & Miro. Planning, Sorting and Creating all Together. Open-source, Privacy-First, and Free to

Toeverything 12.1k Jan 9, 2023
Make an Astro site with content from Notion (and more)

Astronotion ⚠️ It is strongly recommended to upgrade to 0.0.7 (what has been fixed?) npm install -D astronotion@latest (or other package managers' equ

Eka 14 Dec 19, 2022
jQuery Terminal Emulator - JavaScript library for creating web-based terminals with custom commands

JavaScript Library for Web Based Terminal Emulators Summary jQuery Terminal Emulator is a plugin for creating command line interpreters in your applic

Jakub T. Jankiewicz 2.8k Jan 1, 2023
DrawPage - Draw page using HTML, CSS and JS

<<<<<<< HEAD DrawPage Draw page with HTML, CSS e JS Fala galera, mais um projeto

Eldio de Almeida Barbosa Neto 0 Feb 9, 2022
A simple library to draw option menu or other popup inputs and layout on Node.js console.

console-gui-tools A simple library to draw option menu or other popup inputs and layout on Node.js console. console-gui-tools A simple Node.js library

Elia Lazzari 12 Dec 24, 2022
This tool allows you to draw up plans for facilities from Foxhole's new Inferno update. It takes power and resource needs into account to help you efficiently design your facilities.

Foxhole Facility Planner This tool allows you to draw up plans for facilities from Foxhole's new Inferno update. It takes power and resource needs int

Brandon Ray 23 Dec 23, 2022
AREX: It is a “Differential Testing” and “Record and Replay Testing” Tool.

AREX: It is a “Differential Testing” and “Record and Replay Testing” Tool. Test restful API by record, replay and stub request/response. Differential

ArexTest 15 Nov 1, 2022
A high-resolution local database that uses precise algorithms to easily record data in local files within a project with persistent JSON and YAML support designed to be easy to set up and use

About A high-resolution local database that uses precise algorithms to easily record data in local files within a project with persistent JSON and YML

Shuruhatik 5 Dec 28, 2022
Library for calculating where to draw tree nodes, while avoiding overlap.

Tree Grapher Library for calculating where to draw tree nodes, while avoiding overlap. Installation 1) npm install tree-grapher --save-exact The --sav

Stephen Wicklund 1 Feb 7, 2022
A chrome / firefox extension to draw on any webpage with tldraw

tldrawe A chrome / firefox extension to draw on any webpage with tldraw. Development From the root folder: Run yarn to install dependencies. Run yarn

Nimesh Nayaju 54 Jan 6, 2023
An easy-to-use JavaScript library aimed at making it easier to draw on SVG elements.

svg-pen-sketch An easy-to-use JavaScript library aimed at making it easier to draw on SVG elements when using a digital pen (such as the Surface Pen).

Kevin Desousa 8 Jul 27, 2022
Kyrillos Hany 14 Aug 10, 2022
An implementation of ERC1155D, a record setter for minting and transfer gas efficiency.

ERC1155D An implementation of ERC1155D, a record setter for minting and transfer gas efficiency. This contract is in alpha stage and has not been audi

null 72 Dec 26, 2022
Record games and emulate a League of Legends spectator server

Neeko-Server Neeko-Server is an application that record games emulates a League of Legends spectator server to serve them to the League of Legends cli

Vivi 15 Dec 1, 2022