v3.5.0-alpha.2
Released: January 30, 2026✨ New Features
Integrations Command
Integrations Command
- Support for OAuth and API token authentication
- Automatic MCP server creation and activation per connection
- Webhook subscriptions for receiving events from connected services
MCP and Mastra Log Types
MCP and Mastra Log Types
lua logs command now supports filtering by MCP tool executions and Mastra AI runtime logs:- 🔌 MCP Tools: View MCP tool execution logs with plug icon
- 🧠 Mastra Runtime: View Mastra AI runtime logs with brain icon
User ID Filtering in Logs
User ID Filtering in Logs
Non-Interactive Configure Command
Non-Interactive Configure Command
lua configure command now supports full non-interactive operation for CI/CD pipelines and dashboard users:Post-Process Complete Event in Chat
Post-Process Complete Event in Chat
🔧 Improvements
- updateAgent API: New
AgentApi.updateAgent()method for partial sub-agent updates (name, persona) - Compile Command: Removed
--force-syncflag (sync is now the default behavior)
🐛 Bug Fixes
- Marketplace: Browse and search commands now only display skills with published and approved versions
- Test Command: Fixed preprocessor test handling for
PreProcessorResultobject format
📝 Interface Updates
- Added
MCPServerSourceenum tointerfaces/mcp.ts - Added
'mcp'and'mastra'toPrimitiveTypeandFilterTypeenums
v3.5.0-alpha.1
Released: January 23, 2026✨ New Features
User Lookup by Email or Phone
User Lookup by Email or Phone
User.get() method now supports looking up users by email address or phone number, in addition to userId. This is especially useful in webhooks where you receive contact info from external systems.- Webhooks receiving customer email/phone from external systems
- Admin tools where operators search by contact info
- Integrations with third-party systems that don’t have Lua user IDs
User.get(userId) which throws on not found, email/phone lookup returns null. Always check for null before using the user object.📝 Interface Updates
- Added
UserLookupOptionsinterface for email/phone lookup - Updated
User.get()return type toUserDataInstance | null - Exported
UserLookupOptionsandProfileResponsetypes
v3.4.0
Released: January 22, 2026✨ New Features
Non-Destructive Compile Sync
Non-Destructive Compile Sync
lua compile command now uses a safer, non-destructive sync pattern. Instead of automatically deleting primitives on the server that aren’t in your local code, it now:- Warns about orphaned primitives (skills, webhooks, jobs, MCP servers)
- Suggests using explicit delete commands
- Filters warnings to CLI-sourced skills only (ignores marketplace and manual skills)
New Delete Commands
New Delete Commands
- Server lookup for orphaned items not in local YAML
- Interactive mode with confirmation prompts
--forceflag for non-interactive deletion
Streamable HTTP MCP Transport
Streamable HTTP MCP Transport
'streamable-http'- Modern MCP standard (recommended)'sse'- Legacy Server-Sent Events transport
🐛 Bug Fixes
- Push: Fixed crash when pushing primitives without a version field. First push now defaults to version
0.0.1and shows “(none - first push)” in prompts.
📝 Interface Updates
- Added
MCPStreamableHttpServerConfiginterface for streamable-http transport - Updated
MCPTransporttype to'sse' | 'streamable-http' - Added
SkillSourcetype:'cli' | 'marketplace' | 'manual' - Removed
MCPStdioServerConfig(stdio not supported yet)
v3.3.0
Released: January 20, 2026✨ New Features
Complete Non-Interactive Mode for All Commands
Complete Non-Interactive Mode for All Commands
- Consistent option naming:
--<entity>-nameand--<entity>-version --forceflag for skipping confirmation prompts--jsonflag for machine-readable output- Action arguments for entity management (view, versions, deploy, activate, deactivate)
User Message and Agent Response Log Types
User Message and Agent Response Log Types
- 💬 User Messages: View incoming user messages with channel and userId info
- 🤖 Agent Responses: View AI-generated responses with distinct coloring
Function-Based Environment Resolution for MCP Servers
Function-Based Environment Resolution for MCP Servers
env() API:url and headers resolver functions.Products.get() Filter Support
Products.get() Filter Support
Products.get() with backward compatibility:🐛 Bug Fixes
- Chat: Allow
lua chatto work without mandatory skills - agents can now have only webhooks, jobs, or processors - Commands: Normalized action handling for case-insensitive action comparisons
🔧 Improvements
- Chat Command: Informational message when defaulting to sandbox environment
- Chat Command: Improved visual separation between compile logs and chat response
- Env Command: Proper error handling for save/delete operations
- Push Command: Shared helper functions reduce code duplication
v3.2.0
Released: January 13, 2026✨ New Features
Sync Command for Drift Detection
Sync Command for Drift Detection
lua sync command to detect drift between server and local code:- Compare agent name and persona between server state and local code
- Fetch latest published persona version (excludes drafts and rollbacks)
- Show colored line-by-line diff for easy comparison
- Interactive resolution: update local from server or continue with local
- Integrated into compile flow with
--no-syncand--force-syncflags
Chat History Clear Command
Chat History Clear Command
lua chat clear command to clear conversation history:Lua Runtime API with Channel Type
Lua Runtime API with Channel Type
Lua namespace for runtime access:'dev' | 'webchat' | 'whatsapp' | 'messenger' | 'voice' | 'api' | 'email'Lua.request.webhook for Raw Webhook Payload
Lua.request.webhook for Raw Webhook Payload
Marketplace Pagination
Marketplace Pagination
- Navigate through pages with Previous/Next options
- Shows page info (Page X/Y) and total count
- Configurable page size (default: 10 items)
🔧 Improvements
- Simplified Agent Creation: Streamlined
lua initflow with cleaner prompts - Better TypeScript Support: Improved handling of path aliases and variable references in your code
🐛 Bug Fixes
- Fixed sync command occasionally showing false drift detection
- Fixed skill publishing issues
- Fixed compilation when skills are defined inline vs imported from separate files
v3.1.0
Released: December 7, 2025✨ New Features
MCP Server Support
MCP Server Support
LuaMCPServer class for integrating Model Context Protocol servers with your agent:lua mcp- List, activate, deactivate, or delete MCP serverslua push mcp- Push individual MCP servers- MCP servers included in
lua push all --force
Tool Conditions
Tool Conditions
condition function that determines if the tool is available:CDN API
CDN API
CDN namespace for uploading and retrieving files:Jobs API Enhancements
Jobs API Enhancements
Evaluations Dashboard
Evaluations Dashboard
lua evals command opens the Evaluations Dashboard with your agent pre-configured.Templates API
Templates API
Templates namespace for WhatsApp template messaging:Marketplace CLI
Marketplace CLI
lua marketplace command for discovering, installing, and publishing skills:For Creators:- Publish skills to the global marketplace
- Version management with semantic versioning
- Environment variable configuration per version
- Browse and search for verified skills
- Smart installation with dependency checks
- Interactive environment variable configuration
Enhanced Logs Command
Enhanced Logs Command
lua logs command now features:- Interactive filtering by primitive type (Skills, Jobs, Webhooks, etc.)
- Live data from API including dynamically created jobs
- Context-aware log display with detailed metadata
Immutable User Profile
Immutable User Profile
user._luaProfile property for read-only core user data:💥 Breaking Changes
JobInstance Restructured
JobInstance Restructured
JobInstance now receives the full Job entity with activeVersion:welcomeMessage Removed from LuaAgent
welcomeMessage Removed from LuaAgent
welcomeMessage field has been removed from LuaAgent configuration:- For voice: use
voiceConfig.welcomeMessage - For chat widgets: use
WebchatChannelConfig.welcomeMessage
Webhook Execute Signature Changed
Webhook Execute Signature Changed
PreProcessor Response Redesigned
PreProcessor Response Redesigned
PreProcessorResult now uses a discriminated union:modifiedMessageis nowChatMessage[](array)- Added
priorityfield for execution order - Removed
contextfield
🔧 Improvements
- Data API Type Safety:
searchTextparameter added toData.create()andData.update(),dataparameter type changed toRecord<string, any> - PostProcessor Simplified: Return type now requires
modifiedResponse: string, removedasyncfield - Compilation: Handle
.jsextensions for Node16/NodeNext module resolution - Template: Minimal by default, use
--with-examplesflag for examples - Web UI: React Query, Sonner toasts, improved env panels, docs in toolbar
🛠️ Refactoring
- Removed
contextfield from webhooks, jobs, and postprocessors - Removed
versionfield fromLuaSkill,LuaJob, and processor configurations - Improved push command: displays both
webhookIdandwebhook-nameURL formats - Rewritten
interfaces/jobs.tsto matchlua-apiDTOs exactly
v3.0.3
Released: October 30, 2025🎯 User API Enhancement
EnhancedUser.get() method now accepts an optional userId parameter:
- Fetch data for specific users in admin tools
- Access user information in webhooks/jobs
- Multi-user data operations
- User management features
v3.0.2
Released: October 30, 2025🚀 Major Improvements to Compilation System
This release brings comprehensive dependency bundling, debug mode, enhanced validation, and critical bug fixes.Comprehensive Dependency Bundling
Comprehensive Dependency Bundling
- ✅ LuaWebhooks bundle dependencies (e.g., Stripe, axios)
- ✅ LuaJobs bundle dependencies
- ✅ PreProcessors bundle dependencies (e.g., lodash)
- ✅ PostProcessors bundle dependencies (e.g., date-fns)
- ✅ Nested Jobs (
Jobs.create()) independently bundle their own dependencies
Debug Mode
Debug Mode
--debug flag to lua compile command:- Verbose step-by-step logging
- Shows detected imports and dependencies
- Displays bundle sizes (uncompressed and compressed)
- Preserves temp files for inspection
- Shows timing information for each component
- Full error stack traces
Enhanced Validation
Enhanced Validation
- tsconfig.json validation - Clear error if missing or invalid
- Empty bundle detection - Warns about suspiciously small bundles (under 100 bytes)
- Bundle output validation - Ensures esbuild creates valid output
- Null config handling - Graceful compilation without lua.skill.yaml
- Safe optional chaining - Fixed crash when agentData is null
Improved Error Handling
Improved Error Handling
- Dependency resolution failures → “Run npm install”
- TypeScript syntax errors → “Check syntax in filename.ts”
- Missing files → Shows expected path
- Full stack traces in debug mode
Import Resolution
Import Resolution
resolveImportPath() to support:.ts,.tsx,.js,.jsxfiles- Directory imports (
index.ts,index.tsx,index.js)
🐛 Bug Fixes
- Fixed null reference error when compiling without LuaAgent
- Fixed crash when lua.skill.yaml is missing
- Fixed compilation with empty agent name/persona
- Critical: Fixed relative import resolution in all component types
🧹 Code Quality
- Removed obsolete
dynamic-job-bundler.ts - Extracted common helpers (
extractRelevantImports,bundleAndCompressExecuteFunction) - Reduced bundling.ts from 1,149 to 1,036 lines (9.8% reduction)
- Added 27 comprehensive tests for bundling, execution, validation, and relative imports
v3.0.0
Released: October 2025🎉 Major Release
Version 3.0.0 focuses on developer experience, deployment automation, and real-time chat capabilities.✨ New Features
LuaAgent - Unified Configuration
LuaAgent - Unified Configuration
- Single source of truth
- Clearer organization
- Automatic YAML synchronization
- Better IDE support
Streaming Chat Interface
Streaming Chat Interface
- ✅ Animated typing indicator while waiting
- ✅ Text streams character-by-character
- ✅ Sandbox and production environment selection
- ✅ Uses
/chat/streamendpoint for real-time updates
Batch Deployment
Batch Deployment
- Compiles project
- Reads all components from
lua.skill.yaml - Increments patch versions automatically
- Pushes all components to server
- Deploys to production (if
--auto-deploy)
- Auto-bumps patch versions (e.g.,
1.0.0→1.0.1) - Perfect for CI/CD pipelines
- Retry mechanism with exponential backoff
API Key Fallback
API Key Fallback
- System Keychain (macOS Keychain, Windows Credential Vault, Linux libsecret)
- Environment Variable (
LUA_API_KEY) - .env File (
LUA_API_KEY=...)
Auto-Sync YAML and Code
Auto-Sync YAML and Code
lua init:- Agent name, persona → YAML +
index.tsLuaAgent
lua compile:- LuaAgent persona → YAML
🔧 Improvements
Enhanced Bundling
Enhanced Bundling
- Excluded lua-cli internals from bundles
- Reduced bundle sizes by 50-70%
- Fixed relative import issues
- Proper sandbox globals (tools use sandbox-provided APIs)
Jobs.create() Fixes
Jobs.create() Fixes
codefield now properly compressed and included- Execute function properly converts to strings
- Excludes lua-cli imports from job execute functions
- Better metadata support for passing data
Developer Experience
Developer Experience
- Comprehensive template with 30+ example tools
- Quick Start Guide for new users
- TypeScript examples with best practices
- CI/CD integration examples
🐛 Bug Fixes
Bundling:- Fixed
Cannot find module '../services/ApiService'in pre-bundled tools - Fixed
process.cwd is not a functionin sandbox execution - Fixed lua-cli API code being bundled into tools
- Fixed webhooks and jobs not found during
push all - Fixed missing
toolsarray causing validation errors - Fixed deployment timing issues with retry mechanism
- Fixed welcome message reading from
lua.skill.yaml - Fixed streaming endpoint integration
- Fixed typing indicator cleanup on errors
💥 Breaking Changes
LuaAgent Required
LuaAgent Required
- Wrap your existing skills in a
LuaAgent - Add
nameandpersonafields - Run
lua compileto sync with YAML
Chat Endpoint Changed
Chat Endpoint Changed
- Old:
/chat/generate/:agentId - New:
/chat/stream/:agentId
Jobs.create() Signature
Jobs.create() Signature
metadata for data passing:📊 Statistics
| Metric | Before | After |
|---|---|---|
| Bundle overhead | ~500KB | 50-70% smaller |
| Compilation speed | - | 30% faster |
| Template examples | 5 | 30+ |
| CLI commands | - | 25+ |
Upgrade Guides
From v3.0.x to v3.1.0
- Update
JobInstanceaccess patterns (useactiveVersion.schedule,idinstead ofjobId) - Update webhook execute functions to use event object
- Update PreProcessor responses to use discriminated union
- Remove
welcomeMessagefrom LuaAgent (configure on channel/voice instead)
From v2.x to v3.0.0
- Wrap skills in a
LuaAgentconfiguration - Update jobs to use
metadatafor data passing - Run
lua compileto sync with YAML

