Govern your AI skill supply chain

Proxy every skill install through policy, publish your internal conventions, and audit every fetch.

Works with the coding agents your team already uses

  • Claude Code
  • Cursor
  • Codex
  • Windsurf
  • Cline
  • Continue
  • Aider
  • Roo Code
  • Zed
  • Bolt

The governance vacuum

84%

Developer adoption

of developers use or plan to use AI coding agents in their daily workflow.

51%

AI-assisted code

of GitHub's committed code is AI-assisted — and the share keeps climbing each quarter.

0

Skill visibility

inventory of the skills your agents are reading today. No SBOM, no audit trail, no review.

Problem

Skills are a new dependency type.

Nobody is governing them.

Engineers copy .cursorrules files from gists, install MCP servers from random repos, and pull skills from public registries with no review. Platform teams have no inventory, security has no scanning, and compliance has no audit trail.

Supply chain risk

A malicious skill can inject prompt instructions that exfiltrate secrets, backdoor code, or bypass security review. No SBOM, no signing, no provenance.

Shadow AI context

Security knows every package via Snyk or Dependabot. They have no idea which skills shaped the code your agents produced. A growing blind spot in SOC2 and ISO audits.

Fragmented knowledge

Every platform team writes their "how we do things" docs for AI agents. Scattered across repos, Confluence, and individual .claude directories — unversioned, undistributed, unmeasured.

Skill drift

Skills reference specific library versions, internal endpoints, and API shapes. Without version management, they rot silently — and your agents generate confident, deprecated code.

No visibility, no optimization

Which skills are most used? Which teams adopt them fastest? Do they correlate with faster cycle times? Which should you deprecate? Platform leaders can't answer any of it.

How it works

One gateway between your engineers and the skill ecosystem.

Every install flows through Cavalry. Policies evaluate, caches fill, audit rows append. Upstream sources — Tessl, GitHub, HTTP — are proxied; internal skills live inside.

flow · gateway.proxy
policy · cache · audit
clients
CCClaude Code
CuCursor
CoCodex
$cavalry CLI
Cavalry
Gateway
  • authn · tokens
  • policy eval
  • cache
  • audit emit
registries
Tessl
GitHub
HTTP
Internal

01 · Policy enforcement

Rules that ship to production,
not PowerPoint.

Allowlists, blocklists, version pins, and approval gates are all first-class. Policies evaluate at the gateway before an install completes; errors surface to the CLI with the policy name and rationale.

  • Pure-function engine · 95% unit test coverage
  • Scope at org or workspace level
  • Preview a rule against sample installs before rollout
policies.edit
acme / platform
Policy
approval: security
enabled
Type
require_approval
Matching patterns
tessl:*
github:*/security-*
http:*

02 · Immutable audit

Every governed change is
an append-only row.

Ship SIEM-ready webhooks, export CSV, correlate commits to installs. Retention defaults configurable per org; deletion is not a supported verb.

  • Signed webhook delivery
  • Splunk + Datadog adapters
  • Actor identity preserved (user · token · system)
log.cavalry.audit
7 events
  • 2s
    skill.install_blocked
    skill_ref/tessl:badactor/
    alice@acme.com
  • 14s
    skill.installed
    skill_version/kv_c2b6e469
    <token:cav_jpuO>
  • 3m
    approval.decided
    approval/ap_9fd4a
    sec@acme.com
  • 11m
    skill.published
    skill_version/kv_48ab3e
    platform@acme.com
  • 42m
    policy.updated
    policy/blocklist_t
    sec@acme.com
  • 1h
    token.created
    api_token/ci_release
    platform@acme.com
  • 3h
    member.joined
    user/authored_dev
    newhire@acme.com
— end of log —

03 · Internal registry

Publish your org's skills once.
Reach every agent.

Platform teams write the skill that teaches agents to use your internal Kafka wrapper. Cavalry serves it to every developer's Claude Code, Cursor, and Codex through the same gateway endpoint.

  • Content-addressed artifacts (sha256)
  • Immutable versions, semver-validated
  • Usage analytics per skill + per team
skills.detail
Internal · Private
acme-platform/kafka-wrapper

Teaches agents to use Acme's internal Kafka wrapper SDK. Redirects imports and adds retry conventions.

