HarborClient’s Theme Creator lets you design custom palettes with live preview and export them as portable theme files. This guide walks through turning that export into a marketplace theme: a Git repository with a README, a manifest.json, and a pull request against the official plugin catalog that lets all HarborClient users install your theme.
What you will build
A marketplace theme is a small plugin package. At minimum it contains:
- A
README.mdthat describes the theme - An exported theme JSON file from the Theme Creator
- A
manifest.jsonthat declares the theme contribution - Optional screenshots hosted in the repository
Once those files are on GitHub, you add the repository to HarborClient’s catalog so the theme can appear in the marketplace.
1. Initialize a Git repository
Create a new directory for the theme and initialize Git. Use a clear repository name such as theme-dark-lord.
mkdir theme-dark-lord cd theme-dark-lord git init
Add a README.md that describes the plugin: what the theme looks like, who authored it, light vs dark mode, and any notes about contrast or intended use. Marketplace listing text often comes from this README and from the summary fields in the manifest, so write it for humans browsing GitHub and the HarborClient marketplace.
2. Design and export the theme
In HarborClient, open Themes → Creator. Set a title and appearance mode (Light, Dark, or High contrast), then tune the color tokens until the live preview matches the look you want. You can start from one of the existing themes.

When you are ready, click Export and save the file into your Git directory—for example as exported.json. That exported JSON is the theme definition HarborClient will load when someone installs your marketplace package.
3. Add a manifest.json
Create a manifest.json at the root of the repository. The important part for themes is the contributes.themes array: each entry needs an id, title, type, and an import path that points at your exported theme file.
Here is an example:
{
"id": "com.acme.themes.dark-lord",
"name": "Dark Lord",
"version": "1.0.0",
"author": "Acme",
"description": "README.md",
"summary": "A dark theme for HarborClient.",
"categories": [
"themes",
"dark"
],
"screenshots": [
"https://raw.githubusercontent.com/YOUR_USER/theme-dark-lord/main/screenshot.png"
],
"homepage": "https://github.com/YOUR_USER/plugin-dark-lord",
"bugs": {
"url": "https://github.com/YOUR_USER/plugin-dark-lord/issues"
},
"engines": {
"harborclient": ">=2.5.0"
},
"permissions": [
"ui"
],
"contributes": {
"themes": [
{
"id": "darklord",
"title": "Dark Lord",
"type": "dark",
"import": "exported.json"
}
]
}
}
Replace the id, name, version, author, summary, screenshots, homepage, and theme contribution fields with your own values. Keep permissions set to ["ui"] for a theme-only plugin, and make sure import matches the filename you exported into the repository.
4. Commit and push to GitHub
Stage the README, exported theme JSON, manifest, and any screenshots, then commit and push:
git add README.md exported.json manifest.json screenshot.png git commit -m "Initial Dark Lord theme package" git branch -M main git remote add origin https://github.com/YOUR_USER/theme-dark-lord.git git push -u origin main
Tag a release version that matches the version in your manifest—for example v1.0.0. The catalog entry will point at that ref.
5. Add your theme to the marketplace catalog
HarborClient discovers marketplace plugins from the official catalog file:
https://github.com/harborclient/harborclient/blob/main/plugins/catalog.json
Fork the harborclient/harborclient repository, then edit plugins/catalog.json. Add an entry under plugins with your repository URL and the version tag you published:
{
"repoUrl": "https://github.com/YOUR_USER/theme-dark-lord",
"ref": "v1.0.0"
}
Create a pull request against main. Include a short description of the theme, confirm that the manifest validates, and link to a screenshot if you have one.
6. Wait for the PR to be accepted
Maintainers review catalog additions for packaging correctness, safe manifests, and marketplace quality. Once the pull request is merged, HarborClient can pick up your theme from the updated catalog. Users will then be able to discover and install it from the Themes marketplace alongside official themes such as Nord, Gruvbox, Dracula, and Solarized.
Checklist before you open the PR
README.mdclearly describes the theme- Exported theme JSON is committed and matches the manifest
importpath manifest.jsonincludescontributes.themeswith a valid id, title, and typepermissionsincludes"ui"- Screenshot URLs resolve on GitHub
- Catalog entry uses the correct
repoUrland versionref
Next steps
If you have not designed the palette yet, start with Design Custom Themes with the HarborClient Theme Creator. When the export looks right, package it as shown above and open a catalog PR. Your harbor, your colors—shared with the community.






Leave a Reply