Write TypeScript. Ship a binary.
A native TypeScript runtime for services and durable agents.
Deploy one capability-bounded executable—without Node.js, V8, or
node_modules in production.
Get started · Examples · Documentation · Security
- Ship one artifact. Package your application and its native runtime as one executable.
- Bound every capability. Network, secrets, databases, and files are denied until explicitly granted.
- Resume durable work. Persist steps, effects, sleep, retry, and signals so work can continue after a process restart.
Tysel is Web-API-first and designed for HTTP services, workers, MCP tools, isolated plugins, and durable agents. Experimental Wasm Component tasks let bounded Rust or Go code use the same task model.
Install the latest published release on Linux or macOS:
curl -fsSL https://tysel.dev/install.sh | sh
tysel doctor --installCreate, verify, and run an HTTP service:
tysel init hello-tysel --yes
cd hello-tysel
tysel task verify
tysel devIn another terminal, call the address printed by the server:
curl http://127.0.0.1:3000/helloStop the development server with Ctrl-C, then package and run it:
tysel task release
./dist/hello-tyselThe developer installation contains three cooperating tools. The application artifact is still one executable. See installation for version pinning, authenticated upgrades, rollback, and Windows via WSL.
| Choose Tysel when you need | Know this before adopting |
|---|---|
| One executable instead of a JavaScript environment | Builds target the host or a verified Linux/macOS x64/arm64 runtime |
| Web-standard APIs for services and tasks | Tysel is not a general Node.js compatibility layer |
| Explicit host-resource grants | Native addons, subprocesses, and dynamic libraries are outside the contract |
| Durable work that survives restarts | Linux is the production isolation target |
Run tysel compat before adopting an npm
dependency. Choose Node.js, Bun, or Deno instead when broad Node.js compatibility
or a general-purpose JavaScript toolchain is the primary requirement.
- Fetch-style HTTP service — Hello service
- Hono API — Hono API
- Cron and Queue worker — Task worker
- Durable LLM workflow — Durable agent
- MCP tool with a brokered secret — MCP tool
- Isolated third-party code — Isolated plugin
- Rust or Go Wasm task — Wasm Component guides
Browse the complete example gallery for filesystem, SQLite, PostgreSQL, Redis, WebSocket, and LLM integrations.
Evaluate Tysel through its security model, capability matrix, performance evidence, and production runbook. Quantitative claims are published only with a named release, environment, workload, and reproduction command.
| Area | Current contract |
|---|---|
| API stability | Pre-1.0; APIs may change between minor releases |
| Toolchain | Linux and macOS, x64 and arm64 |
| Windows | WSL; no native Windows archive yet |
service profile |
Trusted first-party application code |
isolated profile |
Separate worker process; Linux is the production security gate |
component profile |
Experimental Wasm Component tasks with restricted WASI |
| Native runtime cross-compilation | Not provided; build --target instead packages with a verified same-version official runtime |
See execution profiles and how Tysel works for the complete runtime model.
Issues and focused pull requests are welcome. CI validates formatting, tests, compatibility, supply-chain checks, and release evidence. Do not report vulnerabilities in a public issue; follow the security reporting guidance.