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-cliClosed 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.
