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 ​