Skip to main content

Install

Requires Bun 1.4.2 or later.

Create a project

The actor starts in src/actor.ts. terse.config.json identifies the hosted project. Coding agents pick up the durable-actors-quickstart skill from .agents/skills and .claude/skills. For unattended setup, authenticate first:
Sign-in opens your default browser. To print the URL instead, pass --no-browser. It works with terse install, terse init, and terse auth login:

Run locally

Run from the actor project:
The server watches your source. The default endpoint is http://127.0.0.1:7100/v1/projects/local/actors. Local state lives in .durable-actors/. Keep that directory to retain state.

Generate a client

Keep the actor server running. Run from your application project:
Clients default to generated/. They include their runtime and need no packages. Regenerate after changing public methods, state, or socket types. Keep generated files unchanged.

Deploy

Run from the actor project:
The CLI type-checks the actor contract and uploads source. It prints the hosted actor URL. Set that URL in the calling application. Set its TERSE_API_KEY. Regenerate the client against the hosted contract.

Secrets

add prompts for the value. --value-stdin reads it from standard input. Local sync writes the value to .env; --skip-local-sync disables that write. import --overwrite replaces existing server values. list --json lists names. Keep provider keys in the actor project. Keep Terse credentials in the calling backend. Keep both out of browser code.

Connection settings

Create an API token in the app under API keys in the sidebar. Copy it into the backend’s TERSE_API_KEY. The CLI loads .env. Application backends must load their own environment. Saved CLI credentials can authorize hosted client generation; running applications still need TERSE_API_KEY.

Account and utilities

Run terse <command> --help for command options.