Lint email sequences and drip campaigns for deliverability: SPF/DKIM/DMARC, link health, unsubscribe presence, and CAN-SPAM/GDPR compliance.
Part of the Cognis Neural Suite.
pip install cognis-dripcheck
dripcheck scan . # → prioritized findings in seconds
-
Install the CLI:
pip install dripcheck
-
Lint an email sequence described in a JSON file (or
-to read from stdin):dripcheck lint sequence.json
-
Pipe a sequence in from another step:
cat sequence.json | dripcheck lint - -
Read the output. Add
--format jsonfor machine-readable findings:dripcheck lint sequence.json --format json > drip.json -
Wire it into CI — treat warnings as failures so deliverability regressions block release:
dripcheck lint sequence.json --strict || exit 1
- Why dripcheck? · Features · Quick start · Example · Architecture · AI stack · How it compares · Integrations · Install anywhere · Related · Contributing
A pre-send CI gate — break the build if a campaign is missing an unsubscribe link or trips a spam trigger, before it ever hits a prospect's inbox.
dripcheck is single-purpose, scriptable, and self-hostable: point it at a target, get prioritized results in the format your workflow already speaks (table · JSON · SARIF), gate CI on it, and let agents drive it over MCP.
-
✅ Lint Email
-
✅ Lint Sequence
-
✅ Load Sequence
-
✅ Loads Sequence
-
✅ Runs on Linux/macOS/Windows · Docker · devcontainer
-
✅ Ports in Python, JavaScript, Go, and Rust (
ports/)
pip install cognis-dripcheck
dripcheck --version
dripcheck scan . # scan current project
dripcheck scan . --format json # machine-readable
dripcheck scan . --fail-on high # CI gate (non-zero exit)
$ dripcheck scan .
[HIGH ] DRI-001 example finding (./src/app.py)
[MEDIUM ] DRI-002 another signal (./config.yaml)
2 findings · risk score 5 · 38ms
flowchart LR
IN[target / export] --> P[dripcheck<br/>collect + correlate]
P --> OUT[ranked findings]
dripcheck is interoperable with every popular way of using AI:
-
MCP server —
dripcheck mcp(Claude Desktop, Cursor, Cognis.Studio, uncensored-fleet) -
OpenAI-compatible / JSON — pipe
dripcheck scan . --format jsoninto any agent or LLM -
LangChain · CrewAI · AutoGen · LlamaIndex — wrap the CLI/JSON as a tool in one line
-
CI / scripts — exit codes + SARIF for non-AI pipelines
| | Cognis dripcheck | mail-tester.com + textlint, echoing GlockApps |
|---|:---:|:---:|
| Self-hostable, no account | ✅ | varies |
| Single command, zero config | ✅ |
| JSON + SARIF for CI | ✅ | varies |
| MCP-native (AI agents) | ✅ | ❌ |
| Polyglot ports (JS/Go/Rust) | ✅ | ❌ |
| Open license | ✅ COCL | varies |
Built in the spirit of mail-tester.com + textlint, echoing GlockApps, re-framed the Cognis way. Missing a credit? Open a PR.
Pipes into your stack: SARIF for code-scanning, JSON for anything, an MCP server (dripcheck mcp) for AI agents, and a webhook forwarder for SIEM/Slack/Jira. See docs/INTEGRATIONS.md.
pip install "git+https://github.com/cognis-digital/dripcheck.git" # pip (works today)
pipx install "git+https://github.com/cognis-digital/dripcheck.git" # isolated CLI
uv tool install "git+https://github.com/cognis-digital/dripcheck.git" # uv
pip install cognis-dripcheck # PyPI (when published)
docker run --rm ghcr.io/cognis-digital/dripcheck:latest --help # Docker
brew install cognis-digital/tap/dripcheck # Homebrew tap
curl -fsSL https://raw.githubusercontent.com/cognis-digital/dripcheck/main/install.sh | sh
| Linux | macOS | Windows | Docker | Cloud |
|---|---|---|---|---|
| scripts/setup-linux.sh | scripts/setup-macos.sh | scripts/setup-windows.ps1 | docker run ghcr.io/cognis-digital/dripcheck | DEPLOY.md (AWS/Azure/GCP/k8s) |
-
warmline— Score and rank inbound/outbound leads from a YAML rulebook, emitting a ranked queue as JSON/CSV for your SDRs and CI gates. -
coldforge— Render personalized cold-outreach sequences from Markdown templates + a contacts CSV, with spam-score linting and per-send dry-run preview. -
pactgen— Generate branded sales proposals and SOWs from a YAML scope file + pricing table into PDF/HTML, with a deterministic line-item math check. -
crmsync— Bidirectional, idempotent sync of contacts/deals between a local SQLite source-of-truth and CRM APIs (HubSpot/Pipedrive/Salesforce) via one config. -
dealflow— Model your sales pipeline as a YAML state machine and compute conversion rates, stage velocity, and weighted forecast straight from CRM exports. -
introbot— Find warm-intro paths through your team's combined network graph and draft double-opt-in intro requests from a single contacts manifest.
Explore the suite → 🗂️ all 170+ tools · ⭐ awesome-cognis · 🔗 cognis-sources · 🤖 uncensored-fleet · 🧠 engram
PRs, new rules, and demo scenarios are welcome under the collaboration-pull model — see CONTRIBUTING.md and SECURITY.md.
{} composes with the 300+ tool Cognis suite — JSON in/out and a shared
OpenAI-compatible /v1 backbone. See INTEROP.md for the
suite map, composition patterns, and reference stacks.
Source-available under the Cognis Open Collaboration License (COCL) v1.0 — free for personal, internal-evaluation, research, and educational use; commercial / production use requires a license (licensing@cognis.digital). See LICENSE.