Code-first AI workflows for your entire stack

Terse is the platform for building AI workflows in TypeScript. Connect your tools, generate a typed SDK from your workspace, and deploy deterministic and agentic workflows from your terminal.

terse.jobs.ts
import { createJob, TerseAgent } from "terse-sdk"
import { AttioList, Skills, SlackChannel, Triggers } from "./terse.generated"
// ^ Types generated from your workspace
 
createJob({
name: "new-deal-enrichment",
triggers: [Triggers.attio.onRecordCreated({ list: AttioList.Pipeline.NewDeals })],
onTrigger: async (event) => {
const agent = TerseAgent.create({
prompt: "You are a research assistant for pipeline deals.",
skills: [
Skills.attio({ lists: [AttioList.Pipeline.NewDeals] }),
Skills.apollo(),
Skills.slack({ channel: SlackChannel.DealDesk }),
],
})
 
// Deterministic tool call
const company = await agent.tools.apollo.enrichCompany({
domain: event.record.values.company_domain,
})
 
// Agent loop
const summary = await agent.runAndWait(
`Summarize ICP fit for ${event.record.values.company_name}.\n\n${event.formatForAgentRunner()}`
)
 
await agent.tools.attio.updateRecord({
list: AttioList.Pipeline.NewDeals,
recordId: event.record.id,
fields: { research_summary: summary, fit_score: company.score },
})
},
})
npm install -g terse-cli
Read the docs

Closed beta: request access via the contact form.


How it works

Set-up and deploy in minutes all from your terminal.

terminal
terse init my-project
Connects integrations and generates a typed SDK scoped to your workspace.
code .
Mix deterministic API calls with agent loops. Full type safety, full autocomplete.
terse test
Validate logic locally. No cloud round-trips.
terse deploy
Serverless. Triggers spin up, run, tear down. No Dockerfile, no CI.

Get in touch

Let's talk

Questions, feedback, or partnership inquiries — we'd love to hear from you.