Nota extensibility is highly experimental. You're welcome to experiment with it and send us feedback, but expect changes.

Can I write scripts in different programming languages?

Yes. You can write a script in any language you want. For example, you can write in JavaScript by writing #!/usr/local/bin/node on the first line of the script.

Where are extensions located?

Custom commands are located in /path/to/your/workspace/.nota/commands/my-command.sh and hooks are located in /path/to/your/workspace/.nota/hooks/<hook-name>.sh. For example, if you have opened ~/Dropbox/Nota in Nota the paste hook will be located at ~/Dropbox/Nota/.nota/hooks/paste.sh.

Can I define a global extension?

No. Extensions work only for the current workspace they are in.

We will probably support global extensions in the future as well but we will first need to validate that there are valid use cases and demand for it. Write to us to tell us your use case.

Do you have a programmatic API?

No. This is on our roadmap but we want to make the API secure and easy to use and we found those two hard to achieve. This is why we will need more time to get this right.

Why do you use executable scripts?

We have tried to make Nota as easily extensible as possible. This is why Nota extensions are just plain text executable scripts. This means: