Software Development Kit
A software development kit (SDK) is a packaged set of tools for building applications against a specific platform or service. It typically bundles a client library that wraps the underlying API, type definitions, authentication handling, sample code, and documentation, and it may also include command line tools, emulators, or debuggers. The purpose is to remove repetitive plumbing: rather than constructing HTTP requests, signing them, parsing responses, and writing retry logic, a developer calls a method and receives a typed object. Good SDKs also handle pagination, streaming, rate limit backoff, and error types consistently. OpenAI and Anthropic both publish SDKs for Python and TypeScript covering model calls, streaming responses, and tool use, and Vercel's AI SDK adds a framework layer for building chat interfaces. Cloud providers ship larger kits such as the AWS SDK, while mobile development depends on the iOS and Android SDKs. An SDK is narrower than a framework: it gives you tools to call a service, whereas a framework dictates the structure of your application. The practical pitfall is version drift, since providers ship new capabilities through SDK releases, and a pinned old version quietly lacks features while potentially carrying unpatched dependencies.