As of October 2026. This page is a short orientation, not a benchmark. The TypeScript agent space moves fast: most of the projects below now ship durable approvals, evals and coding-agent harnesses of their own, so check their documentation before deciding. Rows about lousho describe this repository and link to the page that documents each claim.
| Project | What it is | Approvals / human-in-the-loop | Evals | Coding agents | Where it is ahead of lousho |
|---|---|---|---|---|---|
lousho (@lousho/build-ai-agent) |
Self-hosted TypeScript agent SDK, one npm package, alpha | needsApproval + resumeAfterApproval() on memory, file, SQLite or Cloudflare KV stores (Approvals) |
lousho eval: trajectory assertions, record/replay cassettes, drift reports (Evals) |
Workspace tools, permission rules, piAgent(), registry kits, ACP editor server (Build a coding agent) |
- |
| Vercel AI SDK 7 | Model, agent and UI toolkit for TypeScript | WorkflowAgent tools take needsApproval; runs are durable through the open-source Workflow DevKit |
Not built in | HarnessAgent (experimental) wraps existing runtimes such as Claude Code behind one API |
By far the most providers and UI integrations; lousho uses it underneath for the standard providers |
| Mastra | Full-stack TypeScript framework: agents, workflows, memory, RAG, dev UI | Workflow suspend() / resume() with persisted snapshots |
Scorers, datasets and experiments, with results stored | Build it from agents, tools and workflows | Postgres and many other storage adapters, a local dev playground, a larger community |
| LangGraph.js | Graph-shaped, stateful workflows with checkpointing | interrupt() + Command({ resume }) on any checkpointer |
Through LangSmith (hosted) | Build it as a graph | Postgres checkpointer, explicit control flow, LangSmith tracing and evals |
| OpenAI Agents SDK (JS) | Agents around OpenAI's APIs: handoffs, guardrails, tracing | Tool approvals with run-state resume | Through OpenAI's platform | Sandbox agents (beta) that read files, run commands and apply patches | First-class OpenAI hosted tools and sandboxes, OpenAI tracing dashboard |
| Claude Agent SDK | The Claude Code agent loop as a library | canUseTool callback, hooks, permission modes and rules |
Not built in | It is a coding agent: file, shell and edit tools, sessions, subagents | A production coding harness out of the box; Claude models |
| eve | Vercel's filesystem-first agent framework (Apache-2.0, beta) | Human-in-the-loop prompts on durable runs | eve eval with defineEval, asserting on tool calls |
Sandboxes, channels (Slack, Discord, HTTP), schedules | Deploy and operations on Vercel, AI Gateway models, channels. Its agent/ directory layout (instructions.md, tools/, skills/) mirrors lousho's agent directories |
| VoltAgent | TypeScript framework: agents, memory, workflows | Workflow suspend/resume | Built-in evals | Build it from agents and tools | VoltOps observability console and dashboards |
| open-harness | MIT TypeScript SDK on the AI SDK, modelled on Claude Code and Codex | Tool permissions | Not built in | Filesystem and bash tools, subagents, skills, MCP, compaction | Small, composable harness core focused on coding agents |
Each item is checkable in this repository.
- Record/replay cassettes and trajectory drift in one CLI.
lousho eval --recordruns every case against the real provider once and writes a cassette,--replayruns them in CI with no network and no API key, and--driftre-records into a temp directory and reports how each case's tool-call trajectory changed (Evals, Testing). - Durable approvals on Cloudflare Workers KV as well as memory, file and
SQLite, with the same
needsApproval/resumeAfterApproval()code on each (Durable execution, Cloudflare Workers). - Editor and MCP surfaces from the same agent.
lousho acpserves any agent to Zed and other Agent Client Protocol editors (ACP);serveMcpexposes it as an MCP server to Claude Code, Cursor and other clients (MCP). - Self-hosted, one package, no platform account. Runs in your Node process or a Worker; nothing calls home and there is no hosted control plane to sign up for.
- Spans AI SDK majors. The
aipeer dependency accepts^4.3.19,^6and^7, so an existing app can adopt lousho without first upgrading the AI SDK (Installation).
- Alpha, one maintainer. The 1.0 line is still
1.0.0-alpha.*. Expect API churn, a small community and few third-party integrations. - No Postgres store. Checkpoint and approval stores ship for memory, file, SQLite and Cloudflare KV. Mastra and LangGraph ship Postgres; here you implement the small
CheckpointStore/ApprovalStoreinterfaces yourself. - Fewer native providers. OpenAI, Anthropic, OpenRouter, Ollama and the Pi catalog are built in; anything else goes through
fromAiSdk()(Providers). - No hosted dashboard. Traces are OpenTelemetry spans you send to your own backend (Observability); there is no equivalent of LangSmith, VoltOps or Mastra's playground.
- The root entry point is not edge-safe. Cloudflare Workers use the dedicated
workerbuild and subpaths (Cloudflare Workers). - Live runs are manual. CI runs offline tests and cassette replays; live-provider checks are run by hand.
If you only need model calls with streaming UI, the Vercel AI SDK alone is the simpler choice. If you want a ready-made coding agent, start from the Claude Agent SDK or an AI SDK harness. If you want an all-in-one framework with a dev UI and Postgres, look at Mastra; if your control flow is a graph, LangGraph.js; if you deploy on Vercel, eve. Pick lousho when you want offline record/replay evals, approvals that survive a restart on your own stores (including Workers KV), and one self-hosted package you can also serve over ACP and MCP.