Back to Extensions

Submit

Build & Submit an Extension

guIDE extensions are simple folder-based packages. Create a manifest.json, package your code, and share it with the community.

Extension Structure

my-extension/
├── manifest.json        ← Required
├── main.js              ← Entry point (optional)
├── styles/
│   └── theme.css        ← Custom styles (optional)
├── snippets/
│   └── snippets.json    ← Code snippets (optional)
└── README.md            ← Description (optional)

The only required file is manifest.json. Everything else depends on what your extension does.

manifest.json

{
  "id": "my-extension",
  "name": "My Extension",
  "version": "1.0.0",
  "description": "A brief description of what this extension does.",
  "author": "Your Name",
  "category": "tools",
  "icon": "icon.png",
  "main": "main.js",
  "homepage": "https://github.com/you/my-extension",
  "repository": "https://github.com/you/my-extension"
}

Required Fields

id — Unique identifier (lowercase, hyphens allowed). Must be globally unique.

name — Display name shown in the Extensions panel.

version — Semantic version (e.g. 1.0.0, 1.2.3).

Optional Fields

description — Short description shown in the marketplace.

author — Your name or organization.

category — One of: theme, formatter, linter, language, ai, tools, git, snippets, other.

icon — Path to an icon image (relative to extension root). Displayed in the UI.

main — JavaScript entry point if your extension has runtime behavior.

homepage — URL to your extension's homepage or documentation.

repository — URL to the source code repository.

Extension Categories

Themes

Color schemes, icon packs

Formatters

Code formatting tools

Linters

Code quality analysis

Languages

Syntax, autocomplete

AI

AI-powered features

Tools

Developer utilities

Git

Version control tools

Snippets

Code templates

Other

Everything else

Package Your Extension

Zip your extension folder into a .zip file. The manifest.json should be either in the root of the zip, or inside a single top-level folder.

# From your extension directory:

zip -r my-extension.zip .

# Or on Windows (PowerShell):

Compress-Archive -Path * -DestinationPath my-extension.zip

You can also rename .zip to .guide-ext for a cleaner file extension. Both formats are accepted.

Submit to the Marketplace

Three ways to share your extension:

1

GitHub Pull Request

Fork the guide-extensions repository, add your extension folder, and open a PR. We'll review and publish it.

2

Email Submission

Send your packaged extension to extensions@graysoft.dev. Include a brief description and any setup instructions.

3

Community Forum

Share your extension in the community discussions. Other users can download and install it directly from there.

Submission Guidelines

Extensions must include a valid manifest.json with at minimum id, name, and version.

No malicious code, data collection, or network requests without user consent.

Keep your extension focused — do one thing well.

Include a README.md with usage instructions.

Use semantic versioning (major.minor.patch).

Test your extension in guIDE before submitting.