Skip to content

Ecosystem

SNIPER ships a lean core and extends through plugins and domain packs. This page covers the available extensions, how they work together, and the marketplace for discovering community packages.

Monorepo Packages

The SNIPER monorepo (@sniper.ai/monorepo) contains the following packages:

PackageDirectoryDescription
@sniper.ai/corepackages/coreFramework core. Agents, personas, skills, protocols, checklists, templates, hooks, and schemas as raw YAML and Markdown files. No build step.
@sniper.ai/clipackages/cliCLI tool (sniper binary). Scaffolds and manages SNIPER-enabled projects. Built with tsup, uses citty + @clack/prompts.
@sniper.ai/mcp-knowledgepackages/mcp-knowledgeMCP server for domain knowledge indexing and retrieval. Indexes Markdown knowledge files from .sniper/knowledge/ and exposes them to Claude Code agents via search, list, and get tools.
@sniper.ai/plugin-typescriptpackages/plugins/plugin-typescriptTypeScript language plugin. Commands, conventions, review checks, and agent mixins.
@sniper.ai/plugin-pythonpackages/plugins/plugin-pythonPython language plugin. pytest, ruff, mypy commands, PEP 8 conventions, and agent mixins.
@sniper.ai/plugin-gopackages/plugins/plugin-goGo language plugin. go test, golangci-lint, go vet commands, Effective Go conventions, and agent mixins.
@sniper.ai/pack-sales-dialerpackages/pack-sales-dialerSales dialer domain pack. Telephony, TCPA compliance, CRM integration, and AI pipeline knowledge.

The core and CLI are the foundation; everything else is an extension. Language plugins and domain packs are covered in detail below.

Language Plugins

Language plugins add tooling commands, coding conventions, review checks, and agent knowledge mixins specific to a programming language. Install with:

bash
sniper plugin install @sniper.ai/plugin-typescript

Official Plugins

PluginPackageCommandsReview Checks
TypeScript@sniper.ai/plugin-typescriptbuild, test, lint, typecheckno-any, no-ts-ignore, strict-null-checks
Python@sniper.ai/plugin-pythontest, lint, typecheck, formatno-bare-except, type-annotations, no-print
Go@sniper.ai/plugin-gotest, lint, vet, buildno-fmt-println, error-handling, context-first

What a Plugin Provides

Every plugin is defined by a plugin.yaml manifest with five sections:

SectionPurpose
commandsShell commands agents can run (e.g., npx vitest run)
conventionsCoding standards injected into agent context
review_checksAutomated checks the gate reviewer runs during review
agent_mixinsMarkdown files appended to agent personas for domain knowledge
hooksClaude Code hooks that run at PreToolUse and Stop events

For example, when the TypeScript plugin is installed:

  • Agents know to use strict: true in tsconfig.json
  • The code reviewer runs no-any and no-ts-ignore checks
  • A PreToolUse hook runs tsc --noEmit before file writes to catch type errors early
  • Backend and frontend agent personas get TypeScript-specific knowledge injected

Plugin Hooks

Plugins can contribute hooks that merge with the core hook definitions:

5 lines
yaml
hooks:
  PreToolUse:
    - "npx tsc --noEmit --pretty 2>&1 | head -20"
  Stop:
    - "npx tsc --noEmit"

These run alongside SNIPER's built-in self-healing CI hooks. See the Hooks reference for details on hook events.

Domain Packs

Domain packs provide business domain knowledge rather than language tooling. They inject specialized conventions, compliance checks, and expert knowledge into agent personas.

Official Packs

PackPackageDomain
Sales Dialer@sniper.ai/pack-sales-dialerTelephony, TCPA compliance, CRM integration, AI pipelines

What a Domain Pack Provides

Domain packs use the same plugin.yaml format as language plugins. The sales dialer pack, for example:

  • Conventions -- E.164 phone number format, dual-channel recording, TCPA calling hours, DNC list checks, recording consent
  • Review checks -- tcpa-compliance, dnc-check, recording-consent, pci-recording-pause
  • Agent mixins -- Telephony specialist knowledge injected into backend-dev and architect personas

Domain packs typically don't define commands because they focus on knowledge and compliance rather than tooling.

Combining Plugins and Packs

A project can install multiple plugins and packs simultaneously. They compose cleanly:

2 lines
bash
sniper plugin install @sniper.ai/plugin-typescript
sniper plugin install @sniper.ai/pack-sales-dialer

After installation, a TypeScript sales dialer project would have:

  • TypeScript build/test/lint commands
  • TypeScript coding conventions + telephony conventions
  • TypeScript review checks + TCPA compliance checks
  • Backend-dev persona with both TypeScript and telephony knowledge

The Marketplace

The SNIPER marketplace is a registry of community-contributed plugins and domain packs.

Browsing

bash
sniper marketplace search "react"

Installing from Marketplace

bash
sniper marketplace install @community/plugin-rust

Marketplace packages follow the same plugin.yaml format. The CLI validates the manifest before installation.

Creating Extensions

See the Plugin Development guide for a complete walkthrough on creating your own plugins and domain packs.

The key steps:

  1. Create a plugin.yaml manifest
  2. Add commands, conventions, review checks, and/or agent mixins
  3. Optionally add hooks for build-time validation
  4. Publish to the marketplace with sniper marketplace publish

Next Steps