{"id":13542844,"url":"https://github.com/temporalio/sdk-typescript","last_synced_at":"2026-06-09T03:04:35.459Z","repository":{"id":37005628,"uuid":"317256151","full_name":"temporalio/sdk-typescript","owner":"temporalio","description":"Temporal TypeScript SDK","archived":false,"fork":false,"pushed_at":"2025-05-06T21:22:07.000Z","size":25744,"stargazers_count":603,"open_issues_count":161,"forks_count":123,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-05-06T22:29:29.007Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/temporalio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-30T14:54:26.000Z","updated_at":"2025-05-06T04:37:06.000Z","dependencies_parsed_at":"2023-09-29T06:49:43.401Z","dependency_job_id":"d514ab61-2461-4402-bdeb-10dc6faa3358","html_url":"https://github.com/temporalio/sdk-typescript","commit_stats":{"total_commits":1136,"total_committers":44,"mean_commits":"25.818181818181817","dds":0.420774647887324,"last_synced_commit":"dfb524ea5e220c1fe4dad26858f1c99e8b9383c6"},"previous_names":[],"tags_count":232,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fsdk-typescript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fsdk-typescript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fsdk-typescript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temporalio%2Fsdk-typescript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/temporalio","download_url":"https://codeload.github.com/temporalio/sdk-typescript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253445566,"owners_count":21909814,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T11:00:18.648Z","updated_at":"2026-06-09T03:04:35.455Z","avatar_url":"https://github.com/temporalio.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":["Videos"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://assets.temporal.io/w/ts.png\" alt=\"Temporal TypeScript SDK\" /\u003e\n\u003c/p\u003e\n\n![Node 20 | 22 | 24](https://img.shields.io/badge/node-20%20|%2022%20|%2024-blue.svg?style=for-the-badge)\n[![MIT](https://img.shields.io/github/license/temporalio/sdk-typescript.svg?style=for-the-badge)](LICENSE)\n[![NPM](https://img.shields.io/npm/v/@temporalio/client?style=for-the-badge)](https://www.npmjs.com/search?q=author%3Atemporal-sdk-team)\n\n[Temporal](https://temporal.io/) is a distributed, scalable, durable, and highly available orchestration engine used to\nexecute asynchronous, long-running business logic in a scalable and resilient way.\n\n**Temporal TypeScript SDK** is the framework for authoring workflows and activities using either the TypeScript or JavaScript programming languages.\n\nFor documentation and samples, see:\n\n- [TypeScript Development Guide](https://docs.temporal.io/develop/typescript)\n- [TypeScript Samples](https://github.com/temporalio/samples-typescript)\n- [TypeScript API Reference](https://typescript.temporal.io/)\n- [General Temporal Documentation](https://docs.temporal.io)\n\n## Quick Start\n\n### Installation\n\nTo add Temporal TypeScript SDK packages to an existing JavaScript project, run:\n\n_(for client-level features, e.g. starting or interracting with Workflows)_\n\n```sh\n# Or `pnpm add` or `yarn add`\nnpm install --save \\\n    @temporalio/client \\\n    @temporalio/common\n```\n\n_(for worker-level features, including running Workflows, Activities and Nexus Operations)_\n\n```sh\n# Or `pnpm add` or `yarn add`\nnpm install --save \\\n    @temporalio/worker \\\n    @temporalio/workflow \\\n    @temporalio/activity \\\n    @temporalio/common\n```\n\nAll `@temporalio/*` packages in a project must have the same version number.\nThis requirement is generally enforced by peer dependencies of the Temporal packages,\nbut it may sometime require extra cares in complex monorepos.\n\n## Requirements\n\n\u003e [!NOTE]\n\u003e The following requirements apply to the current git branch, and not necessarily what's released on NPM.\n\n### Node.js\n\nThe Temporal TypeScript SDK is officially supported on Node 20, 22, and 24.\n\nIn line with [Node.js' release policy](https://nodejs.org/en/about/previous-releases#nodejs-releases),\nwe recommend that production applications only use Node's Active LTS or Maintenance LTS releases.\n\n### Other JavaScript runtime environments\n\nThe `@temporalio/client` package is believed to work properly on most server-side JavaScript\nenvironments, including Bun, Deno, and Cloudflare Workers. Note however that we do not run\nregular tests of the SDK on any other JavaScript runtime environments, and therefore can't\nprovide official support for such execution environments. Use at your own risk!\n\nWorker-level features (i.e. running Workflows, Activities, and Nexus Operations) of the Temporal\nTypeScript SDK rely extensively on several Node-specific features, including:\n\n- **Node-API native modules** - Required to load the Core SDK native library.\n- **Node's `worker_threads` module** - Required to offload Workflow Tasks execution\n  to a separate thread.\n- **Node's `vm` modules** - Required to create isolated execution environments for\n  Workflow Tasks (i.e. the \"Workflow Sandbox\").\n- **Node's `AsyncLocalStorage` API** - Required to track the context of the currently\n  executing Workflow, Activity, or Nexus Operation tasks.\n- **Node's `async_hooks` module** - Required to track stack traces and catch unhandled\n  promise rejections inside of Workflows.\n\nSome Node-compatible runtimes provide partial support for these APIs, and some users have\nreported anecdotal success in running Worker-level features of the Temporal TypeScript SDK\nin such environments. However, given the lack of maturity of those compatibility layers, we\nstrongly discourage running Temporal Workers in anything except authentic Node.js at this time.\n\nBe assured that we will continue to monitor evolution of those alternative runtimes, and will\nconsider extending support to more environments as their respective compatibility layers mature.\n\n## SDK Development\n\nRefer to our [contributing guide](CONTRIBUTING.md) for details on build and testing procedures.\n\n### Repository Structure\n\nThis monorepo contains the following packages:\n\n| Subfolder                                                                    | Package                                                                                                          |\n| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |\n| [`packages/client/`](packages/client/)                                       | [`@temporalio/client`](https://www.npmjs.com/package/@temporalio/client)                                         |\n| [`packages/worker/`](packages/worker/)                                       | [`@temporalio/worker`](https://www.npmjs.com/package/@temporalio/worker)                                         |\n| [`packages/workflow/`](packages/workflow/)                                   | [`@temporalio/workflow`](https://www.npmjs.com/package/@temporalio/workflow)                                     |\n| [`packages/activity/`](packages/activity/)                                   | [`@temporalio/activity`](https://www.npmjs.com/package/@temporalio/activity)                                     |\n| [`packages/testing/`](packages/testing/)                                     | [`@temporalio/testing`](https://www.npmjs.com/package/@temporalio/testing)                                       |\n| [`packages/common/`](packages/common/)                                       | [`@temporalio/common`](https://www.npmjs.com/package/@temporalio/common)                                         |\n| [`packages/proto/`](packages/proto/)                                         | [`@temporalio/proto`](https://www.npmjs.com/package/@temporalio/proto)                                           |\n| [`packages/test/`](packages/test/)                                           | SDK internal tests                                                                                               |\n| [`packages/create-project/`](packages/create-project/)                       | [`@temporalio/create`](https://www.npmjs.com/package/@temporalio/create-project)                                 |\n| [`packages/docs/`](packages/docs/)                                           | [API docs](https://typescript.temporal.io/)                                                                      |\n| [`packages/core-bridge/`](packages/core-bridge/)                             | [`@temporalio/core-bridge`](https://www.npmjs.com/package/@temporalio/proto)                                     |\n| [`packages/envconfig/`](packages/envconfig/)                                 | [`@temporalio/envconfig`](https://www.npmjs.com/package/@temporalio/envconfig)                                   |\n| [`packages/nyc-test-coverage/`](packages/nyc-test-coverage/)                 | [`@temporalio/nyc-test-coverage`](https://www.npmjs.com/package/@temporalio/nyc-test-coverage)                   |\n| [`packages/plugin/`](packages/plugin/)                                       | [`@temporalio/plugin`](https://www.npmjs.com/package/@temporalio/plugin)                                         |\n| [`packages/nexus/`](packages/nexus/)                                         | [`@temporalio/nexus`](https://www.npmjs.com/package/@temporalio/nexus)                                           |\n| [`contrib/interceptors-opentelemetry/`](contrib/interceptors-opentelemetry/) | [`@temporalio/interceptors-opentelemetry`](https://www.npmjs.com/package/@temporalio/interceptors-opentelemetry) |\n| [`contrib/ai-sdk/`](contrib/ai-sdk/)                                         | [`@temporalio/ai-sdk`](https://www.npmjs.com/package/@temporalio/ai-sdk)                                         |\n\n## Contributing\n\nWe welcome issues and pull requests!\n\nPlease read our [contributing guide](CONTRIBUTING.md) to learn about our\ndevelopment process, and how to propose bugfixes and improvements.\n\nThank you to [everyone who has contributed](https://github.com/temporalio/sdk-typescript/graphs/contributors) to the Temporal TypeScript SDK 😃🙌\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemporalio%2Fsdk-typescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftemporalio%2Fsdk-typescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemporalio%2Fsdk-typescript/lists"}