Plugin Development & Implementation

Build a Plugin with an AI Agent

Replace the requirement placeholder below, then give the complete instruction to your coding agent:

Read and follow the Seer plugin development guide at https://raw.githubusercontent.com/ccseer/Seer-Plugins/refs/heads/master/plugin_development_guide.md. Treat it as the source of truth for architecture, plugin.json, implementation, validation, and packaging. If the guide is unavailable, stop and report that before proceeding.

Before doing any work, inspect the Requirement below. If it is missing, unchanged placeholder text, or too ambiguous to implement, ask one clarifying question and wait. Do not infer the missing requirement.

Once clear, choose Convert or DLL and briefly justify the choice, then implement a complete, installable plugin in the current workspace. Do not modify Seer itself or stop at a plan or code snippets.

Follow every applicable validation step in the guide and report the actual results. Run an in-app Seer preview test when possible; otherwise explicitly state that runtime verification was not performed.

Requirement: [REPLACE THIS PLACEHOLDER with the plugin request.]

Convert Plugins

Seer treats convert plugins as external executors. When a file is triggered, Seer executes the configured program, passing file paths via placeholders.

Placeholder Variables

  • ${input_file}: Absolute path of the source file.
  • ${output_file}: Base output file path where the plugin should save the processed output (append desired extension, e.g., ${output_file}.json).
  • ${use_backslash}: Optional flag to format path separators using Windows native backslashes (\).
  • ${seer_dir}: Directory path where Seer.exe resides.
  • ${seer_exe}: Absolute path to Seer.exe.
  • ${7z}: Absolute path to 7z.exe bundled with Seer.

Execution Workflow

  1. Trigger: User presses SPACE on a file.
  2. Resolution: Seer identifies the plugin associated with the file extension.
  3. Execution: Seer runs the executable (e.g., ApkMetaInfo2Json.exe "${input_file}" "${output_file}.json").
  4. Display: Once the process exits, Seer reads the generated file matching ${output_file}.* and renders it using the internal viewer corresponding to the output extension.

Supported Executable & Script Types

A convert plugin can be any executable capable of handling input/output via CLI:

Temporary File Management

Plugins often generate intermediate files.

  • Auto-Cleanup: Seer automatically purges temp files older than 21 days by default.
  • Forced Removal: Append ${no_cache} to your command parameters to instruct Seer to bypass conversion caching and save temporary output to the auto-delete directory (autodel/), which is automatically cleaned up when Seer exits.

DLL Plugins

For high-performance or deep integration, Seer supports DLL-based plugins written in C++/Qt compiled into dynamic libraries.

Reference Projects

Refer to these official repositories for the plugin interface implementation:

Project Purpose
F3DViewer 3D file preview
OfficeViewer Office documents
FontViewer Font rendering
JsonTreeViewer JSON structural view
Collections All