Cursor SDK Adds Custom Tools, Auto-Review, and JSONL Stores
Written byMango
Drafted with AI; edited and reviewed by a human.
![]()
TL;DR
- The Cursor SDK now supports custom tools, allowing developers to expose their own functions directly to agents.
- A new auto-review feature enables configurable automatic execution of tool calls based on natural language instructions in
permissions.json. - Developers can choose between JSONL and SQLite for persisting agent and run metadata, offering more flexibility.
- Nested subagents are now supported to any depth, enabling more complex agent hierarchies.
Developers can now integrate their own functions as tools for local SDK agents. By passing function definitions through local.customTools when creating an Agent or during a send() call, these functions become accessible to the agent via a built-in MCP server. This streamlines the process of exposing custom capabilities, eliminating the need to set up separate HTTP servers or stdio interfaces. Crucially, custom tools defined at a parent agent level are automatically available to all its subagents, simplifying their management across complex agent hierarchies.
The new auto-review functionality offers a more sophisticated approach to handling tool calls in headless runs. Instead of bypassing human approval entirely, tool calls can be routed through a classifier that determines whether to execute them automatically or hold them for review. This classifier is steered by natural-language instructions provided within the permissions.json file. For instance, developers can configure the system to automatically allow read-only operations on build artifacts while always pausing destructive commands like deletions for explicit user confirmation, enhancing safety and control.
Cursor SDK now provides more options for persisting agent and run metadata, enabling agents to resume after process restarts. In addition to the existing SQLite store, developers can opt for a JSONL store. This append-only file format is human-readable, diff-able, and can be easily checked into version control systems. For even greater customization, developers can implement the LocalAgentStore interface to create entirely custom persistence solutions, such as in-memory stores for ephemeral CI runs or backing persistence with databases like PostgreSQL.
The SDK now fully supports nested subagents, allowing agents to delegate tasks to other agents recursively to any depth. This enables the creation of intricate agent hierarchies where each level can maintain its own prompt and model configurations. This release also brings significant reliability enhancements, including run correlation via a platform-generated requestId for easier log tracing, more reliable wait() functionality on local runs ensuring results are fully written, and safer checkpointing when agents are disposed. Cloud streaming over HTTP/1.1 is also now supported, improving compatibility with various proxy setups.
Summary
- Custom tools and auto-review offer greater control and flexibility in how agents interact with external functions and execute commands.
- Developers can choose JSONL or SQLite for metadata persistence, with the option to implement custom
LocalAgentStoresolutions. - The introduction of nested subagents and various reliability improvements enhance the development of complex and robust agent systems.
- New features are available for both TypeScript and Python SDKs, with detailed documentation available for each.
Source: Custom stores, custom tools, and auto-review for the Cursor SDK · Cursor
Read next

Cursor Canvas Adds Design Mode for Faster Editing and Context Usage Reports
Cursor's Canvas now features Design Mode for direct UI element annotation and interactive reports to analyze agent context usage, improving editing speed and transparency.
Continue reading