Build applications from reusable TypeScript objects, with database, API and agent tools configured for your needs.
The problem
Building an application often means wiring the same data, API and agent tools in several places. s-m-r-t lets one TypeScript object describe the parts you choose to use.
What it does
Use TypeScript objects to define the database, API, CLI and agent tools your app needs
Choose which agent actions are available with an explicit allowlist
Add jobs, agents, prompts and playbooks as your application needs them
Connect AI, databases, storage and other services through SDK adapters
article.ts
import { smrt, SmrtObject } from '@happyvertical/smrt-core';
@smrt()
class Article extends SmrtObject {
title = '';
body = '';
}
// Configure database, REST, CLI and MCP tools
// for the actions you choose to expose.
await article.do('summarise in one line');
await article.is('ready to publish?');