Skip to content

FTMahringer/Synapse-plugin-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

synapse-plugin-template

Scaffold templates for SYNAPSE plugins.

The fastest way to start: run synapse plugin scaffold — it creates a GitHub repo from the right subdirectory automatically.


Plugin types

Subdirectory Type When to use
channel/ Channel Connect an external messaging platform (Telegram, Discord, WhatsApp, …)
model-provider/ Model Provider Add an LLM backend (OpenAI-compatible, local, custom)
mcp/ MCP Server Connect an external MCP server with YAML-only declarative config

The MCP scaffold uses the official GitHub MCP server as its example and keeps the credential surface to the minimum required token + optional host override.


Quick start (manual)

  1. Pick a type subdirectory.
  2. Copy it to your new repo.
  3. If you picked channel/ or model-provider/, choose Gradle or Maven — delete the other build file.
  4. Fill in manifest.yml — at minimum: id, name, author, version, and any required credentials for the selected type.
  5. If you picked a Java scaffold, rename the scaffold class to match your plugin name and implement the interface methods.
  6. If you picked mcp/, fill in the token field and optional host override only; no Java source or build file is needed.
  7. If you picked mcp/, run synapse plugin validate; if you picked a Java scaffold, run ./test.sh.
  8. Push a version tag: git tag v1.0.0 && git push --tags — triggers the release workflow.

Requirements

  • Java 25+ for the Java-based scaffolds only
  • Docker (for integration tests)
  • SYNAPSE CLI (synapse plugin validate, synapse plugin package)
  • GitHub account (for scaffold + publish workflows)

Dependency

The Java scaffolds declare synapse-plugin-api as their only compile dependency:

dev.synapse:synapse-plugin-api:1.0.0

Served from GitHub Packages. Add your credentials to ~/.gradle/gradle.properties or ~/.m2/settings.xml — see the scaffold README for details.

The MCP scaffold does not compile Java code. It uses a YAML manifest plus a token-based MCP server configuration example based on the official GitHub MCP server.

Do not add any other dependencies unless they are purely utility libraries with no Spring, JPA, or Redis classes. The bytecode scanner will reject forbidden references at install time.


Publishing

Community plugins: open a PR against synapse-plugins-community.
Official plugins: contact the SYNAPSE team.

synapse plugin publish (stub in v2.6.0) prints the submission instructions.


Reference implementations

See synapse-plugin-examples for real, working plugins against this API.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors