Skip to content

tomlin7/biscuit-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Biscuit Extensions Repository

Marketplace Website β€’ Extension API Docs β€’ Developer Guide


The Biscuit Extensions Repository aggregates community developed extensions for the Biscuit Code Editor.
Each extension lives in its own git submodule inside the extensions/ folder and is automatically surfaced in the online marketplace.

If you are looking for an extension just use the editor's built-in marketplace or the biscuit ext CLI (see below). Visit the new Extensions Marketplace to browse extensions.

List available extensions

biscuit ext list            # every extension in the marketplace
biscuit ext list -i         # only the extensions you have installed
biscuit ext list -u <user>  # extensions by a specific author

Install / Uninstall

biscuit ext install <name>
biscuit ext uninstall <name>

The commands above download or remove the extension without requiring a restart of Biscuit.

✨ Creating a New Extension

The easiest way to start is the official scaffold template hosted at biscuit-extensions/extension. You can browse official templates and examples here.

# create a new project called "my_extension" in the current directory
biscuit ext new my_extension

# use an official template or your own git repo
biscuit ext new my_extension -t <template name or any git repo url>

During creation you will be asked for a description, author and initial version.
The generated project follows the structure expected by Biscuit:

my_extension/
└── src/
    └── my_extension/
        β”œβ”€β”€ __init__.py   # entry-point, exposes setup(api)
        └── widget.py     # your extension logic
└── tests/                # pytest suite (optional but recommended)
└── pyproject.toml        # project metadata (Poetry)
└── README.md

A minimal example showing the editor API:

from biscuit.extensions import Extension
from biscuit.api import ExtensionsAPI

class HelloWorld(Extension):
    def __init__(self, api: ExtensionsAPI) -> None:
        super().__init__(api)
        api.logger.info("Hello World extension loaded")

    def install(self) -> None:
        self.api.notifications.info("πŸ‘‹ Hello Biscuit!")

Running Development Server

cd my_extension
biscuit ext dev    # launches Biscuit and hot-loads the extension in dev-mode

Test-driven development:

pip install pytest
biscuit ext test       # run the entire pytest suite

πŸš€ Publishing to the Marketplace

Once your extension is ready:

biscuit ext publish    # guide & checklist for first-time publishing

The command validates your project, optionally runs the test-suite and prints step-by-step instructions for adding your repository as a git sub-module and updating extensions.toml.

For subsequent releases use:

biscuit ext update     # checklist for bumping the version / commit

Contributing

  1. Fork this repository and keep your branch in sync with main.
  2. Follow the publish / update instructions printed by the CLI.
  3. Open a Pull Request – the team will review and merge it.

Contributors 3

  •  
  •  
  •