Skip to content

[Docs|Plugins] Plan the plugin system - #1817

Merged
CREDO23 merged 5 commits into
MODSetter:devfrom
CREDO23:plugins
Sep 22, 2026
Merged

CREDO23 merged 5 commits into
MODSetter:devfrom
CREDO23:plugins

Conversation

@CREDO23

@CREDO23 CREDO23 commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • A plugin is a folder in the repo. It runs as its own process and does its own HTTP.
  • The app ships the catalog, installs on demand, and imports a results file when the process exits.
  • Settings is for install and secrets. An installed entry is a sidebar action.

High-level PR Summary

This PR introduces a comprehensive plugin system architecture for SurfSense. Plugins live as folders in the repo, run as independent processes with their own HTTP capabilities, and communicate through a file-based results protocol. The system includes an SDK for plugin development, a runtime for execution, a catalog for distribution, app integration with UI and API routes, and a bundled Python interpreter. The design emphasizes isolation (no shared process space), simplicity (no sockets or request protocols), and security (egress controls, secret management, and license enforcement).

⏱️ Estimated Review Time: 30-90 minutes

💡 Review Order Suggestion
Order File Path
1 plans/plugins/00-umbrella.md
2 plans/plugins/01-protocol.md
3 plans/plugins/sdk/01-library-and-harness.md
4 plans/plugins/runtime/01-process.md
5 plans/plugins/runtime/02-calls-and-results.md
6 plans/plugins/catalog/01-manifest-and-ci.md
7 plans/plugins/catalog/02-install-and-publish.md
8 plans/plugins/python/01-interpreter.md
9 plans/plugins/app/01-api.md
10 plans/plugins/app/02-screen.md

Need help? Join our Discord

The app spawns a process with inputs and secrets, and imports a results file when it exits. The plugin does its own HTTP.
Authors import a library that stays in the repo. The packaged app needs a real Python because the frozen API and worker cannot execute plugin source.
…t wrote

One process per run. After it exits, document lines become notes and anything else stays on the run.
A pull request is checked before merge. CI builds the tarball, and the app installs it on demand from a catalog shipped with the desktop build.
Settings holds install and secrets. An installed entry is a sidebar action, and the umbrella indexes the streams so they can be built in parallel.
@vercel

vercel Bot commented Sep 22, 2026

Copy link
Copy Markdown

@CREDO23 is attempting to deploy a commit to the Rohan Verma's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 1c9a4859-2c91-4419-9893-b981f3e36ac9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@CREDO23
CREDO23 merged commit dfdcd15 into MODSetter:dev Sep 22, 2026
4 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant