Skip to content
MrJev

swift-typesafe

Unofficial Swift SDK following the Python SDK's API, for Apple platforms and Linux.

View on GitHub →

Checked, not fully reviewed

A Swift port of TypeSafe's Python SDK with macros for typed question sets. Checked, not fully reviewed: it runs on Linux, but option order is lost.

Good for

  • Swift apps that want answers as their own types: an enum for a choice, a Double for a noul
  • Anyone who wants an SDK that tracks the official one: the upstream commit it ports is recorded

Watch out for

  • Choice options are sent in a different order on every run, and Jev's answer depends on order
  • Its Package.swift requires Apple platform version 26; Linux is supported through a trait

Tested Oct 4, 2026 at 68f954b91365 · Swift 6.4 in Docker on Linux (its AsyncHTTPClient backend); its 66 tests, and the bundled example driven against a stand-in

Checked, not fully reviewed. It needs Swift 6.4, and the package supports Linux through its AsyncHTTPClient trait, so we built and ran it there rather than only reading it. No Jev calls.

It is a port of TypeSafe’s Python SDK 0.7.2, which it vendors and pins; UPSTREAM.md records the exact Python and JS commits it was checked against. The Swift side is the @QuestionSet macro: a struct of @Choice, @Noul and @Score properties becomes a request whose answers come back as those types, and a result builder does the same ad hoc. Its README says retries follow upstream — 408, 429 and 5xx, honouring Retry-After; we did not exercise them. All 66 tests pass on Linux once python3 is installed for the HTTP tests’ helper server; without it, five fail, which was our image and not the package.

Against a stand-in the example decoded every answer and read /v1/models in TypeSafe’s shape. An answer naming a choice outside the enum is rejected with Invalid response data at 'answers.category.choice' rather than decoded into something wrong.

The finding is order. Choice criteria are a Swift Dictionary throughout the public API, so options go out unordered and reshuffle per process: five runs of the example sent its billing, technical, other enum in two different orders, neither of them the declared one. Jev’s answer can change with option order, and the Python SDK this ports keeps the order you wrote. We reported it. MIT, 16 stars.

See how it compares with other tools in Best Jev tools, tested hands-on.

Review updated Oct 4, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.

More in Community SDKs

laya-php

★ 110

marcreichel/laya-php

Laravel-ready PHP client for Laya, the open System One model, so a typed decision is a PHP enum rather than a parsed sentence. Self-hosted, no Jev key.

PHPReviewed

spring-ai-community/spring-ai-typesafe

Java client for the System One API on Spring RestClient, plus Spring AI integrations that use it as a judge, a guardrail, a RAG post-processor and a tool index.

JavaReviewed

obie/ruby_decision_model

Ruby gem with one client for decision models behind several providers: TypeSafe's Jev, OpenRouter (the default), OpenAI, Cloudflare Clef, Perplexity and any /v1/systemone server.

Ruby

Get new Jev projects every week

New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.

Powered by Buttondown. See our privacy policy.