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:
| Package | Directory | Description |
|---|---|---|
@sniper.ai/core | packages/core | Framework core. Agents, personas, skills, protocols, checklists, templates, hooks, and schemas as raw YAML and Markdown files. No build step. |
@sniper.ai/cli | packages/cli | CLI tool (sniper binary). Scaffolds and manages SNIPER-enabled projects. Built with tsup, uses citty + @clack/prompts. |
@sniper.ai/mcp-knowledge | packages/mcp-knowledge | MCP 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-typescript | packages/plugins/plugin-typescript | TypeScript language plugin. Commands, conventions, review checks, and agent mixins. |
@sniper.ai/plugin-python | packages/plugins/plugin-python | Python language plugin. pytest, ruff, mypy commands, PEP 8 conventions, and agent mixins. |
@sniper.ai/plugin-go | packages/plugins/plugin-go | Go language plugin. go test, golangci-lint, go vet commands, Effective Go conventions, and agent mixins. |
@sniper.ai/pack-sales-dialer | packages/pack-sales-dialer | Sales 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:
sniper plugin install @sniper.ai/plugin-typescriptOfficial Plugins
| Plugin | Package | Commands | Review Checks |
|---|---|---|---|
| TypeScript | @sniper.ai/plugin-typescript | build, test, lint, typecheck | no-any, no-ts-ignore, strict-null-checks |
| Python | @sniper.ai/plugin-python | test, lint, typecheck, format | no-bare-except, type-annotations, no-print |
| Go | @sniper.ai/plugin-go | test, lint, vet, build | no-fmt-println, error-handling, context-first |
What a Plugin Provides
Every plugin is defined by a plugin.yaml manifest with five sections:
| Section | Purpose |
|---|---|
commands | Shell commands agents can run (e.g., npx vitest run) |
conventions | Coding standards injected into agent context |
review_checks | Automated checks the gate reviewer runs during review |
agent_mixins | Markdown files appended to agent personas for domain knowledge |
hooks | Claude Code hooks that run at PreToolUse and Stop events |
For example, when the TypeScript plugin is installed:
- Agents know to use
strict: trueintsconfig.json - The code reviewer runs
no-anyandno-ts-ignorechecks - A
PreToolUsehook runstsc --noEmitbefore 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:
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
| Pack | Package | Domain |
|---|---|---|
| Sales Dialer | @sniper.ai/pack-sales-dialer | Telephony, 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:
sniper plugin install @sniper.ai/plugin-typescript
sniper plugin install @sniper.ai/pack-sales-dialerAfter 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
sniper marketplace search "react"Installing from Marketplace
sniper marketplace install @community/plugin-rustMarketplace 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:
- Create a
plugin.yamlmanifest - Add commands, conventions, review checks, and/or agent mixins
- Optionally add hooks for build-time validation
- Publish to the marketplace with
sniper marketplace publish
Next Steps
- Plugin Development -- build your own plugin or domain pack
- Configuration -- configure installed plugins in
.sniper/config.yaml - Custom Protocols -- create protocols that leverage plugin commands
