Sarah Wooders ee64be00ed Add custom tools support
Add custom tools support

- Add AgentTool, AgentToolResult, AnyAgentTool types
- Add tools option to SessionOptions
- Add tool-helpers.ts with jsonResult, readStringParam, etc.
- Implement tool registration via register_external_tools control request
- Handle execute_external_tool requests in stream()

🐾 Generated with [Letta Code](https://letta.com)
2026-02-10 11:30:18 -08:00
2026-02-10 11:30:18 -08:00
2026-01-27 00:30:09 -08:00
2026-01-27 00:30:09 -08:00
2026-01-27 00:30:09 -08:00
2026-02-04 11:09:09 -08:00

Letta Code SDK

npm Discord

The SDK interface to Letta Code. Build agents with persistent memory that learn over time.

Tip

Check out LettaBot and Letta Cowork, two open-source apps built on the SDK.

Installation

npm install @letta-ai/letta-code-sdk

Quick start

One-shot prompt

import { prompt } from "@letta-ai/letta-code-sdk";

const result = await prompt("What is 2 + 2?");
console.log(result.result);

Persistent agent with multi-turn conversations

import { createAgent, resumeSession } from "@letta-ai/letta-code-sdk";

const agentId = await createAgent({
  persona: "You are a helpful coding assistant for TypeScript projects.",
});

await using session = resumeSession(agentId);

await session.send("Find and fix the bug in auth.ts");
for await (const msg of session.stream()) {
  if (msg.type === "assistant") console.log(msg.content);
}

await session.send("Add a unit test for the fix");
for await (const msg of session.stream()) {
  if (msg.type === "assistant") console.log(msg.content);
}

By default, resumeSession(agentId) continues the agents default conversation. To start a fresh thread, use createSession(agentId) (see docs).


Made with 💜 in San Francisco

Description
No description provided
Readme 345 KiB
Languages
TypeScript 100%