Skip to content

Ecosystem and Tools

Shoehorn is more than the portal itself. There are companion tools for CLI access, infrastructure-as-code, addon development, and Kubernetes integration. All are open source under the shoehorn-dev GitHub organization.

ToolRepositoryWhat it does
Shoehorn Platformshoehorn-dev/shoehornThe portal itself — API, frontend, microservices
Helm Chartsshoehorn-dev/helm-chartsOfficial Helm charts for deploying Shoehorn, the K8s agent, and the network observer
K8s Agentshoehorn-dev/shoehorn-k8s-agentKubernetes cluster agent — discovers workloads, collects metrics, pushes to Shoehorn
CLIshoehorn-dev/shoehorn-cliCommand-line interface for browsing catalog, running Forge workflows, managing auth
Terraform Providershoehorn-dev/terraform-provider-shoehornManage Shoehorn resources as code (entities, teams, feature flags, API keys)
Addon SDKshoehorn-dev/sdkTypeScript SDK for building Shoehorn addons
Official Addonsshoehorn-dev/addonsOfficial addon collection (e.g., jira-sync)

Deploy Shoehorn and the K8s agent to Kubernetes.

Registry: oci://ghcr.io/shoehorn-dev/helm-charts/

Install the platform:

Terminal window
helm install shoehorn oci://ghcr.io/shoehorn-dev/helm-charts/shoehorn \
--values values.yaml

Install the K8s agent in each cluster:

Terminal window
helm install shoehorn-agent oci://ghcr.io/shoehorn-dev/helm-charts/shoehorn-k8s-agent \
--set shoehorn.apiURL=https://shoehorn.example.com \
--set shoehorn.apiToken=sha_your_token_here \
--set shoehorn.cluster.id=prod-us-east-1 \
--set shoehorn.cluster.name="Production US East 1"

See the shoehorn-dev/helm-charts repository for values references and full configuration. See K8s Agent for what the agent does and operational considerations.


Browse the catalog, run Forge workflows, and manage authentication from the terminal.

Install with Homebrew:

Terminal window
brew tap shoehorn-dev/tap
brew install shoehorn

Install with Go:

Terminal window
go install github.com/shoehorn-dev/shoehorn-cli/cmd/shoehorn@latest

Install with Mise:

Add to your mise.toml:

[tools]
"github:shoehorn-dev/shoehorn-cli" = "latest"

Or download from GitHub Releases.

Authenticate and browse:

Terminal window
shoehorn auth login
shoehorn catalog list
shoehorn teams list
shoehorn forge run scaffold-go-service --name my-app --owner my-org
# Governance actions
shoehorn governance actions list [--status X] [--priority X]
shoehorn governance actions get <id>
shoehorn governance actions create --entity-id X --title X --priority X --source-type X
shoehorn governance actions update <id> --status X
shoehorn governance actions delete <id>
shoehorn governance dashboard
# GitOps resources
shoehorn get gitops [--cluster-id X] [--tool argocd|fluxcd]
shoehorn get gitops <id>

See CLI Getting Started for full usage.


Manage Shoehorn resources as infrastructure-as-code.

Terraform Registry: shoehorn-dev/shoehorn

terraform {
required_providers {
shoehorn = {
source = "shoehorn-dev/shoehorn"
version = "~> 0.1"
}
}
}
provider "shoehorn" {
host = "https://shoehorn.example.com"
api_key = var.shoehorn_api_key
}
resource "shoehorn_entity" "payment_api" {
name = "payment-api"
type = "service"
description = "Handles payment processing"
owner = "payments-team"
lifecycle = "production"
tags = ["critical", "pci"]
}
resource "shoehorn_team" "payments" {
name = "payments-team"
description = "Payments and billing team"
}
resource "shoehorn_k8s_agent" "prod_cluster" {
cluster_id = "prod-us-east-1"
cluster_name = "prod-us-east-1"
}

Available resources:

  • shoehorn_entity — catalog entities
  • shoehorn_team — teams with members
  • shoehorn_feature_flag — feature flags
  • shoehorn_api_key — API keys
  • shoehorn_user_role — user RBAC assignments
  • shoehorn_integration — third-party integrations
  • shoehorn_k8s_agent — Kubernetes cluster agents
  • shoehorn_governance_action — governance action items
  • shoehorn_forge_mold — Forge workflow templates
  • shoehorn_forge_approval_policy — Forge approval policies
  • shoehorn_marketplace_installation — marketplace addon installations

Available data sources:

  • shoehorn_governance_actions — governance actions (filtered)
  • shoehorn_forge_molds — Forge mold templates
  • shoehorn_marketplace_items — marketplace catalog
  • shoehorn_gitops_resources — GitOps resources from K8s agents

Note: shoehorn_tenant_settings was updated with hidden_pages and forge settings.

See Terraform Provider for provider configuration, supported resources, and API key scope guidance.


Build custom addons that extend Shoehorn with widgets, API routes, and webhook handlers.

Github: shoehorn-sdk

Scaffold a new addon:

Terminal window
npx @shoehorn-dev/addon-sdk init my-addon
cd my-addon
npm install
npm run build

Publish to your Shoehorn instance:

Terminal window
shoehorn addon publish --dir .

Addons have three tiers:

  • declarative — configuration-only, no code
  • scripted — JavaScript/TypeScript with SDK helpers
  • full — complete control over rendering and routing

The SDK provides typed access to platform services via the ctx global in the QuickJS sandbox:

CapabilityDescription
ctx.log, ctx.config, ctx.secretsLogging, configuration, encrypted secrets
ctx.httpSynchronous HTTP client (URL allowlisted)
ctx.entitiesCatalog entity CRUD
ctx.cacheValkey/Redis ephemeral cache
ctx.eventsRedpanda/Kafka event pub/sub
ctx.dbPostgreSQL read-only queries
ctx.searchMeilisearch full-text search
ctx.kvPersistent key-value store
ctx.notificationsPlatform notification sender

Frontend addons get a CSS design system (sh-* classes) matching the host app, plus XSS-safe HTML builders and a Svelte 5 component bridge.

The jira-sync addon is a production-ready example of a scripted addon.

See Marketplace and Addons for the full permissions reference.

Required API key scopes for publishing: marketplace:admin, admin:write.