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

idUnique identifier (lowercase, hyphens allowed). Must be globally unique.

nameDisplay name shown in the Extensions panel.

versionSemantic version (e.g. 1.0.0, 1.2.3).

Optional Fields

descriptionShort description shown in the marketplace.

authorYour name or organization.

categoryOne of: theme, formatter, linter, language, ai, tools, git, snippets, other.

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

mainJavaScript entry point if your extension has runtime behavior.

homepageURL to your extension's homepage or documentation.

repositoryURL 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.