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 WebsiteExtension API DocsDeveloper 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

  •  
  •  
  •