This is the main repository of Stencila, a platform for authoring, collaborating on, and publishing executable documents.
Stencila is comprised of several open source packages, written in a variety of programming languages. This repo acts as an entry point to these other packages as well as hosting code for our desktop and CLI tools.
For documentation, including demos and reference guides, please go to our Help site https://help.stenci.la/. That site is developed in the
help folder of this repository and contributions are always welcome.
If you don't want to install anything, or just want to try out Stencila, https://hub.stenci.la is the best place to start. It's a web application that makes all our software available via intuitive browser-based interfaces. You can contribute to Stencila Hub at
If you'd prefer to use Stencila on your own computer, the Stencila Desktop is a great place to start. It is still in the early stages of (re)development but please see the
desktop folder for its current status and how you can help out!
⌨️ Command line tool
Prefer to work on the command line? The
stencila command line tool (CLI) is for you! Please see the
cli folder for installation and usage instructions.
stencila Hub, Desktop and CLI all rely on plugins to provide much of their functionality. You can install plugins using the
stencila Desktop or CLI tool using it's name or an alias,
stencila plugins install <name or alias>
The following table lists the main plugins. These plugins are in various stages of development and not all of them are compatible with the Desktop and CLI. Generally, it won't be worth installing them prior to
v1 and coverage of at least 90%.
🚨We are the process of deprecating the "executor" plugins
jestaand instead focussing on a tighter integration with Jupyter kernels by way of porting the functionality in
jupitainto the core Rust library.
||Convert documents between file formats|
||Compile, build and execute documents that use R|
||Compile, build and execute documents that use Python|
||Execute documents that use Jupyter kernels|
||Build Docker images for executable documents|
||Build Nix environments for executable documents|
🐳 Docker images
You can use Stencila as a Docker image. We provide several images of varying sizes and capabilities. All include the
stencila CLI as the image
ENTRYPOINT but add varying numbers of plugins and packages.
At present the number of images listed below is limited. We plan to move the generic images e.g.
stencila/executa-midi (which are currently built in the
dockta repository), to this repository as we reach plugin compatibility for the relevant language packages.
|stencila/stencila||Base image containing
|stencila/node||Adds Node.js and
👩💻 Language bindings
If you prefer, you can use Stencila from within your favorite programming language. Some of these language bindings are in an early, proof-of-concept state and are likely to be developed further only based on demand. If your favorite language is missing, or you would like to help us develop the bindings, let us know!
|Node||node||In-development (used for Desktop)|