Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xendit Extensions

Validate Extension License: MIT

The official extensions registry and tooling for Xendit — a lightweight, VSCode-like code editor built with Tauri v2 + React.

Xendit extensions are trusted local ES modules. Each one exports an activate(xendit) function that runs when the extension is enabled, and declares where it mounts UI through a contributes section in its manifest. Extensions talk to the editor through a curated xendit.* API and can build native-feeling UI with the framework-free @xendit/ui web-component kit, which reads the editor's --xd-* design tokens.

New to authoring? Start with DEVELOP.md for the full API and contributes reference, then read CONTRIBUTING.md for the submission flow.

How the registry works

There is no central index file. The folder listing under extensions/ is the registry — one folder per extension, and the folder name is the extension id. The editor's built-in Marketplace view reads extensions/ through the GitHub contents API, parses each manifest.json, and offers install / update in place. Adding an extension is just opening a PR that adds one folder.

extensions/
  word-count/      -> id: word-count
  todo-tree/       -> id: todo-tree
  ui-kit-demo/     -> id: ui-kit-demo

Every extension folder must contain a manifest.json (validated against schema/manifest.schema.json), a main.js entry module, an icon/image referenced by the manifest's required image field (a PNG/JPG/JPEG/WEBP/SVG, ~128x128, shown on the extension's Marketplace card), and a README.md. The editor renders that README.md GitHub-style on the extension's detail page — below the logo, title, and description — when a user opens the extension in the Marketplace, just like VS Code. CI verifies the image file exists with a valid type and that README.md is present and non-empty.

Installing extensions (users)

  1. Open Xendit.
  2. Open the Extensions / Marketplace view from the activity bar.
  3. Browse or search, then click Install. The editor downloads the folder, verifies the manifest, and enables the extension (calls its activate(xendit)).
  4. To try an unpublished extension, use Load Unpacked and point it at a local extension folder.

What's in this repo

Path What it is
extensions/ The registry. One folder per extension (folder name = id).
schema/manifest.schema.json JSON Schema (draft 2020-12) every manifest must satisfy.
ui-kit/ @xendit/ui — the framework-free component kit + build script.
cli/ @xendit/cli — the xendit scaffolder (xendit create).
create.sh / create.bat Zero-install scaffolders for POSIX / Windows.
.github/ CI: PR validation + UI kit release workflows.
DEVELOP.md Authoring guide + full xendit.* and contributes reference.
CONTRIBUTING.md Submission and review process.

Quick start (authors)

Scaffold a new extension into extensions/<id>/:

# With the CLI (zero deps):
node cli/xendit.mjs create --id word-echo --name "Word Echo" \
  --description "Echoes the selected word" --author "You" \
  --permissions editor,commands,notifications

# Or the shell scaffolder:
./create.sh --id word-echo --name "Word Echo" \
  --description "Echoes the selected word" --author "You"

Then edit main.js, load it unpacked through the editor's Marketplace to test, and open a PR (one extension per PR). CI runs validate-extension.yml, which must pass before review.

The @xendit/ui kit

@xendit/ui is a dependency-free component kit (Button, Input, Select, Toggle, List, Panel, Toolbar, Badge, Spinner, EmptyState, Tooltip, and more) available both as a factory API and as <xd-*> custom elements. It is themed entirely from the editor's design tokens. The same factory is handed to every extension as xendit.ui. See ui-kit/README.md.

node ui-kit/build.mjs   # builds dist/ (js/min.js/css/min.css)

Default branch

This repository's default branch is stable.

License

MIT © Spyxpo. See LICENSE.

About

The official extensions registry and tooling for Xandit

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages