Internal Plugins
A broad set of plugins ship in-tree. They cover the file, search, shell, git, spec-sync, snapshot, code-runtime, media, sub-agent delegation, and bridge surface area the agent needs for coding tasks and automated UI testing. The reference below documents the core set; see Plugin Authoring to write your own.
fledge-plugin-files
File system operations.
| Command | Args | Description |
|---|---|---|
files-read | path: string | Read file contents |
files-write | path: string, content: string | Write content to a file (overwrites) |
files-edit | path: string, old: string, new: string, replace_all: string? | Replace occurrences of old with new. First match only by default; pass replace_all="true" to replace all |
files-glob | pattern: string | List files matching a glob pattern (e.g. src/**/*.rs) |
files-delete | path: string | Delete a file. Refuses directories |
files-write, files-edit, and files-delete are tracked by the agent: successful
calls populate TaskResult.files_changed.
fledge-plugin-search
Code search.
| Command | Args | Description |
|---|---|---|
search-grep | pattern: string, path: string?, include: string? | Recursive grep over all text files. Skips binaries and build dirs. Optional include filters by extension (e.g. "rs,toml") |
search-references | symbol: string | Find references to a symbol across the project |
search-symbols | path: string | List code symbols (fn, struct, enum, trait, impl, mod) in a file |
fledge-plugin-shell
Sandboxed shell execution.
| Command | Args | Description |
|---|---|---|
shell-exec (dangerous) | command: string | Run a shell command via sh -c |
Flagged dangerous = true in plugin.toml. The CLI may use this flag
to gate confirmation in future releases.
fledge-plugin-specsync
Spec-sync wrapper.
| Command | Args | Description |
|---|---|---|
specsync-check | — | Run spec-sync validation |
specsync-list | — | List registered spec module names |
specsync-read | name: string | Read a spec by module name |
These are what the agent’s spec-aware planning calls.
fledge-plugin-git
Git operations.
| Command | Args | Description |
|---|---|---|
git-status | — | Show working tree status (short format) |
git-diff | target: string? | Show changes (vs working tree if no target) |
git-commit | message: string | Stage all changes and commit |
git-branch | name: string? | List branches, or create+checkout name |
fledge-plugin-snapshots
Visual snapshot harness for automated UI testing of the desktop app.
| Command | Args | Description |
|---|---|---|
snapshots-list | — | List capture scenarios and their file sizes |
snapshots-capture | rebuild: string? | Run the capture script for all scenarios. Pass "true" to rebuild the desktop binary first |
snapshots-show | scenario: string | Print a single scenario PNG’s path and size |
External Plugins
Merlin will automatically pick up any other plugins fledge knows about, including:
fledge-plugin-memory— three-tier memory store (ephemeral, mutable, permanent).fledge-plugin-algochat— Algorand-based messaging.fledge-plugin-sql— direct SQL execution.fledge-plugin-localnet— Algorand localnet management.
These are not part of this repository. Merlin’s core/cli treats them
as commodity tools — if their plugin.toml declares typed args, they
get typed schemas; if not, they fall back to the legacy args: string
form.