---
title: Introduction
description: Seamline is a toolkit for catching breaking changes in API schemas and enforcing typed environment-variable contracts in Node.js applications.
url: https://pr-1-b9e16090e83d.thally.app/
---

# Introduction

Seamline is a toolkit for catching breaking changes in API schemas and enforcing typed environment-variable contracts in Node.js applications.

Seamline is a pair of developer tools that guard the boundaries of your application. **Specdiff** detects breaking changes between versions of JSON Schema and OpenAPI documents. **Envlock** turns your environment variables into a typed, validated contract so missing or malformed config is caught before your app starts. Both tools are v0.1.0, MIT-licensed, TypeScript-first, and built for Node.js 22 or later (ESM only).

Each product ships as three packages that share the same architecture:

- **Core library** (`@specdiff/core`, `@envlock/core`) -- the programmatic API with zero runtime dependencies. Import it into your own code for full control.
- **CLI** (`@specdiff/cli`, `@envlock/cli`) -- a command-line interface for local checks and CI pipelines.
- **MCP server** (`@specdiff/mcp`, `@envlock/mcp`) -- a Model Context Protocol server that exposes the same capabilities to AI coding agents over stdio.

### Specdiff

Compares a "before" and "after" JSON Schema or OpenAPI 3.x document and classifies every change as breaking, warning, or info. It ships a 45-rule catalogue, direction-aware severity (request vs. response schemas), local `$ref` resolution with cycle protection, and three output formats (text, Markdown, JSON). Use it in pull-request checks to prevent accidental API breakage.

### Envlock

Declare the environment variables your application needs once with `defineEnv` and typed builders (`env.port()`, `env.url()`, `env.boolean()`, and more). At startup, `loadEnv` validates every variable against that contract and returns a fully typed object -- or throws with every issue listed. The CLI can render `.env.example` files, diff a dotenv file against the contract, and scaffold a starter config.

### Shared properties

- Zero runtime dependencies in every core package
- Node.js 22 or later required
- ESM only (`"type": "module"`)
- TypeScript-first with full type inference
- Deterministic, sorted output for stable diffs and snapshots

### Next steps

- [Quickstart](/quickstart) -- install and run both tools in under five minutes.