VibTools Manifest (v1)
Official specification for vibtools.json manifests to automate project imports, catalogs, and GitHub repository synchronization.
VibTools Product Manifest Specification
Version: 1.0.0 (Stable)
The VibTools Product Manifest Specification defines the standard vibtools.json format placed in the root directory of applications, packages, and open-source tools.
Instead of manually typing product descriptions, download URLs, versions, categories, and image links into multiple website databases, placing vibtools.json in your repository enables 1-Click Import from GitHub.
Canonical Schema URL
Add this $schema property to your vibtools.json for IDE autocomplete and schema validation in VS Code, JetBrains, or automated CI tools:
{
"$schema": "https://schema.ygit.dev/vibtools/v1/vibtools.schema.json",
"schemaVersion": 1,
"name": "Session Manager Pro",
"slug": "session-manager-pro"
}
View the Schema Reference or Download Sample Manifest.
How GitHub Import Works
When managing a catalog website or app directory:
- Project Root: The developer places
vibtools.jsonat the root of the repository alongside the source code. - Import Trigger: In your catalog website admin panel, click “Import with GitHub Repo” and enter the repository name (e.g.
vibtools/session-manager-proor full GitHub URL). - Automated Fetch: Your website fetches
https://raw.githubusercontent.com/{owner}/{repo}/main/vibtools.json. - Instant Form Population: All form inputs—product name, slug, subtitle, description, category, tags, links, flags, and assets—fill automatically.
Field Specification
| Property | Type | Required | Description |
|---|---|---|---|
$schema |
string (URI) |
Yes | https://schema.ygit.dev/vibtools/v1/vibtools.schema.json |
schemaVersion |
integer |
No | Major version number (must equal 1). |
name |
string |
Yes | Product name (e.g. Session Manager Pro). |
slug |
string |
Yes | URL identifier (e.g. session-manager-pro). |
category |
string |
No | Catalog category (Desktop Apps, Web Apps & Scripts, Browser Extensions, etc.). |
status |
string |
No | Availability status (Available, In Development, Beta, Preview, Archived). |
version |
string |
No | Current release version (e.g. 1.0.0). |
subtitle |
string |
No | Primary tag or subtitle summary. |
repository |
string |
No | GitHub repository path (owner/repo). |
description |
string |
No | Markdown or plain text description. |
assets.logoUrl |
string |
No | Square logo or icon image URL or relative path. |
assets.thumbnailUrl |
string |
No | Banner or preview thumbnail image URL or relative path. |
assets.ogImageUrl |
string |
No | Social OpenGraph / Twitter card preview image (1200x630 recommended). |
assets.screenshots |
array |
No | Array of screenshot image URLs or relative paths. |
documents.quickStart |
string |
No | Path or URL to non-technical Quick Start guide. |
documents.features |
string |
No | Path or URL to non-technical Features overview. |
documents.faq |
string |
No | Path or URL to Frequently Asked Questions document. |
documents.whatsNew |
string |
No | Path or URL to What’s New release highlights. |
links.liveDemo |
string |
No | Web demo or preview URL. |
links.download |
string |
No | Release download or installer URL. |
links.docs |
string |
No | Documentation website URL. |
tags |
array |
No | Keywords and filter tags list. |
flags.isActive |
boolean |
No | Visible in public catalog (true/false). |
flags.isOpenSource |
boolean |
No | Open source repository flag (true/false). |
flags.isFeatured |
boolean |
No | Featured highlight toggle (true/false). |
Reference Manifest (vibtools.json)
{
"$schema": "https://schema.ygit.dev/vibtools/v1/vibtools.schema.json",
"schemaVersion": 1,
"name": "Session Manager Pro",
"slug": "session-manager-pro",
"category": "Desktop Apps",
"status": "Available",
"version": "1.0.0",
"subtitle": "Windows, Automation, Utility",
"repository": "vibtools/session-manager-pro",
"description": "A powerful session and workspace management utility for Windows power users. Automates window positioning, workspace state saving, and instant multi-monitor workspace restoration.",
"assets": {
"logoUrl": "https://raw.githubusercontent.com/vibtools/session-manager-pro/main/assets/logo.png",
"thumbnailUrl": "https://raw.githubusercontent.com/vibtools/session-manager-pro/main/assets/banner.png",
"ogImageUrl": "https://raw.githubusercontent.com/vibtools/session-manager-pro/main/assets/og-image.png",
"screenshots": [
"https://raw.githubusercontent.com/vibtools/session-manager-pro/main/assets/screenshot-main.png"
]
},
"documents": {
"quickStart": "vibtools/quick-start.md",
"features": "vibtools/features.md",
"faq": "vibtools/faq.md",
"whatsNew": "vibtools/whats-new.md"
},
"links": {
"liveDemo": "https://demo.vib.tools",
"download": "https://vib.tools/downloads/v1.0.0.exe",
"docs": "https://docs.vib.tools/session-manager-pro",
"github": "https://github.com/vibtools/session-manager-pro"
},
"tags": [
"Desktop",
"Automation",
"Free",
"Open Source"
],
"flags": {
"isActive": true,
"isOpenSource": true,
"isFeatured": false
}
}
Website Implementation Snippet
Here is an example client-side function to implement the “Import with GitHub Repo” feature in your catalog admin modal:
async function importFromGitHub(repoInput: string) {
// Normalize input: handles "vibtools/session-manager-pro" or "https://github.com/vibtools/session-manager-pro"
const cleanRepo = repoInput.replace(/^https?:\/\/github\.com\//, '').replace(/\/$/, '');
const url = `https://raw.githubusercontent.com/${cleanRepo}/main/vibtools.json`;
const response = await fetch(url);
if (!response.ok) {
throw new Error(`Could not find vibtools.json at ${url}`);
}
const manifest = await response.json();
// Auto-fill form fields
return {
name: manifest.name ?? '',
slug: manifest.slug ?? '',
category: manifest.category ?? 'Desktop Apps',
status: manifest.status ?? 'Available',
version: manifest.version ?? '1.0.0',
subtitle: manifest.subtitle ?? '',
repository: manifest.repository ?? cleanRepo,
description: manifest.description ?? '',
downloadUrl: manifest.links?.download ?? '',
liveDemoUrl: manifest.links?.liveDemo ?? '',
filterTags: Array.isArray(manifest.tags) ? manifest.tags.join(', ') : '',
isActive: manifest.flags?.isActive ?? true,
isOpenSource: manifest.flags?.isOpenSource ?? true,
isFeatured: manifest.flags?.isFeatured ?? false,
logoUrl: manifest.assets?.logoUrl ?? '',
thumbnailUrl: manifest.assets?.thumbnailUrl ?? '',
ogImageUrl: manifest.assets?.ogImageUrl ?? manifest.assets?.ogImage ?? '',
quickStartDoc: manifest.documents?.quickStart ?? manifest.documents?.['quick-start'] ?? '',
featuresDoc: manifest.documents?.features ?? '',
faqDoc: manifest.documents?.faq ?? '',
whatsNewDoc: manifest.documents?.whatsNew ?? manifest.documents?.['whats-new'] ?? '',
};
}
Workspace Hub & Non-Technical Guides (/vibtools/)
To support non-programmers, creators, and team members, repositories can maintain a dedicated /vibtools/ directory containing:
- Branding Assets (
vibtools/assets/): Branded social cards (og-image.png, 1200×630), square logos (logo.png, 512×512), and preview screenshots (screenshot.png). - Quick Start Guide (
vibtools/quick-start.md): Jargon-free, 3-step setup guide requiring zero terminal or command-line experience. - Features Breakdown (
vibtools/features.md): Plain-language overview of workspace presets, automated window restoration, and privacy. - FAQ (
vibtools/faq.md): Common questions regarding licensing, local data privacy, and updates. - What’s New (
vibtools/whats-new.md): Clear summary of recent features, visual improvements, and upcoming roadmap items.
