
Product
Introducing Repository Access Permissions and Custom Roles
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.
@mastra/codemod
Advanced tools
Affected versions:
Mastra provides automated code transformations (codemods) to help upgrade your codebase when features are deprecated, removed, or changed between versions.
Codemods are transformations that run on your codebase programmatically, allowing you to apply many changes without manually editing every file.
npx @mastra/codemod v1
To run a specific codemod:
npx @mastra/codemod <codemod-name> <path>
Examples:
# Transform a specific file
npx @mastra/codemod v1/mastra-core-imports src/mastra.ts
# Transform a directory
npx @mastra/codemod v1/mastra-core-imports src/lib/
# Transform entire project
npx @mastra/codemod v1/mastra-core-imports .
| Codemod | Description |
|---|---|
v1/agent-abort-signal | Moves abortSignal from modelSettings to top-level options in agent method calls |
v1/agent-generate-stream-v-next | Renames agent.generateVNext() → agent.generate() and agent.streamVNext() → agent.stream() |
v1/agent-processor-methods | Renames agent.getInputProcessors() → agent.listInputProcessors() and similar output processor methods |
v1/agent-property-access | Transforms agent property access to method calls: agent.llm → agent.getLLM() |
v1/agent-voice | Moves agent voice methods to namespace: agent.speak() → agent.voice.speak() |
v1/client-get-memory-thread | Updates client.getMemoryThread(threadId, agentId) to use object parameter |
v1/client-msg-function-args | Transforms MastraClient agent method calls to use messages as the first argument |
v1/client-offset-limit | Renames pagination properties from offset/limit to page/perPage |
v1/client-sdk-types | Renames Client SDK types from Get* to List* pattern |
v1/client-to-ai-sdk-format | Renames toAISdkFormat to toAISdkStream |
v1/evals-prebuilt-imports | Updates prebuilt scorer imports from scorers/llm and scorers/code to scorers/prebuilt |
v1/evals-run-experiment | Renames runExperiment() → runEvals() in imports and usages |
v1/evals-scorer-by-name | Renames mastra.getScorerByName() → mastra.getScorerById() |
v1/experimental-auth | Renames experimental_auth to auth in Mastra configuration |
v1/mastra-core-imports | Updates imports from @mastra/core to use new subpath imports |
v1/mastra-plural-apis | Renames Mastra plural API methods from get* to list* |
v1/mcp-get-tools | Renames mcp.getTools() → mcp.listTools() |
v1/mcp-get-toolsets | Renames mcp.getToolsets() → mcp.listToolsets() |
v1/memory-message-v2-type | Renames MastraMessageV2 type → MastraDBMessage in imports and usages |
v1/memory-query-to-recall | Renames memory.query() → memory.recall() |
v1/memory-vector-search-param | Renames vectorMessageSearch parameter → vectorSearchString in memory.recall() calls |
v1/memory-readonly-to-options | Moves memory.readOnly to memory.options.readOnly in agent method calls |
v1/runtime-context | Renames RuntimeContext to RequestContext and updates parameter names from runtimeContext to requestContext |
v1/storage-get-messages-paginated | Renames storage.getMessagesPaginated() → storage.listMessages() and offset/limit → page/perPage |
v1/storage-get-threads-by-resource | Renames storage.getThreadsByResourceId() → storage.listThreadsByResourceId() |
v1/storage-list-messages-by-id | Renames storage.getMessagesById() → storage.listMessagesById() |
v1/storage-list-workflow-runs | Renames storage.getWorkflowRuns() → storage.listWorkflowRuns() |
v1/storage-postgres-schema-name | Renames schema property → schemaName in PostgresStore constructor |
v1/vector-pg-constructor | Converts new PgVector(connectionString) to new PgVector({ connectionString }) |
v1/voice-property-names | Renames voice property names in Agent configuration: speakProvider → output |
v1/workflow-create-run-async | Renames workflow.createRunAsync() → workflow.createRun() |
v1/workflow-list-runs | Renames workflow.getWorkflowRuns() → workflow.listWorkflowRuns() |
v1/workflow-run-count | Renames context.runCount → context.retryCount in step execution functions |
v1/workflow-stream-vnext | Renames streamVNext(), resumeStreamVNext(), and observeStreamVNext() |
npx @mastra/codemod <command> [options]
Available Commands:
<codemod-name> <path> - Apply specific codemod--dry - Preview changes without applying them--print - Print transformed code to stdout--verbose - Show detailed transformation logs# Show verbose output for specific codemod
npx @mastra/codemod --verbose v1/mastra-core-imports src/
# Print transformed code for specific codemod
npx @mastra/codemod --print v1/mastra-core-imports src/mastra.ts
Create the codemod in src/codemods/<version>
Add test fixtures in src/test/__fixtures__/
Create tests in src/test/
Use the scaffold script to generate boilerplate:
pnpm scaffold
First, navigate to the codemod directory:
cd packages/codemod
Then run the tests:
# Run all tests
pnpm test
# Run specific codemod tests
pnpm test mastra-core-imports
# Test in development
pnpm test:watch
FAQs
Codemod CLI for Mastra
The npm package @mastra/codemod receives a total of 1,798 weekly downloads. As such, @mastra/codemod popularity was classified as popular.
We found that @mastra/codemod demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.