# Build against Praecise from code.

The Harness SDK builds agents and workflows in TypeScript. The Cloud section of Praecise Spaces shows releases, environment and logs, and Skerry offers its own OpenAPI reference.

[Open the console](https://console.praecise.cloud)

[Talk to us](mailto:contact@praecise.com?subject=Praecise%20Cloud)

In short

The SDKs are the Harness SDK for agents and workflows in TypeScript, plus the Cloud section of Praecise Spaces for releases, environment and logs. They are for developers building against Praecise from code. Install @praecise/harness to start.

## At a glance.

npm

### @praecise/harness.

Apache-2.0, published on npm.

Runtime

### Node 22 or newer.

No dependencies of its own.

Reference

### Skerry OpenAPI 3.1.

Plus an MCP server and webhooks.

## The SDK, without a folder.

The folder is the default and not the only way in. The same app can be a value you import.

```
import { createApp, agent, fn, guard } from "@praecise/harness";

const app = await createApp({
  name: "acme",
  agents: { support: agent({ role: "Help.", tools: ["lookup"] }) },
  functions: { lookup: fn({ description: "Look up an order.",
    input: { id: "the order id" }, effect: "read",
    run: ({ id }) => ({ id, status: "delivered" }) }) },
  guard: guard((a) => (a.effect === "write" ? "read-only today" : undefined)),
});

await app.ask("support", "where is order 12?");
```

createApp refuses to start a faulted app.

## What the SDK gives you.

8

### createApp and defineApp

An app as a value.

For packages, edge workers and apps assembled per tenant.

### mergeApps

Build on a library.

Later definitions win and collisions are reported.

### agent, fn, guard

The three nouns.

An agent, a function it may call, and the boundary on what runs.

### Ask and rate

Calls and feedback.

app.ask, app.rate and ceiling and floor to bound one request.

### Package it

Hand an app to someone else.

praecise package writes a directory with a launcher and an mcp.json describing the tool surface.

### Import it

An app as a library.

A packaged app is importable, with api.d.ts listing the tools.

### Serve it

Over stdin or HTTP.

praecise mcp serves over stdin and stdout; praecise dev serves HTTP.

### Bring your own

Models, stores, storage.

Or bring one key for Praecise Cloud's managed side.

## Other entry points.

3

### [Cloud section of Spaces](https://console.praecise.cloud)

Projects

Releases, environment and logs for each project.

### [Skerry API](https://skerry.xyz/docs)

Payments

OpenAPI 3.1, MCP server and webhooks.

### [Engine crates](https://github.com/Praecise/praecise-engine)

Rust

Depend on praecise-runtime; it defaults to no backend.

## Start.

3

1

### Install.

npm i @praecise/harness, or npx @praecise/harness init my-app.

2

### Run.

npx @praecise/harness dev.

3

### Place.

Place the folder behind the edge as a Node app.

## Next pages.

[Frameworks](https://praecise.cloud/frameworks.md)

[Open source](https://praecise.cloud/open-source.md)

[Tools](https://praecise.cloud/tools.md)

06

## Praecise accounts are by invitation. Open the console, or talk to us.

[Open the console](https://console.praecise.cloud)

[Talk to us](mailto:contact@praecise.com?subject=Praecise%20Cloud)

[Harness on GitHub](https://github.com/Praecise/praecise-harness)

New to Praecise Cloud? Accounts are set up with the Praecise team: talk to us, then sign in to the Cloud section of Praecise Spaces with an email code.

Source: https://praecise.cloud/sdks
