Extend agents with code you control.
Skills are reusable instructions. Tools are TypeScript functions. Package both with AFPS.
Pre-built is nice. Yours is necessary.
Every real product has custom logic: pricing rules, approval thresholds, internal APIs, domain lingo. No catalog covers it.
Appstrate lets you write tools in TypeScript and ship them as packages. Agents discover them automatically; versioning and dependencies follow semver.
Write once. Version. Share.
A tool is a function. A skill is a markdown file with YAML frontmatter. Both package into AFPS archives.
{
"$schema": "https://afps.appstrate.dev/schema/v1/tool.schema.json",
"name": "@acme/orders",
"version": "1.2.0",
"type": "tool",
"displayName": "Orders",
"entrypoint": "tool.ts",
"tool": {
"name": "orders_get",
"description": "Fetch order details by ID.",
"inputSchema": {
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Order identifier"
}
},
"required": ["order_id"]
}
}
}What makes it work.
TypeScript tools
Full type safety, your existing deps, your own code.
Skill files
Markdown with YAML frontmatter. Teach agents your domain.
AFPS packaging
Versioned, signed, dependency-checked. Publish to a registry.
Semver resolution
Pin exact versions or use ranges. No surprise upgrades.
Write the tools. Ship the agents.
Full example in /docs. TypeScript, AFPS, semver — all the boring done right.