Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.strait.dev/llms.txt

Use this file to discover all available pages before exploring further.

Strait provides official SDKs for TypeScript, Python, Go, Ruby, and Rust. All five SDKs share the same feature set, configuration model, and API coverage. The Python, Go, Ruby, Rust, and MCP SDKs have moved to dedicated repositories. The TypeScript SDK remains in this monorepo.

Repositories

SDKRepositoryInstall
TypeScriptstrait-dev/strait-tsnpm install @strait/ts
Pythonstrait-dev/strait-pythonpip install strait-python
Gostrait-dev/strait-gogo get github.com/strait-dev/strait-go
Rubystrait-dev/strait-rubygem install strait
Ruststrait-dev/strait-rustcargo add strait
MCPstrait-dev/mcpSee repository README

Feature Parity

All five SDKs implement the same capabilities:
FeatureTypeScriptPythonGoRubyRust
API operations (186 endpoints)client.jobs.list()client.jobs.list()jobs.List(ctx)jobs.listjobs.list().await
Config from strait.jsoncreateClientFromConfigFile()Client.from_file()NewClientFromFile()Client.from_fileClient::from_file()
Config from env varscreateClientFromEnv()Client.from_env()NewClientFromEnv()Client.from_envClient::from_env()
Authoring DSLdefineJob() / defineWorkflow()define_job() / define_workflow()DefineJob() / DefineWorkflow()define_job / define_workflowdefine_job() / define_workflow()
Composition helperswithRetry(), waitForRun(), paginate()with_retry(), wait_for_run(), paginate()WithRetry(), WaitForRun(), Paginate()with_retry, wait_for_run, paginatewith_retry(), wait_for_run(), paginate()
FSM state machinesXState v5 actorstransition_run()CanTransitionRun()can_transition_run?can_transition_run()
DAG validationKahn’s algorithmKahn’s algorithmKahn’s algorithmKahn’s algorithmKahn’s algorithm
Middleware hooksonRequest / onResponse / onErroron_request / on_response / on_errorOnRequest / OnResponse / OnErroron_request / on_response / on_erroron_request / on_response / on_error
Typed errors10 error classes10 exception types10 error types10 error classes10 error variants
Custom HTTP clientCustom fetchhttpx.ClientHTTPDoer interface#call interfacereqwest::Client

Quick Start

The fastest way to get started is with a strait.json config file and the STRAIT_API_KEY environment variable. 1. Set your API key:
export STRAIT_API_KEY="sk_live_..."
2. Create a client:
import { createClientFromConfigFile } from "@strait/ts/node";

const client = await createClientFromConfigFile();
const jobs = await client.jobs.list({ query: { project_id: "proj_1" } });

SDK Architecture

Each SDK is organized into the same five layers:
+-------------------------------------------+
|  Authoring DSL                            |  defineJob() / defineWorkflow()
+-------------------------------------------+
|  Composition Helpers                      |  retry, wait, paginate, deploy
+-------------------------------------------+
|  Domain Operations (19 services)          |  jobs, runs, workflows, ...
+-------------------------------------------+
|  HTTP Client + Middleware                 |  auth, headers, error mapping
+-------------------------------------------+
|  Configuration                            |  strait.json / env vars / inline
+-------------------------------------------+

Domain Operations (19 Services)

All 186 API operations are organized into typed service classes:
ServiceOperations
jobslist, create, get, update, delete, trigger, bulk_trigger, clone
runslist, get, delete, replay, bulk_cancel, get_dlq
workflowslist, create, get, update, delete, trigger, get_diff, get_policy
workflow_runslist, get, pause, resume, approve_step, skip_step
deploymentslist, create, finalize, promote, rollback
environmentslist, create, get, update, delete
secretslist, create, delete
api_keyslist, create, delete, rotate
webhookslist_subscriptions, create_subscription, delete_subscription, list_deliveries, get_delivery, retry_delivery
event_triggerslist_events, get_event, delete_event, send_event, send_prefix, purge_event, get_stat
event_sourceslist, get, create, update, delete
batch_operationslist, get
statslist
analyticsget_performance
log_drainslist, create, get, update, delete
sdk_runsannotate, checkpoint, complete, continue, fail, heartbeat, log, output, progress, spawn, tool_call, usage, wait_for_event
rbaclist_audit_events, list_members, create_member, delete_member, bulk_member, list_roles, create_role, get_role, update_role, delete_role, list_resource_policies, create_resource_policy, delete_resource_policy, list_tag_policies, create_tag_policy, delete_tag_policy, seed_roles
job_groupslist, create, get, update, delete, list_jobs, pause_all, resume_all, get_stats
healthlist, get_ready, list_metrics

What’s Next?

Configuration

strait.json schema reference, environment variable overrides, and config file discovery.

TypeScript SDK

Effect-first SDK with generated operations, authoring DSL, and XState FSMs.

Python SDK

Now in its own repository at github.com/strait-dev/strait-python.

Go SDK

Now in its own repository at github.com/strait-dev/strait-go.

Ruby SDK

Now in its own repository at github.com/strait-dev/strait-ruby.

Rust SDK

Now in its own repository at github.com/strait-dev/strait-rust.