The extension manifest defines the identity, permissions, and security policies of the Gemma Gem browser extension. It is configured within the defineConfig object under the manifest key.
Key configuration properties:
name: The name of the extension. It is prefixed with [dev] when running in development mode.description: A brief summary of the extension's purpose.permissions: Required browser API permissions. Currently includes activeTab, scripting, offscreen, and storage.host_permissions: Defines which URLs the extension can access. Set to <all_urls> to allow broad access.content_security_policy.extension_pages: Defines the security policy for extension pages. Note that wasm-unsafe-eval is required in script-src to support WebAssembly execution.
export default defineConfig({
manifest: {
name: 'Gemma Gem',
description: 'Browser AI agent powered by Gemma 4 via WebGPU',
permissions: ['activeTab', 'scripting', 'offscreen', 'storage'],
host_permissions: ['<all_urls>'],
content_security_policy: {
extension_pages: "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'",
},
},
// ...
})