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.

CommandArgsDescription
files-readpath: stringRead file contents
files-writepath: string, content: stringWrite content to a file (overwrites)
files-editpath: 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-globpattern: stringList files matching a glob pattern (e.g. src/**/*.rs)
files-deletepath: stringDelete a file. Refuses directories

files-write, files-edit, and files-delete are tracked by the agent: successful calls populate TaskResult.files_changed.

Code search.

CommandArgsDescription
search-greppattern: 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-referencessymbol: stringFind references to a symbol across the project
search-symbolspath: stringList code symbols (fn, struct, enum, trait, impl, mod) in a file

fledge-plugin-shell

Sandboxed shell execution.

CommandArgsDescription
shell-exec (dangerous)command: stringRun 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.

CommandArgsDescription
specsync-checkRun spec-sync validation
specsync-listList registered spec module names
specsync-readname: stringRead a spec by module name

These are what the agent’s spec-aware planning calls.

fledge-plugin-git

Git operations.

CommandArgsDescription
git-statusShow working tree status (short format)
git-difftarget: string?Show changes (vs working tree if no target)
git-commitmessage: stringStage all changes and commit
git-branchname: string?List branches, or create+checkout name

fledge-plugin-snapshots

Visual snapshot harness for automated UI testing of the desktop app.

CommandArgsDescription
snapshots-listList capture scenarios and their file sizes
snapshots-capturerebuild: string?Run the capture script for all scenarios. Pass "true" to rebuild the desktop binary first
snapshots-showscenario: stringPrint 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.