
I’ve been living in Cursor for the past couple of months. It’s been a while since I was writing code daily, but AI IDEs pulled me back in. Staying in flow, iterating quickly, and thinking at a higher level reminded me how much I enjoy building.
When you use an AI IDE heavily, you start to notice a pattern. The model is very good at generating plausible implementations, but it has no durable understanding of domain constraints. Each prompt is treated as a fresh problem, even when the underlying system has well-defined rules, invariants, and preferred patterns.
Notifications are a good example of this. They are shaped by compliance requirements, delivery semantics, channel-specific limits, and user experience tradeoffs. Those constraints do not change often, but they are rarely obvious from a single doc page or code snippet.
Agent Skills address this by giving the model stable, opinionated context. Instead of rediscovering rules on every prompt, the AI can reason from a shared baseline. The result is guidance that is not just syntactically correct, but aligned with production reality.
That is the gap Courier Skills is designed to fill.
Agent Skills are markdown-based knowledge files that give AI IDEs durable domain context.
They provide passive guidance. When relevant, the AI reads them and applies that knowledge while generating code or architectural suggestions. Skills are well suited for encoding best practices, constraints, invariants, and recommended patterns that do not change frequently.
This is different from MCP, or Model Context Protocol.
MCP gives AI assistants active capabilities such as running queries, calling APIs, or fetching live data from external systems. It is powerful, but it requires additional infrastructure and ongoing maintenance.
The distinction is simple:
They complement each other well. Agent Skills establish the mental model. MCP enables action based on that model.
In practice, this changes how your AI IDE behaves. When you ask it to add a channel, design a notification flow, or extend an existing system, it no longer starts from a blank slate. It already understands the constraints that shape those decisions, which means less back and forth, fewer almost-right solutions, and more confidence in what you ship.
Courier Skills is a curated, open-source collection of Agent Skills for building production-grade notifications.
We built it by distilling the domain knowledge our team uses every day. This includes how different channels behave, where teams tend to run into issues, and which patterns consistently hold up in production. Instead of spreading that context across documentation, examples, and internal knowledge, we captured it in a form AI IDEs can apply directly.
The goal is not to teach your AI how to call an API. It is to teach it how to reason about notifications as a system.
Courier Skills encodes the domain knowledge required to build production-grade notifications across common channels and use cases.
Channels
Email, SMS, Push notifications, In-app Inbox, Slack, Microsoft Teams, and WhatsApp.
Patterns and guidance
Authentication and security notifications, order and billing updates, account alerts, onboarding and engagement flows, multi-channel routing, user preferences, compliance, reliability patterns, batching, and rate limits.
This is the knowledge teams usually accumulate over time. Courier Skills makes it available upfront.
Courier Skills works with Cursor, Claude Code, and other AI IDEs that support Agent Skills.
Cursor (global):
git clone https://github.com/trycourier/courier-skills.git ~/.cursor/skills/courier-skills
Cursor (project-specific):
git clone https://github.com/trycourier/courier-skills.git .cursor/skills/courier-skills
Claude Code:
git clone https://github.com/trycourier/courier-skills.git ~/.claude/skills/courier-skills
Once installed, your AI assistant can reference Courier Skills automatically when working on notification-related tasks.
We built Courier Skills for ourselves first. It led to fewer corrections, fewer surprises, and more predictable outcomes when building notification flows in AI IDEs.
If you are using an AI IDE today, install the skills and try your next notification task with them in place. Pay attention to how the model reasons, not just what it outputs.
The project is open source, and contributions are welcome.
Explore the code on GitHub:
github.com/trycourier/courier-skills
Happy building.

How to send messages and not piss off your customers
Every notification looks reasonable in isolation. Your customers don't experience them one at a time, they experience all of them before lunch. Here's why sending less beats sending more.

How Apple's on-device AI works, and what it changes for your users
Apple's 2026 on-device models (AFM 3) are good enough to read, rank, and summarize everything that lands on your phone, locally and for free. Here's how they actually work, in plain terms, and how a model that reads every message before your users do changes what you should send.

Apple Intelligence finally got smart. Here's how it changes the notifications your users see.
Apple Intelligence's on-device models got dramatically better in iOS 27, and they now summarize, rank, and filter notifications before your users ever see them. There's no API to control that, so the words you send are the only lever you have. Here's how notification summaries work and how to write for them.
© 2026 Courier. All rights reserved.