private
Installs · 30d
412
Versions
4
Latest
v1.2.0
v1.2.0LATEST2 days ago
v1.1.33 weeks ago
v1.1.21 month ago
v1.0.02 months ago

04 · CLI · proxy

A single command for
every skill boundary.

cavalry publish, install, login, whoami. Your engineers never pull from a public registry directly — every fetch goes through your gateway, and every install record lands in Postgres with actor and project metadata.

  • Tessl · GitHub · HTTP upstream adapters
  • Streaming sha256 verification on install
  • Ecosystem-compatible (Claude Code, Cursor, Codex, Aider, Windsurf)
~ engineer@acme
zsh
$ cavalry install tessl:stripe/stripe
resolving via allowlist · acme-platform
✗ blocked by policy "require_approval · security"
approval_id: ap_9fd4a · sent to #skill-governance
$ cavalry install acme-platform/kafka-wrapper
fetching acme-platform/kafka-wrapper@1.2.0 → ./.cavalry/skills/…
✓ Installed acme-platform/kafka-wrapper@1.2.0 (23.4 KB)
$ cavalry publish ./my-skill
packing ./my-skill · 0.5 KB
✓ Published acme/my-skill@1.0.0 · c2b6e469…
$  

05 · Approvals

Human-in-the-loop,
async.

When a policy fires, the install stalls with a structured error and an approval ticket is created. Slack delivers it; admins approve or deny. Your developers keep working; the install resolves on retry.

  • Slack OAuth · Approve/deny from the thread
  • Auto-expire after configurable window
  • Full audit of requester, approver, reason, timestamp
approvals.inbox
2 pending
  • A
    alice@acme.comwants to install
    tessl:stripe/stripe@^12.0.0
    Policy: require_approval
  • B
    bob@acme.comwants to install
    github:acme/perf-rules@1.3.0
    Policy: require_approval
  • C
    charlie@acme.comwants to install
    tessl:openai/openai@^4.0.0
    Approved by sec@acme.com
    approved

Built for four roles

Governance that lands at every altitude.

Platform engineering

Deploy, operate, integrate.

docker-compose or Helm. OIDC against Okta or Entra. Terraform provider for policy-as-code (M+). Good docs, clean APIs, no "another SaaS console" energy.

CISO · AppSec

Close the governance gap.

Audit every install. SIEM deliveries in 5s. SOC2-ready retention defaults. Pair with Snyk, Wiz, or equivalent — Cavalry closes the context-level blind spot.

Software engineers

Never notice Cavalry exists.

Run cursor or claude as always. Skills that pass policy install instantly. Skills that need approval surface a structured error with an actionable link.

Internal library teams

Write skills your agents actually use.

Publish with cavalry publish. Watch adoption curves per team. Iterate weekly. Ship your internal SDK conventions to every IDE your company uses.

Comparison

Artifactory for AI agent context.

Public registries will consolidate around Tessl and platform-native offerings. The governance layer — the thing that sits inside your walls — is a separate, uncaptured category.

CapabilityCavalryTesslSpec KitAWS KiroArtifactory
Self-hostable
Policy engine (allow / block / pin / approve)partial
Immutable audit logpartial
Understands skills as a typepartialpartial
Proxies public registries
SIEM + webhook integrationspartial
OIDC · SAML · SCIMpartialpartial

Self-host

Open-core.

Inside your walls.

Cavalry is licensed under the Business Source License 1.1, with a three-year conversion to Apache 2.0. Self-host freely; a hosted competitive service is the only restriction. Enterprise features land in the commercial tier.

~ quickstart
# 1. Bring up Postgres + MinIO
docker compose up -d

# 2. Apply migrations
pnpm db:migrate

# 3. Launch web + gateway
pnpm dev

# 4. Mint a token, point your CLI at it
cavalry login --url http://localhost:3001 --token cav_…

# 5. Publish an internal skill
cavalry publish ./path/to/your/skill
License
BSL 1.1 → Apache 2.0
Footprint
Postgres + S3
Deploy
docker-compose · Helm

Integrates with your agent stack

Drop Cavalry in without asking developers to change their tools. Every major coding agent and upstream registry speaks our gateway.

Claude Code
Cursor
Codex
Aider
Windsurf
Tessl
GitHub
MCP

Ready when you are

Start governing your
agent context today.

Clone the repo, bring up docker-compose, and run your first policy eval in under five minutes.