{"id":46672675,"url":"https://github.com/alexk-dev/golemcore-plugins","last_synced_at":"2026-04-14T02:01:06.831Z","repository":{"id":342910474,"uuid":"1162163651","full_name":"alexk-dev/golemcore-plugins","owner":"alexk-dev","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-12T19:46:39.000Z","size":557,"stargazers_count":5,"open_issues_count":4,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-12T21:23:17.279Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexk-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-19T23:55:23.000Z","updated_at":"2026-04-12T19:46:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alexk-dev/golemcore-plugins","commit_stats":null,"previous_names":["alexk-dev/golemcore-plugins"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/alexk-dev/golemcore-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexk-dev%2Fgolemcore-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexk-dev%2Fgolemcore-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexk-dev%2Fgolemcore-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexk-dev%2Fgolemcore-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexk-dev","download_url":"https://codeload.github.com/alexk-dev/golemcore-plugins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexk-dev%2Fgolemcore-plugins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31778580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T00:11:49.126Z","status":"online","status_checked_at":"2026-04-14T02:00:06.344Z","response_time":153,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-08T22:09:26.989Z","updated_at":"2026-04-14T02:01:06.826Z","avatar_url":"https://github.com/alexk-dev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# golemcore-plugins\n\n`golemcore-plugins` is the external plugin repository for the GolemCore runtime.\nIt contains the shared Java contracts that plugins compile against, the first-party plugin modules shipped by the GolemCore team, and the registry metadata that describes every released plugin artifact.\n\nThis repository is designed for two workflows:\n\n- building and validating plugin modules inside one Maven reactor\n- releasing versioned plugin artifacts and registry metadata from the default branch through CI\n\n## What Lives Here\n\n```text\n.\n|-- extension-api/        # Extension-facing SPI and shared DTO contracts\n|-- runtime-api/          # Runtime-facing interfaces provided by the engine\n|-- golemcore/*           # First-party plugin modules\n|-- registry/             # Marketplace metadata for released plugin versions\n|-- dist/                 # Locally built plugin artifacts\n|-- scripts/              # Repository validation and release helpers\n|-- CONTRIBUTING.md       # Contribution, versioning, and release rules\n`-- docs/CODING_GUIDE.md  # Repository-wide coding conventions\n```\n\n### Shared APIs\n\nThe repository publishes two shared libraries used by plugin modules:\n\n- `me.golemcore.plugins:golemcore-plugin-extension-api`\n  Extension-facing SPI, tool/provider contracts, and shared execution DTOs.\n- `me.golemcore.plugins:golemcore-plugin-runtime-api`\n  Engine-provided runtime interfaces and DTOs that plugins can depend on without importing engine internals.\n\nThese libraries are versioned at the repository level and are intentionally separate from per-plugin release numbers.\n\n## First-Party Plugins\n\nThe current `golemcore/*` modules in this repository are:\n\n| Plugin | Purpose |\n| --- | --- |\n| `golemcore/brave-search` | Brave Search web search tool plugin with API-key backed queries. |\n| `golemcore/brain` | GolemCore Brain wiki tool plugin for CRUD operations and optional dynamic relevance search. |\n| `golemcore/browser` | Playwright-backed browser automation tool with screenshot support. |\n| `golemcore/browserless` | Browserless smart scrape plugin for rendered HTML, markdown, and link extraction. |\n| `golemcore/elevenlabs` | ElevenLabs-backed STT/TTS provider plugin. |\n| `golemcore/firecrawl` | Firecrawl-backed page scraping plugin for markdown, summary, HTML, and link extraction. |\n| `golemcore/lightrag` | LightRAG-backed retrieval provider plugin for prompt augmentation and indexing. |\n| `golemcore/mail` | IMAP read and SMTP send tool plugin for mailbox integrations. |\n| `golemcore/notion` | Notion vault plugin backed by the official Notion HTTP API. |\n| `golemcore/obsidian` | Obsidian vault plugin backed by obsidian-local-rest-api. |\n| `golemcore/perplexity-sonar` | Perplexity Sonar grounded-answer plugin with configurable model selection and synchronous completions. |\n| `golemcore/pinchtab` | PinchTab browser automation plugin for navigation, snapshots, actions, text extraction, and screenshots. |\n| `golemcore/tavily-search` | Tavily-backed web search tool plugin with configurable search depth and answer generation. |\n| `golemcore/telegram` | Telegram channel, invite onboarding, confirmations, and plan approval integration. |\n| `golemcore/slack` | Slack Socket Mode channel plugin with thread follow-ups, confirmations, and plan approval UI. |\n| `golemcore/weather` | Open-Meteo weather tool plugin with no external credentials required. |\n| `golemcore/whisper` | Whisper-compatible speech-to-text provider plugin. |\n\nEach plugin module contains its own Maven project, `plugin.yaml` descriptor, tests, and packaging configuration.\n\n## Plugin Packaging Model\n\nEvery plugin release is represented by three sources of truth that must stay aligned:\n\n1. the plugin module version in `golemcore/\u003cplugin\u003e/pom.xml`\n2. the plugin manifest in `golemcore/\u003cplugin\u003e/plugin.yaml`\n3. the released metadata in `registry/\u003cowner\u003e/\u003cplugin\u003e/`\n\nPlugin artifacts are packaged as shaded JARs and copied into `dist/\u003cowner\u003e/\u003cplugin\u003e/\u003cversion\u003e/` during local builds.\nReleased registry metadata records the artifact path, checksum, publish timestamp, and source commit for that version.\n\nReleased versions are immutable.\nIf plugin code changes after a version has been released, ship a new SemVer version instead of rewriting the checksum or metadata of an existing one.\n\n## Build And Validate\n\n### Full repository verification\n\nUse the strict Maven profile for repository-level verification:\n\n```bash\nmvn -B -ntp -P strict verify\n```\n\nThis runs the formatter, unit tests, PMD, SpotBugs, and plugin packaging checks across the reactor.\n\n### Repository metadata validation\n\nUse the helper script to validate manifests, module versions, and registry metadata:\n\n```bash\npython3 scripts/plugins_repo.py validate\n```\n\n## Release Model\n\nNormal plugin releases are produced from the default branch.\nThe release pipeline determines which plugins changed, derives the SemVer bump from conventional commits, packages the plugin artifact, refreshes `registry/` metadata, publishes the artifact, and creates the release tag.\n\nRelease tag format:\n\n```text\n\u003cowner\u003e-\u003cplugin\u003e-v\u003cversion\u003e\n```\n\nExamples:\n\n- `golemcore-telegram-v1.2.0`\n- `golemcore-whisper-v2.0.1`\n\n## Commit And PR Conventions\n\nThis repository uses conventional commits for both commit subjects and PR titles.\nThat matters because squash-merge commit titles are part of the release signal on `main`.\n\nCommon examples:\n\n- `feat(golemcore/telegram): add callback retry backoff`\n- `fix(golemcore/whisper): reject empty STT responses`\n- `docs(repo): add repository overview`\n- `build(repo): align plugin packaging with shaded jars`\n\nBreaking changes must use `!` or a `BREAKING CHANGE:` footer.\n\n## CI At A Glance\n\nThe main pipelines are:\n\n- `Semantic PR Title`\n- `Conventional Commits`\n- `CI`\n- `CI / release_main`\n- `Release Plugin`\n\nTogether they validate repository structure, plugin metadata alignment, formatting, strict Maven checks, and the automated release flow.\n\n## Contributing\n\nStart with:\n\n- [CONTRIBUTING.md](CONTRIBUTING.md)\n- [docs/CODING_GUIDE.md](docs/CODING_GUIDE.md)\n\n`CONTRIBUTING.md` is the source of truth for versioning rules, release semantics, merge policy, and CI expectations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexk-dev%2Fgolemcore-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexk-dev%2Fgolemcore-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexk-dev%2Fgolemcore-plugins/lists"}