An AI skill that helps developers integrate Seam smart lock access code automation into their property management system (PMS).
When loaded into an AI coding assistant (Claude Code, Cursor, etc.), this skill guides the developer through:
- Choosing the right API path — Reservation Automations, Access Grants, or Lower-level API
- Exploring the codebase — finding reservation handlers, routes, and models
- Writing the integration — adding Seam SDK calls directly into existing code
- Setting up webhooks — handling access code lifecycle events
The skill works across TypeScript, JavaScript, Python, Ruby, and PHP codebases.
# Add the marketplace
/plugin marketplace add seamapi/seam-integration-skill
# Install the plugin
/plugin install seam-pms-integration@seamapiThis installs both the skill and the Seam docs MCP server, giving Claude real-time access to Seam API documentation.
# Via skills.sh
npx skills add seamapi/seam-integration-skill
# Or clone directly
git clone https://github.com/seamapi/seam-integration-skill.gitFor non-plugin installs, optionally add the Seam MCP docs server to your tool's MCP config for better results.
Load the skill in your AI coding assistant (via plugin or SKILL.md), then describe your integration needs:
"I'm building a short-term rental PMS in TypeScript with Express. We want to automatically create access codes on smart locks when guests book. We use August and Yale locks."
The skill will explore your codebase, choose the right Seam API path, and write the integration code.
| Path | When to use | Complexity |
|---|---|---|
| Reservation Automations | Push reservation data, Seam handles access codes automatically | Lowest |
| Access Grants | Per-door control, multiple credential types (PIN, mobile key) | Medium |
| Lower-level API | Full manual control over access codes | Highest |
The skill recommends Reservation Automations by default — it covers most PMS use cases with minimal code.
The skill includes a quantitative eval system that tests it against 5 synthetic PMS fixture apps:
| Fixture | Stack | Latest Score |
|---|---|---|
express-ts |
TypeScript + Express | 99 |
flask-py |
Python + Flask | 96 |
nextjs-ts |
Next.js App Router | 94 |
rails-rb |
Ruby on Rails | 96 |
php-laravel |
PHP + Laravel | 96 |
- Layer 1: Structural rubric — checks file targeting, API path selection, integration placement, parameter correctness, lifecycle completeness, webhook setup
- Layer 2: Sandbox validation — builds the modified app in Docker, runs it against the real Seam sandbox API, verifies access codes are created/updated/removed
# Rubric only (fast, no API key needed)
bash evals/run_evals.sh --fixtures express-ts --layers rubric
# Full pipeline with sandbox validation
SEAM_API_KEY=<sandbox_key> bash evals/run_evals.sh --layers both
# Multiple runs for consistency data
SEAM_API_KEY=<sandbox_key> bash evals/run_evals.sh --runs 3Requirements: Docker, Python 3, Claude CLI (claude), Seam sandbox API key (for Layer 2)
- Design spec — eval system architecture
- Implementation plan — build plan for the eval system
- Original design — skill design document
- Seam docs
- Seam Console
- Seam MCP server — docs search for AI assistants