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.md that describes the theme
  • An exported theme JSON file from the Theme Creator
  • A manifest.json that 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.md clearly describes the theme
  • Exported theme JSON is committed and matches the manifest import path
  • manifest.json includes contributes.themes with a valid id, title, and type
  • permissions includes "ui"
  • Screenshot URLs resolve on GitHub
  • Catalog entry uses the correct repoUrl and version ref

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

Trending

Discover more from HarborClient Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading