Degoog — Contributing

PR rules, coding standards, and adding built-in plugins or engines.

Repo rules (CONTRIBUTING.md)

You can find the basics in the root CONTRIBUTING.md file. Just fork develop, create your branch, and open your pull requests against develop. If you are looking to customize things or build third party extensions, check out the rest of these docs. Want to add built in engines or bang commands? Just copy the patterns we already use in the codebase. If you are using AI to write code, please get it reviewed to make sure it follows our standards and isn't overly complicated.

Coding standards

Here is a quick summary from CONTRIBUTING.md. Please follow these so our codebase stays consistent.

Built in plugins (commands and slots)

You will find the default plugins in src/server/extensions/commands/builtins/. Each one is its own folder (for example help, ip, or ai-summary) using the exact same structure as the plugins inside data/plugins/:

Just export a bang command (using export default or export const command) or a slot or slotPlugin. This follows the exact same contract as plugin bang commands and slot plugins. The application will scan src/server/extensions/commands/builtins/ automatically at startup.

Built in engines

These live in src/server/extensions/engines/ as either TypeScript or JavaScript files and folders. You should use the same contract as custom engines. This includes name, executeSearch, an optional bangShortcut, settingsSchema, configure, and outgoingHosts. Make sure to register your engine in the registry so it shows up under Settings and then Engines, as well as in the normal search.