TYPESCRIPT AUTOMATION, WITHOUT THE SEAMS v0.12

Make the
work flow.

Your scripts. Your CLI.
Every environment.

Turn the work around your code into clear, reusable TypeScript. From a local command to a release pipeline, keep execution under your control.

npm install -g @xec-sh/cli
One toolkit. Your environment.TYPESCRIPT
inspect.ts
import { $ } from '@xec-sh/core';

const revision = await $`git rev-parse --short HEAD`
  .timeout('10s')
  .text();

console.log(revision.trim());

Run in a Git repository with xec run inspect.ts. Commands use the selected local shell.

Read the guide ↗
ONE EXECUTION CONTRACTLocal/SSH/Docker/KubernetesNode.js · Bun · Deno libraries

01 / FROM ONE COMMAND TO A SYSTEM

Start small.
Keep the same foundations.

Adopt the library, the CLI, or both. Each layer has one job and works with the tools you already use.

02 / COMPOSE, DON'T REWRITE

A small surface.
A complete execution path.

Xec orchestrates the work. Your compiler builds it, Turbo can manage the package graph, and your platform supervises the deployed applications.

Explore the architecture

03 / CONTROL IS THE FEATURE

Less glue. More intent.

01

Typed where it matters.

Compose commands and inspect typed results. Treat shell source and external output as runtime boundaries, not compile-time guarantees.

Write portable scripts ↗
02

Failures stay visible.

Choose deadlines, cancellation and retry policies explicitly. Define rollback for your system; an execution library cannot invent it.

Handle failure ↗
03

Tools stay composable.

Run locally, from any CI provider, or against your own infrastructure. Keep build caches, credentials and deployment policy under your control.

Build a workflow ↗

THE NEXT USEFUL COMMAND

Make it yours.

One script is enough to get started.

Write your first script
MADE FOR BUILDERS.Static pages. Local search. Built with Lumen + Prism.