Monorepo for the Primitive SDKs.
Primitive is an inbound and outbound email platform. The SDKs are centered on a small default workflow:
- receive an inbound email
- inspect a normalized email object
- send, reply, or forward synchronously
| SDK | Install target | README |
|---|---|---|
| Node.js | npm install @primitivedotdev/sdk |
sdk-node/README.md |
| Python | pip install primitivedotdev |
sdk-python/README.md |
| Go | go get github.com/primitivedotdev/sdks/sdk-go@latest |
sdk-go/README.md |
Across the SDKs, the default story is:
- receive inbound mail with
receive(...) - create an outbound client with
client(...) - send new mail with
send(...) - continue a thread with
reply(...) - forward a message with
forward(...)
The Node.js end-state looks like this:
import primitive from "@primitivedotdev/sdk";
const client = primitive.client({
apiKey: process.env.PRIMITIVE_API_KEY!,
});
export async function POST(req: Request) {
const email = await primitive.receive(req, {
secret: process.env.PRIMITIVE_WEBHOOK_SECRET!,
});
await client.reply(email, "Thank you for your email.");
return Response.json({ ok: true });
}The low-level and generated APIs still exist for advanced use cases:
- webhook verification/parsing helpers
- generated HTTP API packages
- OpenAPI exports
- contract tooling
- raw MIME parsing helpers
- CLI
The SDK refresh keeps those escape hatches available, but the primary docs story focuses on the inbound/outbound automation flow above.
sdks/
.github/workflows/
openapi/
json-schema/
sdk-go/
sdk-node/
sdk-python/
test-fixtures/
Use the root Makefile as the main task interface:
make node-generate python-generate go-generate
make check
make build
make shared-checkThe Makefile wraps each SDK's native commands. You can still run them directly
from each SDK directory when needed:
cd sdk-node && pnpm typecheck && pnpm test
cd sdk-python && uv sync --dev && uv run pytest && uv run ruff check . && uv run basedpyright
cd sdk-go && go test ./... && go test -run TestSharedCompatibilityFixtures ./...docs/architecture.mdgives the repository architecture and package layoutdocs/schema-generation.mddocuments schema/codegen flowdocs/repo-model.mddocuments the monorepo task modelRELEASE.mddocuments the release process