Adding Tools to the Marketplace
The klim marketplace is open source — anyone can add a tool by submitting a PR.
Tool Definition Format
Section titled “Tool Definition Format”Each tool is defined in its own YAML file at marketplace/tools/<name>.yaml:
name: mytooldisplay_name: My Tooldescription: A brief description of what the tool doescategory: CLItags: [automation, devops]binary_names: [mytool]packages: brew: "mytool" winget: "Publisher.MyTool" scoop: "mytool" apt: "mytool" snap: "mytool" choco: "mytool" npm: "mytool"# Optional: enables GitHub metadata enrichment (stars, license, etc.)github: owner/repoRequired Fields
Section titled “Required Fields”| Field | Description |
|---|---|
name | Unique identifier (lowercase, no spaces) |
display_name | Human-readable name |
category | One of the predefined categories |
binary_names | List of executable names to detect on PATH |
Optional Fields
Section titled “Optional Fields”| Field | Description |
|---|---|
description | Short description |
tags | List of tags for filtering |
packages | Package IDs per package manager |
github | GitHub owner/repo for metadata enrichment |
Package Manager IDs
Section titled “Package Manager IDs”Only include package IDs for managers where the tool is actually available:
| Manager | Format | Example |
|---|---|---|
brew | Formula or cask name | "kubectl" |
winget | Publisher.Package | "Microsoft.AzureCLI" |
scoop | Bucket/package or just package | "kubectl" |
apt | Package name | "kubectl" |
snap | Snap name | "kubectl" |
choco | Package name | "kubernetes-cli" |
npm | npm package name | "typescript" |
Adding a Tool
Section titled “Adding a Tool”-
Create the YAML file:
Terminal window # In the repository roottouch marketplace/tools/mytool.yaml -
Fill in the tool definition using the format above.
-
Validate your changes:
Terminal window make marketplace-validate -
Submit a PR to the klim repository.
Categories
Section titled “Categories”Available categories include:
- CLI — General command-line tools
- Cloud — Cloud provider CLIs (AWS, Azure, GCP)
- Containers — Docker, Podman, container tools
- Database — Database clients and tools
- IaC — Infrastructure as Code (Terraform, Pulumi)
- Kubernetes — K8s ecosystem tools
- Languages — Programming language runtimes
- Monitoring — Observability and monitoring
- Networking — Network tools
- Security — Security scanners and tools
- Version Control — Git and related tools
Validation
Section titled “Validation”CI automatically validates every PR that touches marketplace/:
- Schema validation — all required fields present and correct types
- Uniqueness — no duplicate tool names or binary names
- Cross-references — pack references point to existing tools
GitHub Enrichment
Section titled “GitHub Enrichment”When you set the github field, the CI assembly workflow automatically fetches:
- Star count
- Repository description
- Homepage URL
- License
- Topics
- Last push date
This metadata is included in the published marketplace.yaml. Never set github_info manually — it’s generated at build time.