SilverBullet’s client is written in TypeScript and built on top of the excellent CodeMirror 6 editor component. Additional UI is built using Preact. ES Build is used to build the frontend.
Plugs are also written in TypeScript.
The SilverBullet server is written in Go.
client/
: The SilverBullet client, implemented with TypeScriptserver/
: The SilverBullet server, written in Goplugs
: Set of built-in plugs that are distributed with SilverBulletlibraries
: A set of libraries (space scripts, page templates, slash templates) distributed with SilverBulletplug-api/
: Useful APIs for use in plugs
lib/
: Useful libraries to be used in plugssyscalls/
: TypeScript wrappers around syscallstypes/
: Various (client) types that can be references from plugsbin
plug_compile.ts
the plug compilerscripts/
: Useful scriptswebsite/
: silverbullet.md website contentRequirements: * Deno 2.4 or newer. * Go 1.25 or newer * Make
It's convenient to also install air for development, this tool will watch your code base for changes and automatically rebuild:
go install github.com/air-verse/air@latest
Make sure your $GOPATH/bin
is in your $PATH.
To build everything and run the server using air:
air <PATH-TO-YOUR-SPACE>
Note, that if you want to pass arguments to your SilverBullet binary like -p
or -L
you need to this as follows:
air -- -L 0.0.0.0 <PATH-TO-YOUR-SPACE>
Alternatively, to build the project without air:
make build
To run the resulting server:
./silverbullet <PATH-TO-YOUR-SPACE>
# Clean all generated files
make clean
# Typecheck and lint all code
make check
# Format all code
make fmt
# Run all tests
make test
Note, you do not need Deno nor Go locally installed for this to work:
docker build -t silverbullet .
To run:
docker run -p 3000:3000 -v <PATH-TO-YOUR-SPACE>:/space silverbullet