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:
GitHub Pull Request
Fork the guide-extensions repository, add your extension folder, and open a PR. We'll review and publish it.
Email Submission
Send your packaged extension to extensions@graysoft.dev. Include a brief description and any setup instructions.
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.