Native foundation
SALAMATRIX.SPL is the framework provider. It registers the shared service registry, host adapters and the common object model used by native and scripted callers.
Open Salamander platform foundation
Salamatrix is the new extension layer between a one-shot Automation script and a full native C++ plugin. It gives extensions a stable service model, a manifest, lifecycle, events, persistent state and a common way to work with Salamander panels.
Native plugins and out-of-process workers can use the same concepts. A Python, PowerShell, PHP, Node or Lua extension does not need to reinvent the host integration for every runtime.
Salamatrix keeps the useful simplicity of Automation while adding the pieces needed for real, long-lived extensions. The public surface is service-oriented and versioned, so providers can evolve through append-only contracts instead of coupling every extension to Salamander internals.
SALAMATRIX.SPL is the framework provider. It registers the shared service registry, host adapters and the common object model used by native and scripted callers.
Extensions can reason about Salamander.Sides, Tabs, Commands, File Operations, Dialogs, Events, Storage, the clipboard and the host language in a consistent way across runtimes.
The SMX1 worker protocol provides a bounded JSON line transport with typed messages, request IDs, events, shutdown and error handling.
Services are discovered through the host registry by a stable identifier and version. The framework can expose the same capability to C++, Automation and runtime workers without making runtime providers dependencies of Automation.
Salamatrix.Sides exposes snapshots of the left and right sides, their active tabs, paths and selection context. It is the foundation for extensions that inspect or react to the current workspace.
Salamatrix.Commands maps public names such as QuickRename, Copy and Move to existing Salamander command handlers. FileOperations adds interactive copy, move, rename, delete, folder creation, refresh and properties operations.
Salamatrix.Events provides versioned subscriptions with safe unsubscribe handles. Extensions can receive lifecycle, settings, color, panel, path, selection, tab and filesystem-change notifications through the same event bridge.
Salamatrix.Storage gives every manifest extension its own validated namespace for strings, integers, booleans and key enumeration. Declared defaults and bounded settings migrations keep state compatible across package updates.
Salamatrix.UI supplies native dialogs, controls, progress, notifications and clipboard support. Workers can use the complete DemoPlug control gallery—including host static text, hyperlinks, progress bars, arrow/color buttons and toolbar headers—while Salamander owns dark mode, DPI scaling and the actual windows. Explore the UI framework →
Salamatrix.Runtime keeps Python, PowerShell, PHP, Node and Lua providers modular and discoverable. Persistent SMX1 sessions expose bounded diagnostics and can be stopped without sharing native pointers across the process boundary.
Salamatrix.Extensions tracks manifest-backed packages, activation state, capabilities, dependencies, localized metadata, settings and lifecycle callbacks. Plugin Manager remains the single host-side management surface.
The Automation adapter exposes modern services through a script-shaped Salamander object, while workers also receive the selected Salamander language and locale. Existing one-shot JavaScript and VBScript automation remains compatible.
Salamatrix.UI 1.4
The Node, Python, PowerShell, PHP, Lua, Automation JScript, and native DemoPlug demos now construct the same Salamatrix UI capabilities dialog themselves. Each source file contains the complete layout and identifies its runtime and extension in the window.
The package dialog dispatcher belongs to Salamatrix Framework. Every runtime receives the same controls and option vocabulary over SMX1; native and Automation callers adapt the same IDialog/IControl service.
A simple script can remain simple. A manifest-backed extension opts into identity, capabilities, lifecycle and services only when it needs them.
{
"schema": 1,
"id": "example.folder-watcher",
"name": "Folder Watcher",
"version": "1.0.0",
"runtime": "Lua",
"entryPoint": "main.lua",
"capabilities": ["panels.read", "events", "storage"],
"commands": [{
"id": "example.folder-watcher.open",
"title": "Folder Watcher...",
"handler": "open",
"menu": "both",
"toolbar": true
}]
}
Every declared command can contribute to the Plugins menu, panel context menus and the dedicated, configurable Extension Bar. Multi-command packages are grouped under their localized package name, toolbar buttons can open package-local command menus, and command-specific light/dark SVG icons follow Salamander's theme and DPI.
Plugin Manager shows ordinary plugins and manifest extensions together. Users can activate or deactivate an extension, edit its declared settings, and inspect runtime or dependency status. The Samandarin Plugin Updates window installs catalog packages together with their required plugin dependencies.
Design boundary: Salamatrix is not intended to replace the complete native Plugin SDK. Native plugins remain the right choice for deep integration, maximum performance and ownership of complex UI.
Runtime providers are optional .SPL plugins. The user installs the interpreter separately; the provider discovers it, owns the worker bootstrap and registers its runtime with the Salamatrix broker.
The five workers share the same dialog surface, command state, typed storage contract, event bridge, host language lookup and SMX1 transport. Python, PowerShell, PHP and Node are discovered from explicit environment overrides or the system path. The Lua provider ships a compatible interpreter, while still allowing an explicit override. Workers can add native folder and file pickers, for example:
dialog.add_folder_picker("root", "C:\\")
commands.register("watch", "Watch folder")
await dialog.addFolderPicker("root", "C:\\")
commands.setState("watch", true, true)
Lua extensions use the same snake-case facade as Python, including dialog.add_folder_picker, commands.register, storage.keys and ui.notify.
Operational note: Runtime providers borrow the framework broker but do not own it. Shutdown validates the broker identity before unregistering adapters, preventing stale-broker calls during unload.
Browse, open, create and safely remove Git worktrees, inspect branch state, commit changes and create a local repository from native Salamatrix dialogs and toolbar menus.
Find processes that keep selected files locked and prevent them from being changed, moved or deleted, with actions exposed from the menu, context menu and Extension Bar.
Create and edit simple menu-driven Salamatrix extension packages interactively, including commands, context-menu placement, Extension Bar buttons and toolbar menus.
All three packages include localized metadata and UI resources for the languages shipped by Samandarin.
SalamatrixAI.SPL is a separate native provider and the sole owner of the local assistant workflow. It can use the same service registry and focused events without making AI or Automation a prerequisite for the runtime providers.
The assistant supports provider selection, structured generation, capability and effect validation, preview, run and save/package flows. The optional Salamatrix AI Local LLaMA.SPL companion runs a server-free llama.cpp and Qwen coder model; its CPU runtime and model assets are installed on demand instead of being bundled with the main installer.
The framework exposes machine-readable service and API descriptions so an assistant can propose an extension action, show the user what will happen, run it through the same command and file-operation paths, and persist the useful result.
Salamatrix is an evolving MVP with a working platform foundation. The implementation and GAP analysis are intentionally explicit about what is already wired and what remains to mature.
Salamatrix Framework and official extensions are open-source software licensed under GPLv2 or later. Some individual files and libraries may use different but compatible licenses.